x402 Under Load: Concurrent Agent Payments, per Chain
Our settlement benchmark measures one x402 payment at a time. This one asks the opposite question: when a burst of agent payments hits a chain at once, does finality stay fast, does the fee stay flat, and does every payment still settle? That is what decides whether agentic commerce holds up on a rail when traffic spikes.
Algorand is measured (2026-08-09, on-chain proof below); Base, Solana and Stellar are still pending. We publish the method before the numbers on purpose, no vaporware charts, and each remaining chain fills in as we fund an account and run the identical burst, the same way our Algorand settlement run is live and verifiable.
What this benchmark measures
We submit a burst of N concurrent USDC micropayments to a chain and time every one from submit to true finality, repeating at increasing N (10, 50, 100, 500) to see whether finality, fee, or success rate degrade under load. Identical test per chain, same payment, same finality definition, so the comparison stays fair. Here is what each row reports.
| Metric | Algorand | Base | Solana | Stellar |
|---|---|---|---|---|
| Settlement p50 under load (500 concurrent) | 4.97 s | pending | pending | pending |
| Settlement p95 under load | 6.45 s | pending | pending | pending |
| Success rate (did every payment settle?) | 100% (500/500) | pending | pending | pending |
| Fee behavior under load | Flat 0.001 ALGO | pending | pending | pending |
Measured: Algorand burst (concurrent USDC payments)
Here is the part that is actually ours. We fired real USDC payment bursts on Algorand mainnet at four concurrency levels and timed every payment from submit to on-chain finality. The result: Algorand absorbed the burst without breaking a sweat, all 660 payments settled, finality barely moved from the one-at-a-time baseline, and the fee never changed. Run dated 2026-08-09.
| Burst size (N) | Settled | Settle p50 | Settle p95 | Fee each |
|---|---|---|---|---|
| 10 | 10/10 | 3.34 s | 4.74 s | 0.001 ALGO |
| 50 | 50/50 | 4.71 s | 5.62 s | 0.001 ALGO |
| 100 | 100/100 | 4.67 s | 6.33 s | 0.001 ALGO |
| 500 | 500/500 | 4.97 s | 6.45 s | 0.001 ALGO |
Three things stand out, and all three are what an agentic payment rail wants:
- 100% settled, even at 500 at once. Every one of the 660 payments reached finality. Nothing dropped, nothing got stuck.
- Finality held flat under load. Median settlement stayed around 5 seconds at 500 concurrent, essentially unchanged from the 5.20s we measured one-at-a-time on the settlement page. A burst does not slow the chain down.
- The fee never moved. Every payment cost a flat 0.001 ALGO (a fraction of a cent) at every burst size. There is no gas auction to spike the cost exactly when volume does, which is the trap on fee-market chains.
Why there is no "payments per second" number here. You might expect a throughput headline like "X payments/sec." We are deliberately not publishing one, because we cannot measure it cleanly yet. We submit every payment through a single free public RPC endpoint, which rate-limits concurrent submissions (HTTP 429) above roughly ten at once. That cap belongs to the free node, not to Algorand, so any per-second figure would be measuring the endpoint, not the chain. The proof it is the endpoint: even at 500 concurrent, the chain settled each payment in about 5 seconds and never raised the fee, only the time to get payments accepted by the free node stretched out. Algorand itself runs in the tens of thousands of transactions per second (a 14,722 TPS record), and we will publish a real throughput ceiling once we run this through a dedicated node. Until then we report only what we can stand behind: finality, fee, and success under load.
- 0.50 ALGO for the 500-payment burst (500 × the flat 0.001 ALGO fee), about $0.04.
- 0.66 ALGO for the whole 660-payment sweep, about $0.06 (at $0.085/ALGO on 2026-08-09).
- $0.00 in USDC. Every payment was a self-transfer, so no stablecoin value moved, we paid only the ALGO network fee.
Real, repeatable on-chain testing, for pennies. That is the whole pitch of a fixed sub-cent fee: it does not spike under a burst.
Proof, not trust: every payment came from our benchmark account 4R34...LYPJI on Algorand mainnet. The raw benchmark JSON is published here and mirrored under CC BY 4.0, free to reuse with attribution.
Why concurrent load matters for x402
x402 exists so software can pay per request with no human in the loop, which means demand is bursty and parallel in a way human checkout never is. One agent working a task can fan out into many paid API calls at once; a single popular endpoint can be hit by thousands of agents in the same second. On a chain that clears those in a tight window, the endpoint just works. On one that queues them, latency climbs, some payments fail, and, on a gas-market chain, the fee can spike right when volume does. Per-call latency tells you the calm-day experience; behavior under a burst tells you what happens on the busy one.
How it differs from our settlement benchmark
These are two different questions and we keep them separate on purpose. The x402 settlement benchmark sends payments sequentially, one confirmed before the next, to isolate a single payment's own finality time (Algorand measured at about 5.2s median). This page fires them all at once to test capacity under contention. A chain can look great on the first and still strain on the second, which is exactly why both are worth measuring.
Common questions
What is the x402 throughput (burst) benchmark?
It measures how a blockchain behaves when many x402 payments arrive at the same time, rather than one after another. We fire a burst of N concurrent USDC micropayments and record, under that load, how long each takes to reach finality, whether every payment settles, and whether the fee moves. The same test runs on every chain so the results compare apples to apples.
Why measure concurrent payments and not just one at a time?
Because agentic commerce is concurrent by nature. A popular x402 endpoint can receive payments from many agents at once, and a single agent orchestrating a task may fire dozens of micropayments in parallel. A chain that settles one payment quickly can still buckle under a burst, with latency blowups, failed transactions, or fee spikes. Throughput is the dimension the one-at-a-time settlement test does not capture.
How is this different from your settlement-latency benchmark?
Our x402 settlement benchmark measures a single payment in isolation, submitted and confirmed before the next goes out, which is the clean per-call latency one x402 request experiences. This throughput benchmark does the opposite on purpose: it fires many payments at once to test the chain under contention. The two are complementary, per-call latency and burst capacity are different questions.
Do you report a payments-per-second throughput number?
Not yet, and here is the honest reason. We submit every payment through a single free public RPC endpoint, which rate-limits concurrent submissions (HTTP 429) above roughly ten at once. That cap belongs to the free node, not to Algorand, so any per-second figure would measure the endpoint rather than the chain. The proof it is the endpoint and not the network: even at 500 concurrent, the chain settled each payment in about 5 seconds and never raised the fee, and only the time to get payments accepted by the free node grew. Algorand itself runs in the tens of thousands of transactions per second (a 14,722 TPS record), and we will publish a real throughput ceiling once we run this through a dedicated node.
Which chains are measured, and when are the rest coming?
The same x402 rails we track: Algorand, Base, Solana and Stellar. Algorand is measured (2026-08-09): 660 real USDC payments in bursts up to 500 concurrent, all settled, with on-chain proof and raw data published under CC BY 4.0. Base, Solana and Stellar are pending, and each fills in as we fund a throwaway account and run the identical burst. Subscribe below to get each result as it lands.
Get each throughput result as it lands
We are measuring x402 burst throughput across Algorand, Base, Solana and Stellar. Get each chain's numbers, with on-chain proof, the moment they publish. No spam, unsubscribe anytime.