How to settle USDC agent payments with Catena ACK-Pay
Guide explains how to settle USDC agent payments with Catena ACK-Pay using ACK-ID identity, a Payment Service for settlement and a W3C PaymentReceiptCredential receipt.
Catena Labs’ ACK-Pay is an open protocol for software agents to request and prove USDC payments. The protocol links agent identity, a settlement path and a cryptographic receipt so both buyer and seller can verify payment before access is granted.
ACK-Pay combines three elements. ACK-ID provides agent decentralized identifiers (DIDs) and verifiable credentials that show which human or organization controls an agent. A Payment Service executes settlement on a chosen network or rail and can run risk and compliance checks. A PaymentReceiptCredential is a W3C Verifiable Credential issued by a Receipt Service that records the completed payment.
The flow begins with identity and policy. Builders pair agent DIDs with credentials to prove control and to cache the principal graph for a session. Teams encode rules that limit per-transaction and daily spend, allowed currencies and networks, and permitted counterparty DIDs. If credential checks or rule checks fail, the exchange does not proceed.
A signed JSON Payment Request is the next artifact. The request contains a unique id, an expiry timestamp, a description, and one or more paymentOptions that list currency, amount in atomic units, decimals, network identifier (for example Base mainnet as eip155:8453), recipient pay-in identity, and endpoints for the Payment Service and Receipt Service. The server or client attaches a signed paymentRequestToken to authenticate the request. Catena publishes an @agentcommercekit/ack-pay TypeScript SDK with helpers to build and sign requests and to create and verify receipts.
Settlement happens through the Payment Service listed in the Payment Request. The client selects a payment option, contacts the Payment Service, and completes transfer on the named network or rail. The Payment Service can route across networks, convert assets, manage compliance checks and coordinate with a Receipt Service. After settlement, the Receipt Service issues a PaymentReceiptCredential to the payer.
Receipt verification is required before a seller grants access or marks an invoice paid. An ACK receipt is a Verifiable Credential that includes a PaymentReceiptCredential type and claims such as payer DID, the original paymentRequestToken, paymentOptionId, amount, currency, recipient and optional settlement metadata like a transaction hash. Verification steps include validating the credential signature against the Receipt Service issuer DID, confirming the issuer is on a trusted allowlist, checking revocation status and matching the credential fields and freshness to the original request. Both buyer and seller should persist the credential with internal invoice records for audit.
The documentation includes a worked example: a seller requiring 10 USDC on Base for a 100-credit API bundle. The server issues a signed Payment Request with amount 10000000 and decimals 6 on network eip155:8453, the buyer pays through the listed Payment Service, the buyer receives a PaymentReceiptCredential and the server verifies the credential before returning API credits. Catena’s swap and marketplace demos used the same pattern in test environments.
Technical prerequisites include Node.js 22 or newer, pnpm, a clone of the agentcommercekit/ack repository, an agent wallet that can hold USDC or testUSD on the chosen network, and either a self-operated Payment Service and Receipt Service or a third-party implementation that supports ACK-Pay. Catena’s hosted developer preview called ACK-Lab provided testUSD wallets and policy rules for demos and is no longer available; the ACK protocols and SDKs remain open source for self-hosting and experiments. The documentation recommends storing private keys in secrets managers and enforcing per-transaction and daily spend caps, allowed currencies and networks, and allowed counterparty DIDs.
Product teams can use ACK-Pay where cryptographic agent identity and auditable receipts are required and where a Payment Service abstraction is needed across rails. Simpler HTTP 402 micropayment flows and existing agent kits may be used where only basic Base micropayments are needed. Catena’s documentation notes cross-vendor ACK-ID revocation and production Payment Service endpoints are still developing, and it recommends starting mainnet agent spend with controlled pilots and strict allowlists for Receipt Service issuers.








