PayPerByte
This server gives AI agents access to PayPerByte — a per-byte USDC data marketplace on Arbitrum Sepolia — enabling discovery, subscription, and on-demand purchase of real-time data feeds with on-chain payment settlement.
Discovery (no wallet required)
Search publishers by topic keyword (e.g., 'weather', 'crypto', 'CVE') with sorting options
List all active feeds with pricing and frequency details
Get publisher details — on-chain status, subscriber/message counts, USDC revenue, and data schema
View network-wide stats — total publishers, messages streamed, and fees settled
Check subscription status for any wallet/publisher pair
List subscriptions for a wallet, including 7/30-day message counts and USDC spend
Check subscription health — detect if a publisher has gone dormant or shifted content
Get token balances — USDC and ETH for any address on Arbitrum Sepolia
Verify payload integrity — recompute keccak256 hash and check against on-chain EIP-712 attestation
Subscribe to Data Streams (requires PRIVATE_KEY)
Subscribe to a publisher's continuous feed with automatic USDC allowance management
Unsubscribe from a feed
Register as a publisher with an on-chain schema and topic
Publish data to subscribers via the DataStream contract with USDC fee settlement
Buy Data On-Demand (requires PRIVATE_KEY)
Buy a single data packet from any feed via the x402 gateway — no subscription needed, pays per-call via EIP-3009 USDC authorization
Query a fact-oracle — ask a slashable on-chain oracle a factual question and receive a verified answer with citations
PayPerByte MCP Server
A Model Context Protocol server that gives AI agents direct access to PayPerByte — verified, provenance-first data feeds for AI agents. Agents discover feeds, pay-per-call via x402 (settled in USDC on Base mainnet), or subscribe to on-chain streams (Arbitrum Sepolia testnet). Every paid x402 response carries an EIP-712 PayloadAttestation receipt (X-BYTE-Attestation header) the agent verifies before acting. No tokens, no API keys, no off-chain accounts.
Two rails — read this before setting
PRIVATE_KEY.
x402 pay-per-call (
byte_buy_data): Base mainnet (eip155:8453), REAL USDC. Paid feeds settle real money — the flagship Address Reputation Oracle is $0.05 per verdict. Use a dedicated wallet holding only what you intend to spend.On-chain subscribe/publish/query layer (BYTE Library contracts + indexer): Arbitrum Sepolia testnet (chain
421614), MockUSDC. Mainnet for this layer is gated on an external security audit. The EIP-712 attestation signing domain stays anchored at421614regardless of which rail you paid on.One
PRIVATE_KEYserves both rails. Never reuse a key holding funds you can't afford to spend.
Quick start
npx -y byte-mcp-serverWire it into your MCP client (Claude Desktop config below), then your agent can:
Discover feeds: "List the PayPerByte catalog" / "Search publishers for weather"
Buy one packet (x402, no setup): "Check this receiving address before I pay it" → $0.05 real USDC on Base mainnet, signed ALLOW/WARN/BLOCK verdict with an attestation receipt
Subscribe to a stream (testnet): "Subscribe me to the earthquakes feed" → auto-approves MockUSDC for ongoing settlement on Arbitrum Sepolia
Query a fact (testnet): "Ask the fact-oracle who won the last Lakers vs Warriors game" → on-chain signed answer with citations
The live catalog is at x402.payperbyte.io/feeds — verified, provenance-first feeds across weather, markets, code, security, and knowledge.
Related MCP server: x402-discovery
Two paradigms: subscribe vs. buy
Mode | Tool | Rail | Best for | Pricing |
Buy (x402) |
| Base mainnet — real USDC | One-off needs (single snapshot or verdict for this user query) | Per-feed, quoted in the 402 challenge ($0.05 flagship; most feeds cents or less) |
Subscribe |
| Arbitrum Sepolia — testnet MockUSDC | Continuous streams (every weather update, every new earthquake) | $0.003 / KB per delivery |
Buy is zero-setup, pay-as-you-go, and live with real settlement; subscribe delivers every broadcast on the audit-gated testnet layer. Pick by access pattern.
Tools (15 total)
Discovery (read-only, no wallet)
Tool | Description |
| Search publishers by topic and sort order |
| List the active feed catalog with prices and frequencies |
| On-chain info for one publisher (status, subscribers, messages, USDC revenue, schema) |
| Network-wide stats: publishers, messages, total fees settled |
| Is |
| All active subscriptions for a wallet — last 7d/30d messages + USDC spend |
| Content-drift signal for a publisher: stable / moderate / significant / unknown |
| USDC + ETH balances on Arbitrum Sepolia |
| Verify-before-act. Recompute |
Subscribe to a stream (requires PRIVATE_KEY)
Tool | Description |
| Subscribe to a publisher's stream. Auto-bundles USDC |
| Unsubscribe — takes effect next block |
| Register as a data publisher (schema + on-chain registration). v1 is first-party only; stake = 0 |
| Publish a payload to a subscriber via DataStream (settles fee in USDC). See migration notice above re: r2 |
Buy on-demand (requires PRIVATE_KEY)
Tool | Description |
| Buy one packet from any feed via the x402 gateway — real USDC on Base mainnet. No subscription, no allowance. Signs EIP-3009 |
| Ask a slashable fact-oracle publisher a question. Signed EIP-712 request (binds query to your wallet so leaked queries can't burn your escrow); the answer is broadcast on-chain to your address with citations |
Configuration
Claude Desktop
Edit ~/.config/claude/claude_desktop_config.json (Linux) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"byte-library": {
"command": "npx",
"args": ["-y", "byte-mcp-server"],
"env": {
"PRIVATE_KEY": "0x...",
"RPC_URL": "https://sepolia-rollup.arbitrum.io/rpc",
"INDEXER_URL": "http://localhost:8080"
}
}
}
}PRIVATE_KEY is optional — read-only tools work without it. Add it to enable subscribe, publish, buy, and query.
Claude Code
claude mcp add byte-library -- npx -y byte-mcp-serverEnvironment variables
Variable | Required | Default | Description |
| only for write/buy/query tools | — | EOA key. Signs real Base-mainnet USDC for |
| no |
| Arbitrum Sepolia RPC (the on-chain read/subscribe layer) |
| no |
| PayPerByte indexer API |
| no |
| x402 gateway base URL (used by |
Network
Two rails, honestly stated:
x402 payment rail (
byte_buy_data): Base mainnet (eip155:8453). Paid feeds settle real USDC through the gateway at x402.payperbyte.io; each paid 200 returns anX-BYTE-AttestationEIP-712 receipt over the exact response bytes.On-chain layer (subscriptions, broadcasts, fact-oracle escrow, indexer): Arbitrum Sepolia (chain
421614). Mainnet for the BYTE Library contracts is gated on an external security audit. The EIP-712PayloadAttestationsigning domain is anchored on421614regardless of the payment rail.
Contract addresses are pinned in the bundled config; the npm release ships ready-to-use defaults. No token.
Development
git clone https://github.com/0rkz/byte-mcp-server.git
cd byte-mcp-server
npm install
npm run build && npm startLicense
MIT — see LICENSE.
Links
payperbyte.io — PayPerByte home
x402.payperbyte.io/feeds — live feed catalog
Model Context Protocol — MCP spec
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/0rkz/byte-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server