Skip to content
Back to AlgoVoi Payable Rail

Card snapshot

pay.algovoi.co.uk · 2026-08-26 06:10:39 UTC · 897ab68d19434c112256638ac2e501ea27cef6212ac7fa5287ce45a20c028a14

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "protocolVersion": "0.3.0",
  "name": "AlgoVoi Payable Rail",
  "description": "Tenant-free metered signed-verification rail. Pay per call with x402 (USDC on Algorand mainnet, AVM note-bound settlement, scheme:exact is NOT EIP-3009); no API key, payment is the auth. Every response carries an offline-verifiable Ed25519 receipt.",
  "url": "https://pay.algovoi.co.uk/a2a",
  "preferredTransport": "JSONRPC",
  "additionalInterfaces": [
    {
      "transport": "JSONRPC",
      "url": "https://pay.algovoi.co.uk/a2a"
    }
  ],
  "version": "1.0.0",
  "provider": {
    "organization": "AlgoVoi",
    "url": "https://pay.algovoi.co.uk"
  },
  "documentationUrl": "https://pay.algovoi.co.uk/pay/v1/index",
  "did": "did:web:pay.algovoi.co.uk",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "extensions": [
      {
        "uri": "https://github.com/google-agentic-commerce/a2a-x402/blob/main/spec/v0.2",
        "description": "Supports payments using the x402 protocol for on-chain settlement. scheme:exact is a per-lane binding, NOT stock EIP-3009 (Algorand AVM note-bound / Base EIP-3009 nonce weld / Solana server-derived reference).",
        "required": true,
        "params": {
          "lanes": [
            {
              "id": "algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73k",
              "asset": "31566704",
              "asset_name": "USDC",
              "decimals": 6,
              "binding": "note-binding",
              "scheme_kind": "avm-note",
              "note_binding": "mandatory"
            },
            {
              "id": "eip155:8453",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "asset_name": "USDC",
              "decimals": 6,
              "binding": "eip3009-authorization-weld",
              "scheme_kind": "eip3009-exact",
              "eip712_domain": {
                "name": "USD Coin",
                "version": "2",
                "chainId": 8453,
                "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
              },
              "authorization_weld": {
                "nonce": "keccak256(payment_reference)",
                "value": "== price (exact)",
                "to": "== payTo"
              },
              "note": "scheme:exact = EIP-3009 signed authorization we settle; the nonce weld is mandatory, stock EVM x402 clients cannot pay this lane"
            },
            {
              "id": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
              "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
              "asset_name": "USDC",
              "decimals": 6,
              "binding": "solana-reference",
              "scheme_kind": "solana-reference",
              "reference_binding": "mandatory",
              "note": "scheme:exact = Solana reference-bound settlement; include the server-derived svm_reference_pubkey (from the 402) as a read-only account in your USDC transfer"
            },
            {
              "id": "stellar:pubnet",
              "asset": "USDC:GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN",
              "asset_name": "USDC",
              "decimals": 7,
              "binding": "memo-binding",
              "scheme_kind": "stellar-memo",
              "memo_binding": "mandatory",
              "note": "scheme:exact = Stellar MEMO_TEXT-bound settlement; set the tx MEMO_TEXT to the server-derived weld (from the 402). Stock clients cannot pay this lane."
            },
            {
              "id": "hedera:mainnet",
              "asset": "0.0.456858",
              "asset_name": "USDC",
              "decimals": 6,
              "binding": "memo-binding",
              "scheme_kind": "hedera-memo",
              "memo_binding": "mandatory",
              "note": "scheme:exact = Hedera TIP tx-memo-bound settlement of native USDC (HTS); set the tx memo to the server-derived bytes weld (from the 402). Stock clients cannot pay this lane."
            },
            {
              "id": "voi:mainnet",
              "asset": "302190",
              "asset_name": "aUSDC",
              "decimals": 6,
              "binding": "note-binding",
              "scheme_kind": "voi-asa-note",
              "note_binding": "mandatory",
              "asset_note": "Aramid-bridged USDC (ASA), not native Circle USDC",
              "note": "scheme:exact = Voi AVM ASA note-bound settlement; set the tx note to the server-derived weld (from the 402). Stock clients cannot pay this lane."
            },
            {
              "id": "eip155:4217",
              "asset": "0x20c000000000000000000000b9537d11c60e8b50",
              "asset_name": "USDC.e",
              "decimals": 6,
              "binding": "memo-binding",
              "scheme_kind": "tempo-memo",
              "memo_binding": "mandatory",
              "asset_note": "bridged USDC.e (Stargate) on Tempo, not native Circle USDC",
              "note": "scheme:exact = Tempo TIP-20 transferWithMemo settlement; call transferWithMemo with the bytes32 memo weld (from the 402). A plain ERC-20 transfer is rejected."
            }
          ]
        }
      }
    ]
  },
  "securitySchemes": {
    "x402-payment": {
      "type": "http",
      "scheme": "x402",
      "description": "Payment is the authentication. No API key/bearer. Each paid skill returns an x402 v2 402 challenge; pay the USDC amount to payTo on Algorand mainnet with the challenge token in the tx note, then resubmit with the X-PAYMENT proof. See /pay/v1/index."
    }
  },
  "security": [],
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "pay-verify-receipt",
      "name": "Verify payment/settlement receipt",
      "description": "Tenant-free metered x402 service: no API key, payment is the auth (USDC on Algorand, scheme:exact = AVM note-bound settlement, token bound in the tx note, not EIP-3009). Verify an x402/AP2 settlement attestation or signed receipt (JWS) offline against the platform JWKS and return a signed verification receipt. Price $0.01 USDC per call; returns an offline-verifiable Ed25519 receipt binding settled_payment_ref -> request_hash -> response_hash.",
      "tags": [
        "x402",
        "payments",
        "verification",
        "algorand",
        "receipts"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "pay-verify-rfc9421",
      "name": "Verify RFC 9421 HTTP message signature",
      "description": "Tenant-free metered x402 service: no API key, payment is the auth (USDC on Algorand, scheme:exact = AVM note-bound settlement, token bound in the tx note, not EIP-3009). Verify an RFC 9421 HTTP message signature (Signature-Input / Signature / Content-Digest) against a supplied public key and return a signed verification receipt. Price $0.01 USDC per call; returns an offline-verifiable Ed25519 receipt binding settled_payment_ref -> request_hash -> response_hash.",
      "tags": [
        "x402",
        "payments",
        "verification",
        "algorand",
        "receipts"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "pay-compliance-receipt",
      "name": "Signed compliance receipt",
      "description": "Tenant-free metered x402 service: no API key, payment is the auth (USDC on Algorand, scheme:exact = AVM note-bound settlement, token bound in the tx note, not EIP-3009). Produce a signed compliance/sanctions-screening receipt for a counterparty payment (wave 2, not yet enabled). Not yet enabled (wave 2).",
      "tags": [
        "x402",
        "payments",
        "verification",
        "algorand",
        "receipts"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "negotiate-payment-lane",
      "name": "Chain-agnostic payment-lane negotiation",
      "description": "Chain-agnostic capability match. POST {chains:[...], protocols:[...], service_id?} to /pay/v1/negotiate with the chains and protocols you support (CAIP-2 ids, plain names, or hyphen/underscore forms) and get back the lanes you share with the rail plus a recommended pick. GET /pay/v1/negotiate returns the full capability set. Unauthenticated and read-only: mints no token, changes no state, settles nothing; the payment happens afterward via the chosen lane's 402. Response fields: negotiated, common_lanes, common_protocols, recommended, next.",
      "tags": [
        "negotiation",
        "chain-agnostic",
        "caip-2",
        "interoperability",
        "x402",
        "a2a",
        "mpp",
        "ap2",
        "discovery"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}