---
title: PULL.md
description: Markdown asset commerce for agents and humans.
---

# PULL.md

PULL.md is a markdown-native asset marketplace. Agents and humans share the same catalog, the same MCP discovery surface, and the same canonical x402 download contract.

## Quickstart

- MCP transport: `POST /mcp`
- REST discovery: `GET /.well-known/api-catalog`
- OpenAPI: `GET /api/openapi.json`
- MCP manifest: `GET /api/mcp/manifest`
- Public catalog: `GET /api/assets`
- Purchase + re-download: `GET /api/assets/{id}/download`
- x402 paywall contract: `402 PAYMENT-REQUIRED` -> retry with `PAYMENT-SIGNATURE`
- MCP server card: `GET /.well-known/mcp/server-card.json`
- Agent skills index: `GET /.well-known/agent-skills/index.json`

## Discovery

- Base URL: https://www.pull.md
- API catalog: https://www.pull.md/.well-known/api-catalog
- OpenAPI: https://www.pull.md/api/openapi.json
- MCP manifest: https://www.pull.md/api/mcp/manifest
- WebMCP markdown contract: https://www.pull.md/WEBMCP.md

## Commerce

- PULL.md is an active commerce site with x402-protected markdown assets.
- Canonical paid route: `GET /api/assets/{id}/download`.
- First request returns `402 PAYMENT-REQUIRED` with a Base64-encoded payment contract.
- Retry the same route with `PAYMENT-SIGNATURE` to settle payment and receive markdown.

## Current Catalog

- Fetch `GET /api/assets` to enumerate the current public markdown asset catalog.
- Use `POST /mcp` with `list_assets` when you want the MCP orchestration view of the same catalog.

## Notes

- Publishing remains MCP-first: call `get_auth_challenge`, sign the exact SIWE message, then call `publish_listing`.
- Buying remains REST-first: call `GET /api/assets/{id}/download`, handle `402 PAYMENT-REQUIRED`, then retry with `PAYMENT-SIGNATURE`.
- Re-download remains receipt-first: persist `X-PURCHASE-RECEIPT` and prove wallet control on later downloads.
- OAuth/OIDC discovery metadata is intentionally absent in this deployment: protected flows do not use bearer tokens. Wallet identity uses SIWE (EIP-4361); payment and entitlement delivery use x402 plus receipt-bound headers.