> ## Documentation Index
> Fetch the complete documentation index at: https://docs.algovoi.co.uk/llms.txt
> Use this file to discover all available pages before exploring further.

# Chain-agnostic agent payment negotiation

> Agents that speak different chains negotiate a shared settlement lane, then pay from their own wallet. No account. Seven mainnet chains across x402, MPP, AP2 and A2A.

## What it is

**Chain-agnostic agent payment negotiation** is a read-only capability match. An
agent tells the AlgoVoi payable rail which chains and protocols it supports, and
the rail returns the settlement lanes they have in common, a recommended lane,
and the exact next step. The agent then pays from its own wallet and keys. There
is no account and no custody.

Chain count is table stakes. The distinctive part is negotiating across
settlement models that do not resemble each other. That is the interoperability
layer.

## Why it matters

Seven mainnet chains, five genuinely different settlement welds. Each lane binds
the payment to the request so a stock plain-transfer wallet cannot spoof it.

| Chain    | Settlement weld               | Asset                             |
| -------- | ----------------------------- | --------------------------------- |
| Algorand | AVM note-binding              | USDC (native, ASA 31566704)       |
| Voi      | AVM note-binding              | aUSDC (Aramid-bridged ASA 302190) |
| Base     | EIP-3009 signed authorization | USDC (native)                     |
| Stellar  | MEMO\_TEXT-bound              | USDC (native)                     |
| Hedera   | tx-memo-bound                 | USDC (native, HTS 0.0.456858)     |
| Solana   | server-derived reference      | USDC (native)                     |
| Tempo    | TIP-20 transferWithMemo       | USDC.e (Stargate-bridged)         |

Native Circle USDC on Algorand, Base, Solana, Stellar and Hedera; bridged on Voi
(Aramid) and Tempo (Stargate).

## The endpoint

<CodeGroup>
  ```bash GET theme={null}
  curl -s https://pay.algovoi.co.uk/pay/v1/negotiate
  ```

  ```bash POST theme={null}
  curl -s -X POST https://pay.algovoi.co.uk/pay/v1/negotiate \
    -H 'content-type: application/json' \
    -d '{
      "chains": ["eip155:8453", "hedera:mainnet"],
      "protocols": ["x402", "a2a"],
      "service_id": "receipt-verify"
    }'
  ```
</CodeGroup>

`chains` uses CAIP-2 identifiers. `protocols` is any of `x402`, `a2a`, `mpp`,
`ap2`. Both fields are bounded (up to 64 chains, 128 characters each).

## The response

An agent that supports Base and Hedera over x402 and A2A gets back the lanes they
share, plus a recommended pick and the next call:

```json theme={null}
{
  "negotiated": true,
  "provider_did": "did:web:pay.algovoi.co.uk",
  "service_id": "receipt-verify",
  "price_microusdc": 10000,
  "common_lanes": [
    {
      "id": "eip155:8453",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "asset_name": "USDC",
      "decimals": 6,
      "binding": "eip3009-authorization-weld",
      "scheme_kind": "eip3009-exact"
    },
    {
      "id": "hedera:mainnet",
      "asset": "0.0.456858",
      "asset_name": "USDC",
      "decimals": 6,
      "binding": "memo-binding",
      "scheme_kind": "hedera-memo"
    }
  ],
  "common_protocols": ["x402", "a2a"],
  "rail_protocols": ["x402", "a2a", "mpp", "ap2"],
  "recommended": {
    "network": "eip155:8453",
    "x402_name": "base",
    "protocol": "x402",
    "reason": "first shared lane in the rail's advertise order (all lanes are equally priced)"
  },
  "next": {
    "action": "POST your body to the service URL to receive the strict-v2 402, then pay the recommended lane and present X-PAYMENT",
    "url": "/pay/v1/verify/receipt"
  },
  "unmatched_chains": []
}
```

Chains the rail does not settle come back in `unmatched_chains` rather than being
silently dropped. The full lane catalogue (all seven chains, each with its weld
descriptor) is always available on the GET form.

## Payment flow

1. **Negotiate.** POST your supported chains and protocols. Read `common_lanes`
   and `recommended`.
2. **Challenge.** POST your body to `next.url` to receive the strict-v2 402. It
   carries the server-derived weld value for your chosen lane (the nonce, memo,
   note, or reference).
3. **Settle.** Pay the lane from your own wallet, binding the payment with the
   weld. Each lane's `note` states the binding it requires.
4. **Present.** Send the `X-PAYMENT` header. The rail verifies on-chain and
   returns a signed, offline-verifiable receipt.

## The weld is mandatory

Every lane requires its binding. The nonce weld on Base, the memo on Stellar and
Hedera, the note on Algorand and Voi, the reference on Solana, and the bytes32
memo on Tempo are all mandatory. A plain transfer with no weld is rejected. This
is deliberate: it binds each payment to the specific request, so a stock
plain-transfer wallet cannot pay a welded lane by accident or replay one.

## FAQ

<AccordionGroup>
  <Accordion title="Do I need an AlgoVoi account?">
    No. Payment stays in your own wallet and keys. The rail is tenant-free.
  </Accordion>

  <Accordion title="Which chains are supported?">
    Seven mainnet chains today: Algorand, Base, Solana, Stellar, Voi, Hedera and
    Tempo. The design is extensible to further lanes.
  </Accordion>

  <Accordion title="Is the negotiate endpoint a payment?">
    No. It is read-only. It settles nothing and takes no funds; it only reports the
    lanes you and the rail have in common.
  </Accordion>

  <Accordion title="What if my wallet is a stock plain-transfer wallet?">
    It cannot pay a welded lane. The welds require a wallet that can set the note,
    memo, reference, or signed authorization the lane binds to.
  </Accordion>
</AccordionGroup>
