Skip to main content
Glama

byte_buy_data

Buy one data packet from any listed feed, paying per request in USDC through the x402 gateway. No subscription or prior on-chain setup required.

Instructions

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 10 POST oracles — runtime-eol, threat-intel, address-reputation, pkg-verdict, sanctions-screen, reasoning-verdict, merchant-screen, positioning-snapshot, cctp-attestation-latency, regime-signal — 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 (flagship merchant-screen: $0.10/verdict, a pre-settlement counterparty screen — the signed EIP-712 attestation over the exact response bytes proves delivery, not that the verdict itself is correct). Use a dedicated wallet holding only what you intend to spend.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyNoOptional 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, …).
feedYesFeed 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.)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNoDecoded feed payload returned by the publisher
feedNoEchoed feed slug
paidNoTrue if an x402 payment was made (false on free/cached feeds)
errorNoError message if the buy failed
payerNoWallet that signed the EIP-3009 authorization
priceNoUSDC paid for this packet (e.g. '$0.003000'); omitted on free feeds
detailNoAdditional error detail, if any
statusNoHTTP status of the (post-payment) gateway response
txHashNox402 settlement transaction hash
verificationNoTwo-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.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changedv0.11.13
    • changedInput schema / properties / feed / description
      Previous 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 — 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.)"
  2. Changed2 schema fields changedv0.11.12
    • changedInput schema / properties / feed / description
      Previous 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 — 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.)"
    • changedOutput schema / properties / verification / description
      Previous 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."
  3. Changed4 schema fields changedv0.11.11
    • addedInput schema / properties / body
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "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, …).",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / feed / description
      Previous 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.020), address-reputation ($0.050), pkg-verdict ($0.050), sanctions-screen ($0.050), reasoning-verdict ($0.050), 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.)"
    • changedOutput schema / properties / price / description
      Previous 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"
    • addedOutput schema / properties / verification
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "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).",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
  4. Changed1 schema field changedv0.10.9
    • changedInput schema / properties / feed / description
      Previous value: -"Feed slug — one of: defi-yields ($0.049), weather ($0.021), earthquakes ($0.0015), space-weather ($0.0024), news-feed ($0.0063), code-pulse ($0.010), runtime-eol ($0.069), threat-intel ($0.026), x402-pulse ($0.015), stablecoin-rails ($0.020), perp-funding ($0.0073), usc-statute ($0.012), evidence-pack ($0.100), address-reputation ($0.050), pkg-verdict ($0.050), sanctions-screen ($0.050), liquidation-stream ($0.0079), positioning-snapshot ($0.037). 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: 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.020), address-reputation ($0.050), pkg-verdict ($0.050), sanctions-screen ($0.050), reasoning-verdict ($0.050), 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.)"
  5. Changed1 schema field changedv0.10.8
    • changedInput schema / properties / feed / description
      Previous value: -"Feed slug — one of: weather, earthquakes, space-weather, news-feed, code-pulse, runtime-eol, threat-intel, btc-metrics, pkg-facts, cve-facts, wiki-facts, merchant-trust, crypto-top100, defi-yields, byte-status. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.)"New value: +"Feed slug — one of: defi-yields ($0.049), weather ($0.021), earthquakes ($0.0015), space-weather ($0.0024), news-feed ($0.0063), code-pulse ($0.010), runtime-eol ($0.069), threat-intel ($0.026), x402-pulse ($0.015), stablecoin-rails ($0.020), perp-funding ($0.0073), usc-statute ($0.012), evidence-pack ($0.100), address-reputation ($0.050), pkg-verdict ($0.050), sanctions-screen ($0.050), liquidation-stream ($0.0079), positioning-snapshot ($0.037). 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.)"
  6. Changed8 schema fields changedv0.10.7
    • changedOutput schema / additionalProperties
      Previous value: -falseNew value: +{}
    • addedOutput schema / properties / detail
      Added value: +{
      +  "description": "Additional error detail, if any",
      +  "type": "string"
      +}
    • addedOutput schema / properties / paid
      Added value: +{
      +  "description": "True if an x402 payment was made (false on free/cached feeds)",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / payer
      Added value: +{
      +  "description": "Wallet that signed the EIP-3009 authorization",
      +  "type": "string"
      +}
    • removedOutput schema / properties / payloadHash
      Removed value: -{
      -  "description": "keccak256 of the response payload",
      -  "type": "string"
      -}
    • addedOutput schema / properties / price
      Added value: +{
      +  "description": "USDC paid for this packet (e.g. '$0.001000'); omitted on free feeds",
      +  "type": "string"
      +}
    • removedOutput schema / properties / pricePaid
      Removed value: -{
      -  "description": "USDC paid for this packet (atomic)",
      -  "type": "string"
      -}
    • addedOutput schema / properties / status
      Added value: +{
      +  "description": "HTTP status of the (post-payment) gateway response",
      +  "type": "number"
      +}
  7. Addedv0.10.5

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, idempotentHint=false), the description discloses the real payment consequence ('pay-per-call USDC settlement'), the auth prerequisite (server signs EIP-3009 on behalf of the wallet whose PRIVATE_KEY is configured), the settlement flow via the x402 facilitator, and the inline response format: data plus the on-chain tx hash. It even states what is NOT needed (no subscription, no allowance, no prior on-chain setup). This is exactly the context annotations don't carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Six dense sentences front-loaded with purpose and payment model, then mechanism, alternative, catalog URL, and usage rules in logical order. Every sentence carries distinct info, though the enumeration of the 10 POST oracles duplicates the schema's feed description — a mild redundancy rather than waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering idempotency/safety traits, the description fills all remaining gaps for a money-spending call: settlement mechanics, wallet/PRIVATE_KEY prerequisite, feed discovery URL, GET vs POST input rules, and explicit sibling routing. An agent has everything needed to invoke this tool correctly and understand what will happen.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — both `feed` (with all 12 slugs and prices) and `body` (POST-oracle requirements) are already fully documented. The description restates the GET/POST switching rule and the oracle list in prose, adding marginal browsing value but no new meaning beyond the schema. Baseline 3 for high coverage is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Buy a single data packet from any PayPerByte feed via the x402 payment gateway.' It explicitly differentiates from siblings by naming byte_subscribe ('continuous stream') and the feed schema names byte_query_fact for fact-oracle Q&A, so an agent can tell this purchase tool apart from subscription and query tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives exdirect when-to-use vs alternatives: 'Use byte_subscribe instead if you want a continuous stream of broadcasts from a publisher,' plus a schema note pointing to byte_query_fact for Q&A. It also tells the agent where to discover feed slugs (the free catalog GET) and exactly when to supply `body` — the GET feeds vs 10 POST oracles split.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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