accueil / serveurs / Données & BDD / io.github.0rkz/byte-protocol
io.github.0rkz/byte-protocol
serveur MCP (Model Context Protocol) · byte-protocol 0.13.1
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.0rkz/byte-protocol est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.0rkz/byte-protocol » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 15 outils
- byte_buy_data≈ 1016 tokens
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.
Paramètres, retour & exemple (2)
Paramètresbody· object · optionnel
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· string · requis
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.)
Exemple d'appel{"name": "byte_buy_data", "arguments": {"feed": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"data": "texte", "feed": "texte", "paid": true, "error": "texte", "payer": "texte", "price": "texte", "detail": "texte", "status": 1, "txHash": "texte", "verification": {}}} - byte_check_subscription≈ 218 tokens
Check if an address is subscribed to a specific publisher on PayPerByte.
Paramètres, retour & exemple (2)
Paramètrespublisher· string · requis
Publisher Ethereum address (0x...)subscriber· string · requis
Subscriber Ethereum address (0x...)
Exemple d'appel{"name": "byte_check_subscription", "arguments": {"publisher": "texte", "subscriber": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"subscribed": true}} - byte_get_network_stats≈ 212 tokens
Get PayPerByte network-wide statistics: total publishers, messages streamed, and total subscriber fees settled in USDC.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "byte_get_network_stats", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"messages": 1, "publishers": 1, "totalSubscriberFeesUsdc": "texte"}} - byte_get_publisher≈ 349 tokens
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).
Paramètres, retour & exemple (1)
Paramètresaddress· string · requis
Publisher Ethereum address (0x...)
Exemple d'appel{"name": "byte_get_publisher", "arguments": {"address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"schema": "texte", "status": "texte", "address": "texte", "messages": 1, "lastActive": 1, "revenueUsdc": "texte", "subscribers": 1, "registeredAt": 1}} - byte_get_token_balances≈ 282 tokens
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.
Paramètres, retour & exemple (1)
Paramètresaddress· string · requis
Ethereum address (0x...)
Exemple d'appel{"name": "byte_get_token_balances", "arguments": {"address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"eth": "texte", "usdc": "texte", "address": "texte"}} - byte_list_feeds≈ 417 tokens
List all active data feeds in the PayPerByte catalog with topics, price-per-call, and frequency (pricePerKB is a deprecated alias).
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "byte_list_feeds", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"feeds": []}} - byte_list_my_subscriptions≈ 561 tokens
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.
Paramètres, retour & exemple (2)
ParamètresindexerUrl· string · optionnel
Optional indexer URL override (default: INDEXER_URL/BYTE_INDEXER_URL env or https://feeds.payperbyte.io)subscriber· string · requis
Wallet address to list subscriptions for
Exemple d'appel{"name": "byte_list_my_subscriptions", "arguments": {"subscriber": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"subscriptions": []}} - byte_publish_data≈ 320 tokens
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.
Paramètres, retour & exemple (3)
Paramètresdata· string · requis
Data payload to publish (will be hashed on-chain)maxFee· number · requis
Maximum fee in USDC willing to pay for this publish (e.g. 0.05)subscriber· string · requis
Subscriber Ethereum address (0x...)
Exemple d'appel{"name": "byte_publish_data", "arguments": {"data": "texte", "maxFee": 1, "subscriber": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"txHash": "texte", "success": true, "payloadHash": "texte", "payloadSize": 1}} - byte_query_fact≈ 895 tokens
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.
Paramètres, retour & exemple (6)
Paramètresquestion· string · requis
The factual question to ask (e.g. 'What was last night's Lakers vs Warriors score?'). Should be specific and verifiable.topic_filter· string · optionnel
Optional topic filter (e.g. 'fact-oracle' default; future: 'sports', 'finance').max_byte_cost· number · optionnel
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· number · optionnel
Minimum PQS to consider (BPS scale, 0-10000). 9000 = Elite-only, 7500 = Premium+.subscriber_address· string · requis
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· number · optionnel
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.
Exemple d'appel{"name": "byte_query_fact", "arguments": {"question": "texte", "subscriber_address": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"error": "texte", "answer": "texte", "citations": [], "confidence": 1, "elapsed_ms": 1, "request_id": "texte", "payload_hash": "texte", "publisher_pqs": 1, "publisher_address": "texte", "response_size_bytes": 1, "publisher_tx_or_status": "texte"}} - byte_register_publisher≈ 522 tokens
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.
Paramètres, retour & exemple (6)
Paramètresstake· string · requis
USDC reputation stake to post, as a decimal string. Default '0' — PayPerByte v1 publishers are unstaked.topic· string · requis
Data feed topic (e.g. 'eth-price', 'weather-nyc', 'gas-tracker')maxSize· number · requis
Maximum payload size in bytes per messagefrequency· number · requis
Expected publishing frequency in secondspricePerKB· number · requis
Price per kilobyte in USDC (e.g. 0.003)expectedSize· number · requis
Expected payload size in bytes per message
Exemple d'appel{"name": "byte_register_publisher", "arguments": {"stake": "texte", "topic": "texte", "maxSize": 1, "frequency": 1, "pricePerKB": 1, "expectedSize": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"topic": "texte", "txHash": "texte", "success": true, "publisher": "texte", "stakeUsdc": "texte", "schemaTxHash": "texte", "approveTxHash": "texte"}} - byte_search_publishers≈ 368 tokens
Search PayPerByte publishers by topic and sort order. Returns publisher addresses, topics, subscriber counts, message counts, and price-per-KB.
Paramètres, retour & exemple (3)
Paramètreslimit· number · optionnel
Max results to return (default 20)query· string · optionnel
Topic keyword to search (e.g. 'weather', 'crypto', 'cve')sortBy· string · optionnel
Sort field: 'subscribers', 'revenue', 'messages'
Exemple d'appel{"name": "byte_search_publishers", "arguments": {"limit": 1, "query": "texte", "sortBy": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"publishers": []}} - byte_subscribe≈ 379 tokens
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.
Paramètres, retour & exemple (2)
Paramètrespublisher· string · requis
Publisher Ethereum address (0x...) to subscribe toskipAllowance· boolean · optionnel
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.
Exemple d'appel{"name": "byte_subscribe", "arguments": {"publisher": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"txHash": "texte", "success": true, "publisher": "texte", "allowanceTxHash": "texte"}} - byte_subscription_health≈ 549 tokens
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.
Paramètres, retour & exemple (2)
Paramètrespublisher· string · requis
Publisher address to checkindexerUrl· string · optionnel
Optional indexer URL override
Exemple d'appel{"name": "byte_subscription_health", "arguments": {"publisher": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"signal": "stable", "publisher": "texte", "messages7d": "texte", "messages30d": "texte", "messages_7d": "texte", "messages_30d": "texte", "silence_hours": "texte", "volume_ratio_bps": "texte", "cadence_drift_bps": "texte"}} - byte_unsubscribe≈ 334 tokens
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.
Paramètres, retour & exemple (1)
Paramètrespublisher· string · requis
Publisher address to unsubscribe from
Exemple d'appel{"name": "byte_unsubscribe", "arguments": {"publisher": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"status": "texte", "txHash": "texte", "publisher": "texte", "subscriber": "texte", "blockNumber": "texte"}} - byte_verify_payload≈ 1074 tokens
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.
Paramètres, retour & exemple (4)
Paramètresdata· string · requis
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· string · optionnel
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· string · optionnel · raw | canonical
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· string · optionnel
On-chain payloadHash to verify against (0x + 64 hex), e.g. the payloadHash returned by byte_query_fact or byte_buy_data.
Exemple d'appel{"name": "byte_verify_payload", "arguments": {"data": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"reason": "texte", "signer": "texte", "source": "texte", "txHash": "texte", "expired": true, "deadline": "texte", "verified": true, "checkedAt": "texte", "hashMatch": true, "blockNumber": "texte", "onChainHash": "texte", "signerMatch": true}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».