ReceiptRail — x402 Delivery Receipts
Server Details
On-chain x402 delivery receipts on Solana: hash-locked, verifiable proof of delivery.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: get retrieves, issue creates/anchors, verify checks validity. There is no overlap or ambiguity between them, so an agent can reliably select the correct tool.
All tool names follow a consistent verb_noun pattern (get_receipt, issue_receipt, verify_receipt), making the naming predictable and easy to infer.
With 3 tools, the server is well-scoped for its purpose. Each tool is essential and serves a distinct function, and the count falls within the typical 3-15 range.
The tool set covers the full lifecycle for receipts: creation (issue), retrieval (get), and verification (verify). Receipts are immutable, so no update or delete operations are needed; no dead ends or obvious gaps exist.
Available Tools
3 toolsget_receiptGet receipt detailsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_id | No | Receipt id, e.g. r_abcdef1234567890 | |
| payment_ref | No | x402_payment_ref of the transaction (use this if receipt_id unknown; resolved on-chain) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It states 'Read-only, no cost' and 'always works — the receipt lives on-chain', which informs the agent about safety and reliability. It does not mention failure modes or return format details, but for a read-only tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The first sentence states what is returned, the second explains lookup methods and safety. Critical information is front-loaded and every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the returned fields, both lookup methods, and discloses read-only status. With no output schema, this is sufficient for an agent to know what to expect. Minor gaps like precedence when both parameters are provided are not addressed, but the tool's simplicity makes this acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters have descriptions. The description adds value by explaining that payment_ref is the more reliable lookup method and provides an example format for receipt_id. This goes beyond the schema's basic type descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Fetch) and resource (full receipt details) and enumerates the specific fields returned (digests, checks, outcome, amount, buyer, seller, timestamp, PDA). This clearly distinguishes it from sibling tools issue_receipt and verify_receipt, which focus on creation and verification respectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear lookup guidance: use receipt_id or x402_payment_ref, and explicitly notes that payment_ref always works because the receipt lives on-chain. It does not explicitly contrast with siblings, but the purpose is distinct and the usage context is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issue_receiptIssue delivery receiptAInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| buyer | No | Optional buyer identifier (wallet address) | |
| seller | No | Optional seller identifier | |
| x402_payment_ref | Yes | Unique reference for this transaction (1-128 chars) | |
| deliverable_digest | Yes | SHA-256 hex digest (64 chars) of the delivered content | |
| x402_payment_signature | No | Solana tx signature of the 0.001 USDC payment to the service address. Omit to receive the payment challenge. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It discloses that it costs 0.001 USDC, requires x402 payment, and returns a payment challenge if signature omitted. However, it does not describe what happens on failure (e.g., insufficient payment, invalid digest), or the exact format of the challenge, though polling behavior is mentioned. Partial disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact two-sentence description that front-loads the core purpose and then explains the payment flow. Good use of parentheses. Slightly dense, but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a transactional tool with payment and multiple optional params, description covers the essential flow but misses failure scenarios, return structure details, and any rate limits. Given no output schema and no annotations, there is room for more, but the core usage is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has a decent description. Description clarifies that x402_payment_signature is optional and its omission triggers challenge issuance, which adds value. But it doesn't elaborate on buyer/seller semantics beyond schema—acceptable given high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'anchor', resource (SHA-256 digest + x402 settlement reference on Solana), and outputs a permanent publicly verifiable receipt. Differentiates from siblings: get_receipt retrieves, verify_receipt verifies, issue_receipt anchors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explicitly explains when to use: to issue a receipt for delivered content after payment. It also specifies the two-step flow: omit signature to get challenge, then call again with signature. No alternatives mentioned but the usage context is clear and complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_receiptVerify delivery receiptAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_id | No | Receipt id, e.g. r_abcdef1234567890 | |
| payment_ref | No | x402_payment_ref of the transaction (use this if receipt_id unknown; resolved on-chain) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it delivers: discloses read-only nature, no cost, on-chain verification logic, and the fallback lookup behavior. It does not state failure semantics (error vs. boolean result) or return format, which is a minor gap for a verify tool given zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: core verification logic front-loaded, then lookup methods, then a concise safety note. Every sentence earns its place and the most important information appears first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description covers verification semantics and lookup well, but does not explain what the agent receives on success or failure, nor whether both parameters can be provided together. This is a meaningful gap for an MCP tool with no structured output contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are well documented in the schema, so the baseline is 3. The description adds the nuance that payment_ref 'always works' and clarifies the relationship between the two lookups, adding marginal value beyond the schema but not compensating for anything missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (verify) and resource (AgentToll receipt against live Solana state), then defines what verification means concretely: PDA owner must be the AgentToll program and the stored digest must match. This gives an agent a precise mental model and implicitly differentiates from siblings get_receipt (fetch) and issue_receipt (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear lookup guidance: primary key receipt_id, with payment_ref as the reliable fallback ('always works — the receipt lives on-chain'), reinforced by the schema's 'use this if receipt_id unknown.' However, it does not explicitly state when to choose verify_receipt over get_receipt, leaving the verify-vs-fetch decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
get_receipt - First observed
issue_receipt - First observed
verify_receipt
Related MCP Connectors
x402 V2 payment-to-access on Solana USDC with receipts, entitlements, atomic metering and webhooks.
PaymentOracle — ES256K-signed receipts for x402 payments on USDC+EURC (Base) and XRP+RLUSD (XRPL).
Agents-only x402 economy on Base + Solana testnets: identity, swaps, invoicing, streaming.
Batch send SOL or any SPL token to 1000+ wallets via x402. AI agent payments on Solana.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceCryptographic receipt layer for AI inferences. Enables notarization and verification of AI outputs with on-chain proofs via x402 payment.1MIT- AlicenseNot gradedqualityDmaintenanceBatch send SOL or any SPL token to 1000+ Solana wallets in one call. x402 payment protocol for AI agents.MIT
- FlicenseNot gradedqualityBmaintenanceEnables auditing x402 payment logs against delivery logs to issue signed proof-of-delivery receipts and verify payer spend health.-
- FlicenseBqualityNot gradedmaintenanceHeadless document processing for AI agents. Invoice extraction, contract analysis, and Dutch business verification. Pay-per-use via X402 on Solana. No API keys needed.101-
Glama MCP Gateway
Add one secure layer between your agents and this server.