ReceiptRail — x402 Delivery Receipts
On-chain x402 delivery receipts on Solana: hash-locked, verifiable proof of delivery.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"receiptrail": {
"url": "https://agenttoll-receipts.app.workbuddy.host/mcp"
}
}
}Remote endpoints
https://agenttoll-receipts.app.workbuddy.host/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
⚪issue_receipt(x402_payment_ref, deliverable_digest, x402_payment_signature, buyer, seller)
Anchor a SHA-256 digest of delivered content plus the x402 settlement reference on Solana. Returns a permanent, publicly verifiable receipt (poll until outcome === "settled"). Costs 0.001 USDC via x402; if x402_payment_signature is omitted, returns the payment challenge instead (pay 0.001 USDC to the service address, then call again with the payment tx signature).
Input Schema
{
"type": "object",
"properties": {
"x402_payment_ref": {
"type": "string",
"description": "Unique reference for this transaction (1-128 chars)"
},
"deliverable_digest": {
"type": "string",
"description": "SHA-256 hex digest (64 chars) of the delivered content"
},
"x402_payment_signature": {
"type": "string",
"description": "Solana tx signature of the 0.001 USDC payment to the service address. Omit to receive the payment challenge."
},
"buyer": {
"type": "string",
"description": "Optional buyer identifier (wallet address)"
},
"seller": {
"type": "string",
"description": "Optional seller identifier"
}
},
"required": [
"x402_payment_ref",
"deliverable_digest"
]
}🟢verify_receipt(receipt_id, payment_ref)
Verify an AgentToll receipt against live Solana state: PDA owner must be the AgentToll program and the stored digest must match the receipt. Look up by receipt_id, or by x402_payment_ref (always works — the receipt lives on-chain). Read-only, no cost.
Input Schema
{
"type": "object",
"properties": {
"receipt_id": {
"type": "string",
"description": "Receipt id, e.g. r_abcdef1234567890"
},
"payment_ref": {
"type": "string",
"description": "x402_payment_ref of the transaction (use this if receipt_id unknown; resolved on-chain)"
}
}
}🟢get_receipt(receipt_id, payment_ref)
Fetch full receipt details: digests, checks, outcome, amount, buyer, seller, timestamp, PDA. Look up by receipt_id, or by x402_payment_ref (always works — the receipt lives on-chain). Read-only, no cost.
Input Schema
{
"type": "object",
"properties": {
"receipt_id": {
"type": "string",
"description": "Receipt id, e.g. r_abcdef1234567890"
},
"payment_ref": {
"type": "string",
"description": "x402_payment_ref of the transaction (use this if receipt_id unknown; resolved on-chain)"
}
}
}Community
Evidence