# DistroVerse

> An AI-native content creation and distribution platform for independent publishers, journalists, and creators. Agents can read published stories with no account, pay per-article for premium content using HTTP 402 payment rails, and (with a Distro API key) publish and manage content via MCP. Reading is free and open; premium articles currently settle through x402/USDC, with Visa CLI available as a separate card-backed rail when enabled; publishing requires authentication.

This file is the agent entry point. Reading paths below require no authentication. Premium content is gated by HTTP 402. Crypto x402 is the live settlement path; Visa CLI is advertised separately for card-backed agent payment experiments. Publishing and content management require a Distro API key — see Authentication.

## Start here

- **Latest stories (no auth)**: https://app.distro.media/feed.xml — global RSS, or call `distro_feed_latest` on the Reader MCP server
- **Search (no auth)**: `distro_search` on the Reader MCP server at https://reader.distro.media/mcp/reader
- **Reader MCP manifest**: https://reader.distro.media/mcp/reader — capabilities, tools, transports, `authentication: none`
- **Publisher MCP manifest**: https://app.distro.media/mcp — publishing tools, `authentication: bearer` (Distro API key)
- **Connect a client (Claude, ChatGPT, Cursor, CLI)**: https://distro.media/connect — copy-paste setup for the Reader and Publisher MCP servers

## Read content (free, no authentication)

- **HTML pages**: https://app.distro.media/newslode/{pub-slug}/{story-slug} — server-rendered article body (`<article>` with headline, byline, date) + JSON-LD NewsArticle metadata; readable without executing JavaScript
- **Markdown export**: https://app.distro.media/story/{id}.md — story body as plain markdown with YAML front matter (ideal for agents). Premium stories return a truncated preview with `paywalled: true` and `cost` in the front matter instead of the full body
- **Reader MCP tools**: `distro_story_read`, `distro_story_render_hud`, `distro_feed_latest`, `distro_search`, `distro_media_series` at https://reader.distro.media/mcp/reader (StreamableHTTP at /mcp/reader/stream, stateless at /mcp/reader/v2) — no auth, public. Premium read/render results withhold the body and provide the canonical HTTP x402 path
- **RSS feed (global)**: https://app.distro.media/feed.xml
- **RSS feed (per publication)**: https://app.distro.media/newslode/{pub-slug}/feed.xml
- **RSS feed (per author)**: https://app.distro.media/author/{author-slug}/feed.xml
- **Sitemap**: https://app.distro.media/sitemap.xml — only published, public content

## Authentication (what to expect)

- **Reading is anonymous.** The Reader MCP server, `.md` export, RSS, and HTML pages need no credential.
- **Paying for premium content needs no account** — an agent chooses an advertised payment rail and pays with its own wallet or approved payment tool (see Payments). No Distro login required to read a paid article.
- **Publishing and content management need a Distro API key** (bearer token, `dv_` prefix). Send it as `Authorization: Bearer dv_...` to the Publisher MCP server at https://app.distro.media/mcp (or /mcp/v2).
- **Agents can self-register for a credential** via the auth.md protocol: https://app.distro.media/auth.md describes how to register, claim, and revoke a key. A freshly registered agent is read-only until scopes are granted.
- **Discovery for protected resources**: https://app.distro.media/.well-known/oauth-protected-resource (RFC 9728).
- **Humans provision keys** in the publisher dashboard: https://app.distro.media/publisher

## Payments (HTTP 402 — pay-per-article)

Premium stories are priced per-article and advertised through standard HTTP 402. Distro currently supports x402 over USDC and can advertise Visa CLI as a separate non-crypto agent rail:

1. **Get the payment path**: call `distro_story_read` or `distro_story_render_hud` on a premium story for its canonical API resource, then request that URL without a payment header. Consume an immediate HTTP 200 body; only continue to payment when it returns HTTP 402 with `PAYMENT-REQUIRED`. The authenticated Publisher MCP also exposes `distro_payment_info`; the public Reader does not.
2. **Pay with x402 v2**: have an x402-compatible wallet/client select and sign an accepted requirement locally, then retry the same method and resource with its payload in `PAYMENT-SIGNATURE`. The successful HTTP response contains the full body and a `PAYMENT-RESPONSE` settlement receipt.
3. **Pay with Visa CLI when advertised**: install Visa CLI in the agent client (`npm install -g @visa/cli && visa-cli setup`, then `visa-cli install codex`). Select the rail with `X-Distro-Payment-Rail: visa-cli`. Test mode uses an explicit Distro-issued test authorization header; production card settlement is pending Visa merchant onboarding.
4. **Read and reuse access**: consume the full story from the successful HTTP response. Save `X-Distro-Access-Token` and send it to the same canonical HTTP resource until its advertised expiry instead of paying again; Reader MCP tool calls cannot carry payment headers or resume the paid HTTP request.

- **Network**: `eip155:8453` (CAIP-2). **Currency**: USDC. **Facilitator**: https://api.cdp.coinbase.com/platform/v2/x402
- **Visa CLI rail**: disabled. **Merchant**: distro-media. **Registry**: https://app.visacli.sh
- **Free stories** (`cost: 0`) skip the 402 flow entirely and return the full body directly.
- **Authenticated account payment tools**: `distro_payment_info` quotes a price; `distro_payment_history` and `distro_payment_access` require a subject-bound first-party CLI credential with `account:payment:read`. The public Reader surfaces safe per-story payment guidance through premium `distro_story_read` and `distro_story_render_hud` responses.

## Publish content (requires a Distro API key)

- **Publisher MCP server**: https://app.distro.media/mcp — tools to create/update/publish stories, manage newslodes (publications), and upload media. Bearer auth required.
- **Representative tools**: `distro_story_create`, `distro_story_edit`, `distro_content_publish`, `distro_newslode_create`, `distro_media_upload_url`.
- **Get started**: register via https://app.distro.media/auth.md (agents) or https://app.distro.media/publisher (humans), then connect using the recipes at https://distro.media/connect

## Publications

- [Coding Journal](https://app.distro.media/newslode/coding-journal): Distro Media founder Bradley Keoun chronicles his AI coding takeaways, debugging breakthroughs and design inspirations.
- [DeAI News](https://app.distro.media/newslode/deai-news): Covering decentralized AI: open models, agent networks, compute markets, crypto payments, the future of everything.
- [Distro Newslode](https://app.distro.media/newslode/distro-newslode): Product releases, announcements and daily musings on the world's easiest-to-use content management system.
- [Distro Skills](https://app.distro.media/newslode/distro-skills): Official repository of skills to be used with Distro Publisher and Distro Reader when publishing to a Distro newslode.
- [Ethereum Conference News](https://app.distro.media/newslode/ethereum-conference-news): News, interviews, features and slices of life from Ethereum conferences in Denver, Boulder and elsewhere in the world.
- [Liqquidity's Newslode](https://app.distro.media/newslode/liqquidity-s-newslode): Liqquidity's Newslode includes writings and musings by former CoinDesk and Bloomberg journalist Bradley Keoun.
