byte-protocol
Server Details
PayPerByte — per-byte data for AI agents: x402 USDC on Base, EIP-712-attested. No token.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- 0rkz/byte-mcp-server
- GitHub Stars
- 1
- Server Listing
- PayPerByte
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 15 tools
Each tool targets a distinct resource and action: buying, subscribing, publishing, querying, verifying, etc. Even the subscription-related tools (check vs list) differ in granularity, and buy vs query are clearly separate payment and oracle paths.
All tools share the 'byte_' prefix and mostly follow verb_noun pattern (buy_data, get_publisher, list_feeds, verify_payload). The only deviation is 'byte_subscription_health' which is a noun phrase rather than a verb action, but it remains clear and predictable.
15 tools is within the well-scoped range (3-15) and each tool earns its place covering a distinct aspect of the PayPerByte protocol—discovery, acquisition, management, publishing, and verification—without redundancy.
The tool surface covers the full lifecycle: discovery (list_feeds, search_publishers), acquisition (buy_data, subscribe, query_fact), management (check_subscription, list_my_subscriptions, unsubscribe, subscription_health), publishing (register_publisher, publish_data), and verification (verify_payload). No obvious gaps.
Available Tools
15 toolsbyte_buy_dataAInspect
Buy a single data packet from any PayPerByte feed via the x402 payment gateway. No subscription, no allowance, no prior on-chain setup — pay-per-call USDC settlement. The MCP server signs an EIP-3009 transferWithAuthorization on behalf of the wallet whose PRIVATE_KEY is configured, the x402 facilitator submits the tx, and the data comes back inline with the on-chain settlement tx hash. Use byte_subscribe instead if you want a continuous stream of broadcasts from a publisher. The catalog of available feed slugs lives at https://x402.payperbyte.io/feeds (free GET). GET data feeds (weather, earthquakes, …) need only feed; the POST oracles (see https://x402.payperbyte.io/feeds for the live list and each feed's method) additionally require a JSON body (the query) — supplying body switches this call to POST. Requires PRIVATE_KEY env var on the MCP server and USDC on the configured wallet. NOTE: paid feeds settle REAL USDC on Base mainnet (eip155:8453) — the exact price is quoted in the 402 challenge and listed per feed at https://x402.payperbyte.io/feeds — the signed EIP-712 attestation over the exact response bytes proves delivery, not that a verdict itself is correct. Use a dedicated wallet holding only what you intend to spend.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Optional JSON query body for POST oracles. Supplying it switches the call from GET to POST. Required by the verdict oracles, e.g. address-reputation {domain,address[,amount,chain]}, sanctions-screen {address|name}, pkg-verdict {ecosystem,package[,version]}, reasoning-verdict {subject}. Omit for GET data feeds (weather, earthquakes, …). | |
| feed | Yes | Feed slug — see https://x402.payperbyte.io/feeds for the live catalog. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Decoded feed payload returned by the publisher |
| feed | No | Echoed feed slug |
| paid | No | True if an x402 payment was made (false on free/cached feeds) |
| error | No | Error message if the buy failed |
| payer | No | Wallet that signed the EIP-3009 authorization |
| price | No | USDC paid for this packet as a 6-decimal dollar string (format example: '$0.001234'); omitted on free feeds |
| detail | No | Additional error detail, if any |
| status | No | HTTP status of the (post-payment) gateway response |
| txHash | No | x402 settlement transaction hash |
| verification | No | Two-leg verify-before-act result: {gatewayVerified, hashMatch, signerMatch, recovered, attester, expired, deadline, checkedAt, embeddedAttestation, reason, note}. gatewayVerified=true means the GATEWAY delivered these exact bytes (signed by the pinned gateway attester) — it does NOT verify the per-feed publisher's embedded attestation (answer.attestation). When embeddedAttestation==='present', verify that leg before trusting the data (see note). expired=true means the receipt's EIP-712 deadline had already passed on arrival (deadline/checkedAt are UNIX-second strings); a freshly minted receipt cannot be expired, so that indicates a replayed/cached response or clock skew and the tool refuses (isError) even if the signature checks out. |
byte_check_subscriptionARead-onlyIdempotentInspect
Check if an address is subscribed to a specific publisher on PayPerByte.
| Name | Required | Description | Default |
|---|---|---|---|
| publisher | Yes | Publisher Ethereum address (0x...) | |
| subscriber | Yes | Subscriber Ethereum address (0x...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| subscribed | Yes | True if the subscriber has an active subscription to the publisher |
byte_get_network_statsARead-onlyIdempotentInspect
Get PayPerByte network-wide statistics: total publishers, messages streamed, and total subscriber fees settled in USDC.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| messages | No | Total messages streamed all-time |
| publishers | No | Active publisher count network-wide |
| totalSubscriberFeesUsdc | No | Total subscriber fees settled (USDC, decimal string) |
byte_get_publisherARead-onlyIdempotentInspect
Get on-chain info for a specific PayPerByte publisher: status, subscriber and message counts, USDC revenue, and the registered schema (size bounds, cadence, price-per-KB).
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Publisher Ethereum address (0x...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| schema | No | Registered schema (topic, sizes, cadence, price) |
| status | No | On-chain publisher status |
| address | Yes | Publisher Ethereum address |
| messages | No | Total messages published |
| lastActive | No | Unix timestamp of last on-chain activity |
| revenueUsdc | No | Total USDC revenue (decimal string) |
| subscribers | No | Active subscriber count |
| registeredAt | No | Unix timestamp of publisher registration |
byte_get_token_balancesARead-onlyIdempotentInspect
Get USDC and ETH balances for an address on Arbitrum Sepolia (the on-chain testnet layer — MockUSDC settles subscriptions and fact-oracle queries there). Does NOT show the Base-mainnet USDC balance that byte_buy_data spends.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum address (0x...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| eth | No | ETH balance as a decimal string in whole ETH (e.g. '0.01') — already scaled by 18 decimals, not wei |
| usdc | No | USDC balance as a decimal string in whole USDC (e.g. '12.5') — already scaled by 6 decimals, not atomic units |
| address | No | Echoed address |
byte_list_feedsARead-onlyIdempotentInspect
List all active data feeds in the PayPerByte catalog with topics, price-per-call, and frequency (pricePerKB is a deprecated alias).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| feeds | No | Catalog of active feeds |
byte_list_my_subscriptionsARead-onlyIdempotentInspect
List every active subscription for a given wallet address. Each entry has the publisher address, topic, status, when you subscribed, messages received in 7/30 days, USDC spent in 7/30 days, and the timestamp of the last message received. Use this to see what you're currently paying for and decide whether to unsubscribe.
| Name | Required | Description | Default |
|---|---|---|---|
| indexerUrl | No | Optional indexer URL override (default: INDEXER_URL/BYTE_INDEXER_URL env or https://feeds.payperbyte.io) | |
| subscriber | Yes | Wallet address to list subscriptions for |
Output Schema
| Name | Required | Description |
|---|---|---|
| subscriptions | No | Active subscriptions for the given wallet |
byte_publish_dataADestructiveInspect
Publish data to a subscriber via the PayPerByte DataStream contract. Hashes the payload, records size on-chain, and settles the fee in USDC. Requires PRIVATE_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data payload to publish (will be hashed on-chain) | |
| maxFee | Yes | Maximum fee in USDC willing to pay for this publish (e.g. 0.05) | |
| subscriber | Yes | Subscriber Ethereum address (0x...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| txHash | No | Publish transaction hash |
| success | No | True if publish landed on-chain |
| payloadHash | No | keccak256 of the payload as recorded on-chain |
| payloadSize | No | Payload size recorded on-chain (bytes) |
byte_query_factAInspect
Query a PayPerByte fact-oracle publisher for a signed answer with citations. Posts the question to a registered fact-oracle publisher (topic='fact-oracle'), waits for the on-chain BroadcastStreamed response, and returns the answer plus structured citation URLs. The signed receipt proves which publisher produced the answer (provenance + tamper-evidence), NOT that the answer is correct — ground your output in the cited sources, not in a truth guarantee. Availability: this requires a registered fact-oracle publisher actively broadcasting; if none is live the call returns a timeout rather than an answer.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | The factual question to ask (e.g. 'What was last night's Lakers vs Warriors score?'). Should be specific and verifiable. | |
| topic_filter | No | Optional topic filter (e.g. 'fact-oracle' default; future: 'sports', 'finance'). | |
| max_byte_cost | No | Max response payload bytes you're willing to pay for (defaults to 2000). Billed at the publisher's registered price-per-KB — read it with byte_get_publisher or byte_search_publishers before asking. Publisher refuses if can't fit answer. | |
| min_publisher_pqs | No | Minimum PQS to consider (BPS scale, 0-10000). 9000 = Elite-only, 7500 = Premium+. | |
| subscriber_address | Yes | Your wallet address. You MUST be subscribed to the chosen publisher (with sufficient USDC escrow) or the publisher's on-chain broadcast will be skipped. | |
| max_response_latency_ms | No | Max time to wait for the publisher's broadcast (default 30000 ms). Local-LLM publishers (Ollama + Searxng + 3-sample NLI gate) take ~30-60s; Anthropic + passthrough takes ~10-20s. Hard ceiling 180s. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message if the query failed (no eligible publisher, broadcast timeout, etc.) |
| answer | No | Publisher's grounded answer to the question |
| citations | No | URLs/sources cited by the publisher in support of the answer |
| confidence | No | Publisher-reported confidence (0-1) |
| elapsed_ms | No | End-to-end time to obtain the answer (ms) |
| request_id | No | Request id binding the query to this answer |
| payload_hash | No | keccak256 of the response payload |
| publisher_pqs | No | Publisher quality score (PQS) at fulfillment |
| publisher_address | No | Publisher address that fulfilled the query |
| response_size_bytes | No | Size of the response payload (bytes) |
| publisher_tx_or_status | No | Delivery status or settlement reference |
byte_register_publisherADestructiveInspect
Register as a data publisher on PayPerByte. Registers a schema and the publisher on-chain. Requires PRIVATE_KEY. PayPerByte v1 publishers are first-party and unstaked — leave stake at '0'; a non-zero USDC stake is approved to DataRegistry first if you choose to post one.
| Name | Required | Description | Default |
|---|---|---|---|
| stake | Yes | USDC reputation stake to post, as a decimal string. Default '0' — PayPerByte v1 publishers are unstaked. | |
| topic | Yes | Data feed topic (e.g. 'eth-price', 'weather-nyc', 'gas-tracker') | |
| maxSize | Yes | Maximum payload size in bytes per message | |
| frequency | Yes | Expected publishing frequency in seconds | |
| pricePerKB | Yes | Price per kilobyte in USDC (e.g. 0.003) | |
| expectedSize | Yes | Expected payload size in bytes per message |
Output Schema
| Name | Required | Description |
|---|---|---|
| topic | No | Registered feed topic |
| txHash | No | Publisher-registration transaction hash |
| success | No | True if registration landed on-chain |
| publisher | No | Registered publisher address (the signer) |
| stakeUsdc | No | USDC stake posted (decimal string; '0' for v1 first-party) |
| schemaTxHash | No | Schema-registration transaction hash |
| approveTxHash | No | USDC stake approval tx hash, if a non-zero stake was posted |
byte_search_publishersARead-onlyIdempotentInspect
Search PayPerByte publishers by topic and sort order. Returns publisher addresses, topics, subscriber counts, message counts, and price-per-KB.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (default 20) | |
| query | No | Topic keyword to search (e.g. 'weather', 'crypto', 'cve') | |
| sortBy | No | Sort field: 'subscribers', 'revenue', 'messages' |
Output Schema
| Name | Required | Description |
|---|---|---|
| publishers | No | Matching publishers, sorted by the requested field |
byte_subscribeAInspect
Subscribe to a PayPerByte publisher's data feed. By default also sets USDC allowance to DataStreamLib to type(uint256).max so the subscription doesn't silently lose payments when allowance depletes (the contract's allowance-skip path emits DataStreamed with amount=0 on transferFrom failure rather than reverting). Pass skipAllowance: true to opt out and set a finite cap manually. Requires PRIVATE_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| publisher | Yes | Publisher Ethereum address (0x...) to subscribe to | |
| skipAllowance | No | If true, don't bundle the USDC approve(max) call. Default false. Auto-approve is also skipped when the wallet already has ≥ $1000 USDC of allowance to DataStreamLib. |
Output Schema
| Name | Required | Description |
|---|---|---|
| txHash | No | Subscribe transaction hash |
| success | No | True if subscribe landed on-chain |
| publisher | No | Publisher subscribed to |
| allowanceTxHash | No | USDC approve(max) transaction hash, if bundled |
byte_subscription_healthARead-onlyIdempotentInspect
Get the content-drift signal for a publisher. Compares their last 7 days of publishing activity (cadence, message count) against their 23-day baseline (days 8-30). Returns 'stable' (steady publishing), 'moderate' (20-50% cadence shift or 24-48h silence), 'significant' (>50% shift or >48h silence), or 'unknown' (new publisher, insufficient baseline). Use this to detect when a publisher you subscribe to has pivoted content or gone dormant.
| Name | Required | Description | Default |
|---|---|---|---|
| publisher | Yes | Publisher address to check | |
| indexerUrl | No | Optional indexer URL override |
Output Schema
| Name | Required | Description |
|---|---|---|
| signal | No | Content-drift bucket for the publisher |
| publisher | No | Publisher address checked |
| messages7d | No | Messages in the last 7 days |
| messages30d | No | Messages in the last 30 days |
| messages_7d | No | Messages in the last 7 days (indexer key) |
| messages_30d | No | Messages in the last 30 days (indexer key) |
| silence_hours | No | Hours since the last message (null if never) |
| volume_ratio_bps | No | 7d/baseline volume ratio (bps) |
| cadence_drift_bps | No | Cadence drift vs 23-day baseline (bps) |
byte_unsubscribeAInspect
Unsubscribe from a publisher's data feed. Takes effect next block: no more billing, no more data flow. Reversible — you can resubscribe later via byte_subscribe. Use this when a publisher has pivoted content (check with byte_subscription_health first) or when you simply don't want the feed anymore. Requires PRIVATE_KEY for the connected wallet.
| Name | Required | Description | Default |
|---|---|---|---|
| publisher | Yes | Publisher address to unsubscribe from |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | Receipt status ('success' | 'reverted') |
| txHash | No | Unsubscribe transaction hash |
| publisher | No | Publisher unsubscribed from |
| subscriber | No | Subscriber address (the signer) |
| blockNumber | No | Block number the tx landed in |
byte_verify_payloadARead-onlyIdempotentInspect
Verify-before-act: confirm a data payload an agent is about to act on actually matches what the publisher cryptographically attested to on-chain. Recomputes keccak256 of the received bytes and compares it to the on-chain EIP-712 PayloadAttestation hash. ALWAYS call this on BYTE-sourced data before acting on it; if verified=false the bytes were tampered/corrupted in transit and MUST NOT be used. Anchor the check with EITHER expectedHash (an on-chain payloadHash you already hold, e.g. from byte_query_fact / byte_buy_data) OR txHash (the settlement tx — also recovers the attestation signer and confirms it is the named publisher). Read-only; no wallet or payment required.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | The exact payload bytes the agent received and is about to act on — the raw delivered string, or a 0x-prefixed hex byte string. | |
| txHash | No | Settlement tx hash whose on-chain BroadcastStreamed attestation to verify against. When provided, also recovers the EIP-712 signer and confirms it is the attesting publisher. | |
| hashMode | No | How to hash structured payloads: 'raw' (keccak of the utf8 string, default — matches byte_publish_data) or 'canonical' (keccak of key-sorted, whitespace-free JSON). | |
| expectedHash | No | On-chain payloadHash to verify against (0x + 64 hex), e.g. the payloadHash returned by byte_query_fact or byte_buy_data. |
Output Schema
| Name | Required | Description |
|---|---|---|
| reason | Yes | Human-readable verdict an agent can surface when it acts or refuses |
| signer | No | Recovered EIP-712 attestation signer (txHash mode) |
| source | No | Which anchor was used: 'txHash' or 'expectedHash' |
| txHash | No | Settlement tx hash verified against (txHash mode) |
| expired | No | Whether the attestation's EIP-712 deadline has passed at check time — the same rule the contract enforces (block.timestamp > deadline). txHash mode only; absent in expectedHash mode, which carries no deadline. NOT folded into `verified`: the chain refuses to emit an already-expired attestation, so every historical settlement reads expired=true as a matter of course, and refusing those would break provenance audits without proving anything. verified answers 'did the publisher sign exactly these bytes'; expired answers 'is that attestation still inside its validity window'. If you need freshness, require verified && !expired. |
| deadline | No | Attestation deadline as UNIX seconds (decimal string) — txHash mode only |
| verified | Yes | True only if the recomputed hash matches the on-chain attested hash AND (when a signer was recovered) the signer is the publisher. If false: do NOT act on the data. |
| checkedAt | No | Wall-clock time the expiry comparison was made, UNIX seconds (decimal string) |
| hashMatch | Yes | Whether the recomputed hash equals the on-chain hash |
| blockNumber | No | Block number of the settlement tx (txHash mode) |
| onChainHash | Yes | The on-chain attested payloadHash compared against |
| signerMatch | No | Whether the recovered signer is the attesting publisher |
| recomputedHash | Yes | keccak256 of the received bytes |
| attestingPublisher | No | Publisher named in the on-chain event (txHash mode) |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
byte_buy_data1 field changed- changed
Input schema / properties / feed / descriptionPrevious value: -"Feed slug — one of: weather ($0.0050), earthquakes ($0.0030), runtime-eol ($0.020), threat-intel ($0.050), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), merchant-screen ($0.100), positioning-snapshot ($0.030), cctp-attestation-latency ($0.010), regime-signal ($0.020). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — see https://x402.payperbyte.io/feeds for the live catalog. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"
- Changed
byte_get_token_balances2 fields changed- changed
Output schema / properties / eth / descriptionPrevious value: -"ETH balance (wei)"New value: +"ETH balance as a decimal string in whole ETH (e.g. '0.01') — already scaled by 18 decimals, not wei" - changed
Output schema / properties / usdc / descriptionPrevious value: -"USDC balance (atomic, 6 decimals)"New value: +"USDC balance as a decimal string in whole USDC (e.g. '12.5') — already scaled by 6 decimals, not atomic units"
- Changed
byte_list_feeds2 fields changed- changed
Output schema / properties / feeds / items / properties / pricePerCall / descriptionPrevious value: -"Per-call price exactly as the gateway catalog reports it — a dollar-formatted string (examples: '$0.0050', '$0.100'); empty string if the catalog omits a price. This server does not normalize or convert it, so do not assume atomic units. The 402 challenge is the source of truth for what you will actually pay."New value: +"Per-call price exactly as the gateway catalog reports it — normally the catalog's `price`, a dollar-formatted string (examples: '$0.0050', '$0.100'); if the catalog supplies only `priceAtomic`, that atomic µUSDC value (e.g. '5000') passes through instead; empty string if it supplies neither. This server does not normalize or convert it, so do not assume either unit. The 402 challenge is the source of truth for what you will actually pay." - changed
Output schema / properties / feeds / items / properties / pricePerKB / descriptionPrevious value: -"DEPRECATED (misnamed): identical to pricePerCall — the same gateway-reported per-call price, not a per-KB rate. Use pricePerCall. Removed next release."New value: +"DEPRECATED (misnamed): identical to pricePerCall — the same gateway-reported per-call price, not a per-KB rate. Use pricePerCall. Removal is scheduled for a future minor, not before 0.14."
2 tool updates
- Changed
byte_buy_data1 field changed- changed
Input schema / properties / feed / descriptionPrevious value: -"Feed slug — see https://x402.payperbyte.io/feeds for the live catalog. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — one of: weather ($0.0050), earthquakes ($0.0030), runtime-eol ($0.020), threat-intel ($0.050), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), merchant-screen ($0.100), positioning-snapshot ($0.030), cctp-attestation-latency ($0.010), regime-signal ($0.020). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"
- Changed
byte_list_feeds2 fields changed- changed
Output schema / properties / feeds / items / properties / pricePerCall / descriptionPrevious value: -"Price of one call, atomic µUSDC (6 decimals), decimal string."New value: +"Per-call price exactly as the gateway catalog reports it — a dollar-formatted string (examples: '$0.0050', '$0.100'); empty string if the catalog omits a price. This server does not normalize or convert it, so do not assume atomic units. The 402 challenge is the source of truth for what you will actually pay." - changed
Output schema / properties / feeds / items / properties / pricePerKB / descriptionPrevious value: -"DEPRECATED (misnamed): for gateway-fronted feeds this is the per-call price in µUSDC, identical to pricePerCall. Use pricePerCall. Removed next release."New value: +"DEPRECATED (misnamed): identical to pricePerCall — the same gateway-reported per-call price, not a per-KB rate. Use pricePerCall. Removed next release."
1 tool update
- Changed
byte_buy_data1 field changed- changed
Input schema / properties / feed / descriptionPrevious value: -"Feed slug — one of: weather ($0.0050), earthquakes ($0.0030), runtime-eol ($0.020), threat-intel ($0.050), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), merchant-screen ($0.100), positioning-snapshot ($0.030), cctp-attestation-latency ($0.010), regime-signal ($0.020). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — see https://x402.payperbyte.io/feeds for the live catalog. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"
2 tool updates
- Changed
byte_buy_data1 field changed- changed
Output schema / properties / price / descriptionPrevious value: -"USDC paid for this packet (e.g. '$0.003000'); omitted on free feeds"New value: +"USDC paid for this packet as a 6-decimal dollar string (format example: '$0.001234'); omitted on free feeds"
- Changed
byte_query_fact1 field changed- changed
Input schema / properties / max_byte_cost / descriptionPrevious value: -"Max response payload bytes you're willing to pay for (defaults to 2000, ≈$1 at $0.0005/byte). Publisher refuses if can't fit answer."New value: +"Max response payload bytes you're willing to pay for (defaults to 2000). Billed at the publisher's registered price-per-KB — read it with byte_get_publisher or byte_search_publishers before asking. Publisher refuses if can't fit answer."
2 tool updates
- Changed
byte_buy_data1 field changed- changed
Input schema / properties / feed / descriptionPrevious value: -"Feed slug — see https://x402.payperbyte.io/feeds for the live catalog. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — one of: weather ($0.0050), earthquakes ($0.0030), runtime-eol ($0.020), threat-intel ($0.050), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), merchant-screen ($0.100), positioning-snapshot ($0.030), cctp-attestation-latency ($0.010), regime-signal ($0.020). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"
- Changed
byte_list_feeds2 fields changed- added
Output schema / properties / feeds / items / properties / pricePerCallAdded value: +{ + "description": "Price of one call, atomic µUSDC (6 decimals), decimal string.", + "type": "string" +} - changed
Output schema / properties / feeds / items / properties / pricePerKB / descriptionPrevious value: -"Price per KB in USDC (decimal string)"New value: +"DEPRECATED (misnamed): for gateway-fronted feeds this is the per-call price in µUSDC, identical to pricePerCall. Use pricePerCall. Removed next release."
1 tool update
- Changed
byte_buy_data1 field changed- changed
Input schema / properties / feed / descriptionPrevious value: -"Feed slug — one of: weather ($0.0050), earthquakes ($0.0030), runtime-eol ($0.020), threat-intel ($0.050), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), merchant-screen ($0.100), positioning-snapshot ($0.030), cctp-attestation-latency ($0.010). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — see https://x402.payperbyte.io/feeds for the live catalog. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"
1 tool update
- Changed
byte_buy_data1 field changed- changed
Input schema / properties / feed / descriptionPrevious value: -"Feed slug — see https://x402.payperbyte.io/feeds for the live catalog. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — one of: weather ($0.0050), earthquakes ($0.0030), runtime-eol ($0.020), threat-intel ($0.050), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), merchant-screen ($0.100), positioning-snapshot ($0.030), cctp-attestation-latency ($0.010). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"
1 tool update
- Changed
byte_buy_data1 field changed- changed
Input schema / properties / feed / descriptionPrevious value: -"Feed slug — one of: weather ($0.0050), earthquakes ($0.0030), runtime-eol ($0.020), threat-intel ($0.050), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), merchant-screen ($0.100), positioning-snapshot ($0.030). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — see https://x402.payperbyte.io/feeds for the live catalog. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"
2 tool updates
- Changed
byte_buy_data1 field changed- changed
Output schema / properties / verification / descriptionPrevious value: -"Two-leg verify-before-act result: {gatewayVerified, hashMatch, signerMatch, recovered, attester, embeddedAttestation, reason, note}. gatewayVerified=true means the GATEWAY delivered these exact bytes (signed by the pinned gateway attester) — it does NOT verify the per-feed publisher's embedded attestation (answer.attestation). When embeddedAttestation==='present', verify that leg before trusting the data (see note)."New value: +"Two-leg verify-before-act result: {gatewayVerified, hashMatch, signerMatch, recovered, attester, expired, deadline, checkedAt, embeddedAttestation, reason, note}. gatewayVerified=true means the GATEWAY delivered these exact bytes (signed by the pinned gateway attester) — it does NOT verify the per-feed publisher's embedded attestation (answer.attestation). When embeddedAttestation==='present', verify that leg before trusting the data (see note). expired=true means the receipt's EIP-712 deadline had already passed on arrival (deadline/checkedAt are UNIX-second strings); a freshly minted receipt cannot be expired, so that indicates a replayed/cached response or clock skew and the tool refuses (isError) even if the signature checks out."
- Changed
byte_verify_payload3 fields changed- added
Output schema / properties / checkedAtAdded value: +{ + "description": "Wall-clock time the expiry comparison was made, UNIX seconds (decimal string)", + "type": "string" +} - added
Output schema / properties / deadlineAdded value: +{ + "description": "Attestation deadline as UNIX seconds (decimal string) — txHash mode only", + "type": "string" +} - added
Output schema / properties / expiredAdded value: +{ + "description": "Whether the attestation's EIP-712 deadline has passed at check time — the same rule the contract enforces (block.timestamp > deadline). txHash mode only; absent in expectedHash mode, which carries no deadline. NOT folded into `verified`: the chain refuses to emit an already-expired attestation, so every historical settlement reads expired=true as a matter of course, and refusing those would break provenance audits without proving anything. verified answers 'did the publisher sign exactly these bytes'; expired answers 'is that attestation still inside its validity window'. If you need freshness, require verified && !expired.", + "type": "boolean" +}
1 tool update
- Changed
byte_buy_data1 field changed- changed
Input schema / properties / feed / descriptionPrevious value: -"Feed slug — see https://x402.payperbyte.io/feeds for the live catalog. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — one of: weather ($0.0050), earthquakes ($0.0030), runtime-eol ($0.020), threat-intel ($0.050), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), merchant-screen ($0.100), positioning-snapshot ($0.030). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"
1 tool update
- Changed
byte_buy_data1 field changed- changed
Input schema / properties / feed / descriptionPrevious value: -"Feed slug — one of: weather ($0.0050), earthquakes ($0.0030), runtime-eol ($0.020), threat-intel ($0.050), evidence-pack ($0.100), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), liquidation-stream ($0.030), positioning-snapshot ($0.030). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — see https://x402.payperbyte.io/feeds for the live catalog. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"
1 tool update
- Changed
byte_buy_data1 field changed- changed
Input schema / properties / feed / descriptionPrevious value: -"Feed slug — see https://x402.payperbyte.io/feeds for the live catalog. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — one of: weather ($0.0050), earthquakes ($0.0030), runtime-eol ($0.020), threat-intel ($0.050), evidence-pack ($0.100), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), liquidation-stream ($0.030), positioning-snapshot ($0.030). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"
1 tool update
- Changed
byte_buy_data1 field changed- changed
Input schema / properties / feed / descriptionPrevious value: -"Feed slug — one of: weather ($0.0050), earthquakes ($0.0030), runtime-eol ($0.020), threat-intel ($0.050), evidence-pack ($0.100), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), liquidation-stream ($0.030), positioning-snapshot ($0.030). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — see https://x402.payperbyte.io/feeds for the live catalog. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"
1 tool update
- Changed
byte_buy_data3 fields changed- changed
Input schema / properties / body / descriptionPrevious value: -"Optional JSON query body for POST oracles. Supplying it switches the call from GET to POST. Required by the verdict oracles, e.g. address-reputation {domain,address[,amount,chain]}, sanctions-screen {address|name}, pkg-verdict {ecosystem,package[,version]}, reasoning-verdict {subject}. Omit for GET data feeds (weather, defi-yields, …)."New value: +"Optional JSON query body for POST oracles. Supplying it switches the call from GET to POST. Required by the verdict oracles, e.g. address-reputation {domain,address[,amount,chain]}, sanctions-screen {address|name}, pkg-verdict {ecosystem,package[,version]}, reasoning-verdict {subject}. Omit for GET data feeds (weather, earthquakes, …)." - changed
Input schema / properties / feed / descriptionPrevious value: -"Feed slug — one of: defi-yields ($0.030), weather ($0.0050), earthquakes ($0.0030), space-weather ($0.0030), news-feed ($0.010), code-pulse ($0.020), runtime-eol ($0.020), threat-intel ($0.050), x402-pulse ($0.010), stablecoin-rails ($0.030), perp-funding ($0.020), usc-statute ($0.050), evidence-pack ($0.100), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), liquidation-stream ($0.030), positioning-snapshot ($0.030), agent-compute ($0.050), agent-memory ($0.050), agent-tools ($0.050). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — one of: weather ($0.0050), earthquakes ($0.0030), runtime-eol ($0.020), threat-intel ($0.050), evidence-pack ($0.100), address-reputation ($0.100), pkg-verdict ($0.100), sanctions-screen ($0.100), reasoning-verdict ($0.100), liquidation-stream ($0.030), positioning-snapshot ($0.030). Full catalog: https://x402.payperbyte.io/feeds (free GET). (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)" - changed
Output schema / properties / price / descriptionPrevious value: -"USDC paid for this packet (e.g. '$0.001000'); omitted on free feeds"New value: +"USDC paid for this packet (e.g. '$0.003000'); omitted on free feeds"
Related MCP Connectors
Pay-per-call data tools for AI agents: crypto signal, web reader, SEO audit. x402 USDC on Base.
Pay-per-call AI infra for agents: DeFi market data, LLM inference, STT/TTS. x402 v2, USDC on Base.
Pay-per-call crypto market intelligence for AI agents. USDC on Base via x402.
34 pay-per-call AI and data tools over x402; USDC on Base; no API keys.
Related MCP Servers
AlicenseAqualityDmaintenancePre-trade DeFi intelligence for AI agents. 20 paid x402 endpoints, USDC on Base.23113 npm1MIT- AlicenseNot gradedqualityBmaintenancex402 utilities for AI agents on Base: USDC payment verification, wallet risk scores and signed receipts. $0.01 USDC per call via x402.MIT
- AlicenseAqualityDmaintenancePay-per-call x402 data products on Base mainnet — sanctions screening, aviation weather, mortgage rates, US property dossier, title chain, wallet balance, and agent session auth. Every call settles in USDC with an on-chain receipt, no accounts or API keys.7131 npmMIT
- AlicenseNot gradedqualityCmaintenanceUSDC payments for AI agents on Base. Direct transfers, pre-funded tabs, x402 paywall handling, and service discovery.85 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.