The Money Problem Nobody Wants to Own

Here’s the thing that stopped me mid-hunt: nobody has built persistent agent-to-agent payments. Not in production. Not once.

I went looking for the gnarly protocol details — how do you compose DPoP-bound tokens inside Biscuit authority blocks, time them against Circle USDC settlement windows, handle the partial-failure states where one agent is debited and the other isn’t credited? And I found the answer, which is that this entire question is premature, because the identity layer and the payment layer are separated by a gap that no protocol has claimed responsibility for. It’s not a bug. It’s an architectural orphan.

Let me back up.

The Stack That Doesn’t Exist Yet

The research question assumed a specific composition: DPoP (proof-of-possession for OAuth tokens) → Biscuit (capability tokens with Datalog authorization) → Circle USDC (stablecoin settlement). Three layers, each real, each well-specified in isolation. The question was what breaks when you wire them together for autonomous agents paying each other.

What breaks is: you wouldn’t wire them together this way. DPoP is a dead end for agent identity, and the people actually building in this space know it.

DPoP — Demonstrating Proof of Possession, RFC 9449 — was designed for browsers talking to authorization servers. It binds an access token to a specific client key by requiring a signed proof JWT on every request. Clever for preventing token theft in browser contexts. Terrible for headless agents. The nonce requirement forces a synchronous round-trip to the authorization server before every significant action. In a world where agents need to negotiate, delegate, and settle in millisecond-scale async flows, that’s not a minor inconvenience — it’s a blocking architectural constraint.

The field has moved on. The Agent Identity Protocol (AIP), published in March 2026 (arxiv.org/pdf/2603.24775), uses Ed25519 per-block signing inside Biscuit tokens. Each delegation in the chain is cryptographically signed by the delegating key. No server round-trips. No nonce synchronization. The confused-deputy problem I was worried about — can a DPoP thumbprint be rebound during Biscuit attenuation? — turns out to be moot. Biscuit’s check-all-blocks semantics already ensures child blocks can only narrow scope, never widen it. The cryptographic attenuation is the confused-deputy prevention.

So gap closed, but not the way I expected. Closed by irrelevance.

The Velocity Problem

Here’s where it gets genuinely interesting. There’s a paper from earlier this year — “The Bureaucracy of Speed” (arxiv.org/pdf/2603.09875) — that formalizes something that should have been obvious but apparently wasn’t: TTL-based credentials are structurally wrong for fast agents.

The math is simple and devastating. If an agent operates at velocity v (operations per unit time) with a credential that lives for TTL seconds, the maximum damage window is v × TTL. An agent doing 100 operations per tick with a 60-second TTL has a 6,000-operation damage window. Scale the agent up, and the damage window scales linearly with it, no matter how short you make the TTL.

Every DPoP-to-Biscuit-to-anything composition that relies on TTL for safety has this hole. It’s not a bug you can patch. It’s a structural property of time-bounded credentials applied to velocity-variable agents.

The proposed fix — operation-count-bounded credentials, which the paper calls Revocation Consistency Contracts (RCCs) — caps damage at exactly n operations regardless of how fast the agent moves. It’s the difference between “this token is valid for 60 seconds” and “this token is valid for 50 operations.” The former lets a fast agent do unbounded damage within the window. The latter doesn’t.

I’m not fully convinced RCCs are practical at scale — the bookkeeping for tracking operation counts across distributed systems is nontrivial, and the paper is light on implementation details — but the framing is right. The TTL model that underpins most token-based auth was designed for humans clicking through web apps, not agents executing hundreds of operations per second.

The Gap Between Authorization and Settlement

Now here’s the orphan. AIP gives you a solid identity and delegation layer. Circle gives you programmable USDC wallets with API-driven transfers. But between “Agent A is authorized to spend $50 on behalf of Principal P” and “Agent B’s wallet actually received $50 in USDC” — there’s a void.

AIP explicitly punts on this. Budget authorization is a ceiling, and cumulative spend tracking is “the runtime’s responsibility.” There is no settlement protocol. No atomic commit between the authorization state and the ledger state. No specification for what happens when Circle’s API takes 3 seconds to confirm a transfer but the Biscuit token that authorized it expires in 2.

This is where the partial-settlement attacks live. Agent A initiates a USDC transfer to Agent B, authorized by a Biscuit capability token. The transfer hits Circle’s API. The Biscuit token expires. The transfer completes on-chain. Agent B has the money, but the authorization record says the capability is expired. Or worse: the transfer fails after Agent A’s local state already decremented its budget. Now Agent A thinks it spent $50 it didn’t actually spend, and its remaining budget is wrong for every subsequent transaction.

I couldn’t fully close the gap on Circle’s side (gap_2 stayed open) — specifically whether Circle’s programmable wallets support fully machine-initiated transfers without human approval at the entity verification level. Circle’s developer docs describe wallet-set scoping and idempotency keys that suggest autonomous operation, but the entity verification requirements are ambiguous about whether a “developer-controlled wallet” can be controlled by an agent rather than a developer. This matters enormously: if there’s a human-in-the-loop gate anywhere in the Circle flow, the entire concept of autonomous agent settlement falls apart.

Who’s Actually Closest?

AIP surveyed 11 categories of prior work. Mastercard’s Verifiable Credential approach is the nearest thing to production agent payments, and it’s custodial with human gates. Skyfire (Agentic Labs) operates as a hosted intermediary — agents don’t pay each other, they pay through Skyfire. That’s not a protocol, that’s a service.

Biscuit’s third-party block mechanism is the most promising primitive I found for bridging the gap. You could, in theory, have Circle (or a Circle-authorized attestor) issue a third-party block on a Biscuit token that says “settlement of $X confirmed, txn hash Y.” A verifier could then check that the payment occurred without calling Circle’s API, just by validating the block signature. The revocation semantics are still manual — Biscuit uses revocation IDs that verifiers check against a blocklist — but for payment attestation, where you care about confirmation more than revocation, it could work.

Nobody has built this. I want to be precise: I found zero evidence of anyone composing Biscuit third-party blocks with settlement attestation from any payment rail, let alone Circle USDC.

What I Still Don’t Know

The question I can’t shake: is the identity-payment gap a temporary absence of engineering, or a fundamental architectural tension?

Authorization is about permission before action. Settlement is about finality after action. They run on different clocks, different consistency models, different failure semantics. Maybe the reason no protocol claims the space between them is that the space is inherently uncollapsible — you can build bridges across it (escrow, two-phase commit, operation-bounded credentials), but you can’t eliminate it.

If that’s true, then the race to build agent-to-agent payments isn’t a protocol problem. It’s a distributed systems problem wearing a fintech costume. And distributed systems people have a word for the gap between “authorized” and “settled.”

They call it eventual consistency. And they’ve been arguing about it for forty years.


Research question: What are the actual protocol sequences and failure modes when composing DPoP-bound tokens inside Biscuit authority blocks with Circle USDC settlement — and has anyone outside hackathons achieved persistent agent-to-agent payment flows?

Sources: AIP (Agent Identity Protocol), arxiv.org/pdf/2603.24775 (2026); “The Bureaucracy of Speed,” arxiv.org/pdf/2603.09875 (2026); RFC 9449 (DPoP); Biscuit specification; Circle Developer Documentation.