Verified on Algorand mainnet

Mandate Flow — Mainnet Test

Autonomous USDC micropayments via AVM mandate contract — non-custodial, zero human approval

Last run

3 April 2026

Contract app

100/100

Payments confirmed

5 agents × 20 payments

642ms

Enqueue p50

fire → HTTP 200 (optimistic)

5.5s

Confirm p50

fire → on-chain confirmed

53.1 tx/min

Throughput

parallel mandate streams

What this demonstrates

AVM-enforced limits

Per-payment caps and velocity windows are enforced directly by the mandate smart contract on Algorand's AVM — not server policy. Spending rules can't be overridden by the API host.

Non-custodial keys

Each agent generates and holds its own signing key. No rekeying, no custody service. The mandate delegates authority without transferring ownership.

Optimistic broadcast

The API returns HTTP 200 once the transaction is broadcast (< 1s). On-chain confirmation follows asynchronously in ~3–4s. High-throughput agents don't block on Algorand round times.

x402 protocol

Payments travel as a standard HTTP header (x-payment). Any x402-aware API endpoint becomes instantly payable — no per-integration billing setup, no OAuth, no card rails.

Per-payment results

algorand-mainnet
SlotEnqueueConfirmRoundTransaction
12381ms8.3s59887929AQSGINB3YC4BEG5N7PWR
2584ms5.1s598879322BDT7GTJFZ5QN5IRND5B
3759ms5.8s59887934SEYMCGNSBT74WHXZBQZ3
4543ms5.5s598879366TJE5LZYCC57NNC6JLNB
5600ms5.1s59887938QMST6UNFCHJCESOT4K6Q
61947ms5.8s59887940DVUJZURTBEYGXBQHCB2R
7683ms5.7s59887942WU7G3VL6Z7BKQIMA4HW5
8535ms5.6s598879443MZW3VHP63GIYZ5P7TBY
9530ms5.4s59887946WBLVMG7SLWTKHRJGPES4
101842ms5.6s59887948SAOZNNP6F7PQ5DMQYKFZ
11585ms5.9s59887950LQEJUZO7FXQSZJKQ3CDC
121424ms5.0s59887952FAJUEVKHMDHV2WKHO2BJ
132066ms5.8s59887954NI2AJHGZTAMGCVIYZA35
141886ms5.5s59887956DZGWARKQ6BOED3F4MDRB
15598ms5.0s59887958PPDCDUAAZMESL2ERIYBD
16715ms5.8s59887960KYERQD7QBAVQYYVPXYNM
17723ms5.2s59887962IQLECYDRYDGWH4424LF2
18621ms5.3s59887964RWURSAPITFSBFKJNRJ2I
19608ms5.8s598879665CMB2FUT27X3IQTHN3OT
20601ms5.8s59887968GCRUPXUS64STOLGZL7RJ
12509ms5.4s59887929UUCJCBRSIMYMHZ3NMTOV
21967ms5.2s598879312I2MW5CVVJINKKWSOQWJ
3869ms5.6s59887933J3SVN2MKG55J2AHCKDSJ
4559ms5.4s598879354IU4VOBXDBRGLXOWYS7S
51842ms5.5s59887937FJEWDBLZBDHFFUEJHRBJ
6605ms6.0s59887939R3EVVEXAOBXMTC4GJ5SD
7764ms5.3s598879417U6SNGDZSHGLBK7D6CZF
8533ms5.8s59887943UKOP5A7ODOXA7DXJD7J6
9601ms5.5s598879456RNKYIRX7HEJRVVPINU6
10642ms5.1s598879472NDBDBZCSHJFGRB4HOKX
11533ms5.8s59887949K24QACAZFNSNDBPQAUXK
12702ms5.4s598879517VSURQVF22ZV5KETZLVJ
13564ms5.7s59887953YBLVRCEZMGXHRWE6K5SW
14738ms5.2s59887955IKZRHFB754COQU5LGZFU
15819ms5.4s59887957CHZELT45PJGD7CP5Z2OT
16582ms5.9s598879593TRGTBU3YUHKO24VAOIO
17734ms5.1s59887961NKOCCJFLFDZTS4SKJ2SX
18649ms5.6s59887963AKKBWR3IGRAWKC6J4D7F
191710ms5.7s59887965JWEL6BRC7ASX6NJKECYA
20621ms5.1s59887967JM7UMJUHRYGMY4RHSUTR
12218ms5.3s59887929QS4TXIZWMVDR2GYVJAG7
2613ms5.3s59887931XIYPBXG456U2EXCNB5EK
3690ms5.4s59887933WALJTV3B7AR5JFMC4ZR2
4536ms5.6s59887935UPLCVFG5MW4SCYXPTMPZ
5550ms6.2s59887937M5SULNL4ONLXRJEBRMJ3
6591ms5.2s598879397VNIFR4Q5GVHMCUBJBTB
7616ms5.1s59887941OTE6PAQESFIMEOOJPZUF
81947ms5.8s59887943J5Y52L4G7CWEKFKCM2VH
9733ms5.7s59887945SZHCYFZXBQMLQPNVAPBJ
10532ms5.5s59887947MTKY6UMKDUSSBE54OQQN
11638ms5.2s59887949LP5BWH5HWCANGQBS3VOF
12612ms5.8s59887951PRB7PYZGGEBIMOKDQOBT
131934ms5.2s59887953THC274IEDA2GVQEUITSH
14630ms5.8s59887955TBZGXIEDDD3P6FET7HIX
15541ms5.0s59887957VA6Q4XJKH7LJ742B3TBV
16620ms5.7s59887959FOC6NFUVTEIPG7ASYN5H
17533ms5.7s5988796127K4ROC6LSMP3PRA7ERK
181885ms5.6s59887963AGXNQENYEOSSJVU64M3S
191835ms5.0s59887965ZYVAX3GUHLNC7KQQJBMM
20531ms5.6s5988796733MPWXOHCFCDZ3BXOFQR
12429ms8.4s59887929TBC3ZMJGZC5CZ3TUYULL
2697ms5.7s59887932IKYTOKMFKUFXVF24PYAF
31829ms4.7s59887934LY6TVJHRCIVP5WJNQVKB
4533ms5.6s59887936SCJRSDGRMMHWC4CLT6YP
5588ms5.3s59887938N5SHNDQA2CDV6AQ4VKZU
61783ms6.2s59887940WHDDHTD26WLL6EBJ336U
7571ms5.3s598879427K5XTKRVV7AIK7CDJUSI
82009ms5.1s59887944QDPJDYBWI2P3GON35QTA
9702ms5.7s59887946PVLZMB4CHNI3IY36ZMPV
10532ms5.5s598879487DTUKDTJ2VRMXJJO5DMM
11572ms5.4s59887950SGGSZAI2E34H4A4TNUCS
121851ms5.4s59887952P62GZJTWO7YRQSHYK4OP
131927ms5.8s59887954XZIKQV4N2DPRXNGHKQFP
14912ms5.7s59887956A2T2LB22QF6ZFXQGXYIF
151849ms5.4s59887958IWPPKQEWVECQZIOPWU4Y
16605ms5.1s59887960QG4BJXPKYXOY3PGAWN2Z
17530ms5.9s59887962W3XBUVX6GMCYGHGBNSYG
18647ms5.3s5988796433AO6MRX3QUJGKMT6SU5
19710ms5.8s598879665AIKQPVU5MSSYFPJOHUS
201874ms5.5s59887968B3EJGPGLES2V64E6DM3N
12431ms5.4s59887929VPBQCVVUJNSMMG4WDQEQ
21920ms5.5s59887931WOOMYZGFLZDG4RXDNEXJ
31827ms5.6s59887933BRI2UA3IGN24LURDJZST
41447ms5.0s59887935PHFSLJYLNMVRYQLESRKE
5602ms5.9s59887937FCYGAQ2C4F3S3OGBAVHJ
61636ms5.3s59887939ZVMVUW37TVIFN6WIOV4L
7569ms5.3s59887941ACYZ7IAGCAIB3J6TOUUW
8618ms5.7s598879435UD5G4PJPQJWV3VKEI2U
9569ms5.5s598879455ZHNUZ4QYVNAERTSOMZP
10550ms5.7s598879474BVASOTMVTWDPFHHTGET
111631ms5.4s59887949APHABS4BVY6H4AHFXTGC
12541ms5.8s59887951B6R6SWVV5SPWT74ESKJM
131736ms5.3s598879534OVRCCRBDNDPLYAEHKI6
14708ms5.3s59887955LESNZT2GWRSPHEAV437T
15598ms5.8s59887957BYXEJOFVDAY4WSNCHG44
16639ms5.7s59887959CLUBR3DBX73G7VNPXQVY
17601ms5.1s59887961AVHQJ4CZ6NN6SQGWDYW6
18572ms5.6s59887963L2UMOSOUMJ2ILXPTK3CJ
19560ms5.8s59887965L4XLOD6XBE6ZFI4OVFHF
201837ms4.9s59887967WW3ACO57ARSQLAP5MS4D

Latency breakdown

Enqueue latency — fire → HTTP 200

p50642ms
p952066ms
p992431ms
avg1023ms

Confirm latency — fire → on-chain

p505.51s
p955.94s
p998.26s
min4.67s
max8.37s

Test methodology

Each test fires 5 sequential payments through a single mandate-registered agent using the @algo-wallet/x402-client SDK. The agent holds its own signing key — no custody service is involved.

Each payment hits a live x402-protected endpoint. The server validates the x402 proof, checks the mandate contract via AVM, and submits an atomic USDC transfer to Algorand mainnet using optimistic broadcast: the HTTP response returns immediately after the transaction is accepted by the node, not after confirmation. A background worker polls for on-chain finality.

Payments are 0.01 USDC (10,000 µUSDC) each, including the x402 toll. The mandate contract enforces per-payment caps on-chain — the API server cannot authorise payments beyond the limits set in the AVM contract.

Network

Algorand mainnet

Protocol

x402 over HTTP

Mandate contract

App 3498110794

Integrate in minutes

TypeScript SDK
import { AlgoAgentClient } from "@algo-wallet/x402-client";

const client = new AlgoAgentClient({
  baseUrl:      "https://api.ai-agentic-wallet.com",
  privateKey:   account.sk,        // agent-held key
  mandateAppId: MANDATE_APP_ID,    // from /api/agents/create-mandate
});

// AVM enforces spend limits — no server trust needed
const res = await client.fetch("/your/api", {
  method: "POST",
  body:   JSON.stringify({ ... }),
});

x402 HTTP flow

  1. 1.Agent calls endpoint → server returns 402 Payment Required
  2. 2.Client signs an Algorand USDC transfer, attaches as x-payment header
  3. 3.Server validates mandate limits via AVM, broadcasts transaction
  4. 4.HTTP 200 + response payload returned in ~642ms
  5. 5.On-chain confirmed in ~5.5s, verifiable on Pera Explorer

Native Claude integration

Add the MCP server to Claude Desktop — no payment code required.

MCP setup guide →