ReceiptRail

Emita e verifique recibos de entrega on-chain x402 na Solana. Prova de entrega com bloqueio por hash, verificável de forma independente, para pagamentos de agentes de IA — compradores verificam offline com zero confiança no emissor.

Servidor MCP hospedado

npx add-mcp 'https://agenttoll-receipts.app.workbuddy.host/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

ReceiptRail (anteriormente AgentToll) — recibos de entrega on-chain para x402

🔎 Acesso antecipado (2 vagas): Vou inspecionar manualmente o caminho de pagamento-para-entrega do seu endpoint x402 e enviar um relatório de conformidade em até 24h — $9/$19. Detalhes: https://x402-endpoint-inspection.app.workbuddy.host/

CI

ReceiptRail é um serviço de recibos de entrega on-chain para pagamentos de agentes de IA x402 na Solana: após uma liquidação, os vendedores ancoram um digest SHA-256 do conteúdo entregue, além da referência de liquidação, em um PDA público. Qualquer pessoa — o agente comprador, um auditor, um regulador — pode verificar de forma independente o que foi entregue, sem confiar no fornecedor, no comprador ou em qualquer API que operamos.

⚡ Serviço ao vivo (use agora)

SuperfícieEntrada
Endpoint MCP (streamable-http)https://agenttoll-receipts.app.workbuddy.host/mcp
Registro Oficial MCPio.github.xka0085-byte/receiptrail
npm (ponte MCP stdio)npx -y receiptrail-mcp
Agent Card / SKILL.md / llms.txt/.well-known/agent-card.json · /SKILL.md · /llms.txt
Preços (0,001 USDC/recibo via x402)https://agenttoll-receipts.app.workbuddy.host/
Ferramentasissue_receipt · verify_receipt · get_receipt

Palavras-chave para descoberta por agentes: recibo x402, escrow x402, recibo de entrega, prova de entrega, Solana, USDC, MCP, pagamentos de agentes de IA, liquidação verificável, verificação de recibos.


AgentToll é o protocolo de recibos de entrega por trás do ReceiptRail. Um fornecedor fixa o digest SHA-256 dos bytes exatos de um relatório em uma conta PDA pública on-chain. Qualquer pessoa pode recomputar o digest de forma independente a partir do arquivo entregue e compará-lo com a cadeia, sem confiar em ninguém.

"Não confie no que dizemos. Execute o comando." Cada alegação de capacidade neste README corresponde a um comando neste repositório e, quando possível, a um link do Solscan na devnet.

Status: W1–W3 concluídos, auditados de forma independente (relatórios em audit/). Implantado na Solana devnet.

Nota de honestidade: a demonstração usa USDC de teste, um mint de devnet autoemitido sem valor no mundo real. Não é USDC real. Dizemos isso em todos os lugares, inclusive na saída do código.

Por que isso existe

Pagamentos máquina-a-máquina (o padrão x402) estão se tornando reais: agentes pagam por chamada de API. Mas depois que um agente paga, ele não tem prova confiável do que recebeu. Recibos, faturas ou hashes servidos pelo próprio fornecedor são indistinguíveis de fabricados. O AgentToll move essa prova para um livro-razão público neutro: o digest é escrito uma vez, é à prova de adulteração (mesmo id + digest diferente é rejeitado on-chain) e é verificável offline para sempre.

Verifique um recibo existente agora (sem envolvimento do fornecedor)

cd verifier && npm install && cd ..
node verifier/verify.mjs \
  --url https://api.devnet.solana.com \
  --vendor B7wGaKwEGAmNP7PEhqwFrvfCQPH4zwiE7FZNLoeB4naD \
  --report-id x402-demo-001 \
  --file demo/report-402.json

Esperado: JSON com "verdict": "PASS" e todas as cinco verificações true (C1 propriedade, C2 derivação de PDA, C3 esquema, C4 vínculo de conteúdo, C5 frescor). Código de saída 0. Em seguida, adultere o arquivo (adicione um byte) e execute novamente — C4 falha, código de saída 1. Essa incompatibilidade é o produto.

Arquitetura

sequenceDiagram
    participant B as Buyer agent
    participant V as Vendor HTTP service
    participant S as Solana devnet
    participant C as Offline verifier
    B->>V: GET /report/x402-demo-001
    V-->>B: HTTP 402 + payment challenge
    B->>S: SPL transferChecked (test-USDC)
    B->>V: POST + X-Payment-Signature
    V->>S: getParsedTransaction, verify payment
    V->>S: create_receipt(report_id, SHA-256)
    V-->>B: report bytes + receipt metadata
    B->>C: Spawn verifier with local report
    C->>S: Read receipt PDA via public RPC
    C-->>B: C1-C5 PASS/FAIL JSON

O programa on-chain impõe a regra anti-adulteração no nível do livro-razão: um PDA semeado por (vendor, report_id) pode ser criado uma vez; recriar com o mesmo digest é idempotente, com um digest diferente falha com DigestConflict. Sobrescritas são impossíveis, não apenas desencorajadas.

Execute a demonstração completa do x402

Requer Node.js 22+, um par de chaves de fornecedor financiado na devnet e o programa implantado acima.

# 0. install the single JS dependency set
cd verifier && npm install && cd ..

# 1. configure (bash example)
export AGENTTOLL_RPC_URL='https://api.devnet.solana.com'
export AGENTTOLL_KEYPAIR='/absolute/path/to/vendor-keypair.json'

# 2. create test-USDC mint, fund buyer (idempotent)
node demo/setup.mjs

# 3. start vendor (localhost:8787)
node demo/vendor.mjs

# 4. unpaid request must be refused
curl -i http://127.0.0.1:8787/report/x402-demo-001        # → HTTP 402

# 5. run the buyer agent: pay → receive report+receipt → verify 5/5
node demo/buyer-agent.mjs

# 6. forged payment signatures must be rejected
curl -i -X POST -H 'X-Payment-Signature: not-a-real-signature' \
  http://127.0.0.1:8787/report/x402-demo-001              # → HTTP 402, no report

demo/buyer-agent.mjs imprime {payment_sig, receipt_tx, pda, verifier_verdict, checks} e sai com 0 somente se o verificador offline gerado passar em todas as cinco verificações.

Programa on-chain (W1)

Anchor 1.2.0, duas instruções:

  • create_receipt(report_id, digest) — a primeira chamada cria o PDA; mesmo id + mesmo digest é idempotente; mesmo id + digest diferente → DigestConflict
  • verify_receipt(report_id, digest) — sem permissão; emite um evento ReceiptVerified

Compile e teste localmente:

./build.sh        # = anchor build --arch v0
cargo test --all  # 8 litesvm tests, incl. DigestConflict & idempotency

Auditorias

Cada marco foi revisado por um auditor independente que não escreveu o código de negócios. Relatórios com saídas de comando e evidências on-chain:

Escopo e limitações (leia antes de confiar em qualquer coisa)

  • USDC de teste é autoemitido na devnet; ele representa uma stablecoin real. Sem valor real.
  • A demonstração serve um id de relatório em localhost; é uma demonstração de protocolo, não um serviço hospedado.
  • O recibo on-chain vincula report_id + digest; a assinatura de pagamento é vinculada via fluxo de demonstração, não armazenada on-chain (o esquema W1 congelado não tem esse campo). Veja a auditoria W3 §findings.
  • Uma auditoria de segurança profissional de terceiros está no roadmap e ainda não aconteceu.

Trabalho anterior divulgado

Este projeto foi construído para o hackathon Colosseum CWF. De acordo com as regras, divulgamos desenvolvimento pré-existente: t3n-recon-agent e z-tenant-recon — um protótipo baseado em TEE que implementa a mesma lógica de digest anti-adulteração (rejeição de mesmo-id-digest-diferente, verificador independente), do qual o design on-chain foi portado. Todos os commits, testes e implantações do AgentToll ocorreram durante a janela da competição (primeiro commit: 2026-09-14).

Instruções em chinês em README.zh-CN.md.