Payment Protocols for the AI Economy
Version: 0.1.0 — April 2026
Status: Technical Specification
Authors: Tenzro Network Research Team
Abstract
As artificial intelligence agents become autonomous economic actors, they require payment infrastructure designed for machine-to-machine transactions. Traditional payment rails—designed for human-initiated, low-frequency transactions—are incompatible with the high-frequency, micropayment-heavy usage patterns of AI systems. Agents need to pay per API call, per token of inference, per second of compute time, and do so across heterogeneous blockchain networks and traditional payment systems.
This whitepaper presents Tenzro's multi-protocol payment infrastructure for the AI economy, supporting HTTP 402-based payment protocols (MPP co-authored by Stripe and Tempo, x402 from Coinbase), the Agentic Payment Protocol (AP2) for autonomous agent-to-agent payment sessions, direct integration with the Tempo stablecoin network, Visa TAP (Tokenized Agent Payments) for card-network settlement, and Mastercard Agent Pay SDK for enterprise agent payment orchestration. Additionally, Tenzro provides native payment primitives — Direct on-chain settlement and Channel-based micropayments — optimized for per-token AI inference billing.
All payment protocols are deeply integrated with Tenzro's Decentralized Identity Protocol (TDIP), enabling identity-bound payments with fine-grained delegation scope enforcement. Machine identities can autonomously execute payments within predefined limits, while humans retain ultimate control through credential inheritance and cascading revocation.
This document provides a comprehensive specification of each protocol, including message formats, cryptographic verification procedures, settlement flows, session management, HTTP middleware integration, and identity-bound payment validation.
1. Introduction
1.1 Motivation
The AI age presents novel payment challenges:
- High transaction frequency: Agents may execute thousands of micropayments per second for inference tokens, API calls, or data access.
- Sub-cent amounts: A single inference token may cost fractions of a cent, requiring payment rails that support micropayments without prohibitive fees.
- Cross-chain interoperability: AI providers may accept payment in TNZO, USDC, ETH, or other assets across multiple blockchains.
- Machine autonomy: Agents must pay autonomously without human intervention, yet remain accountable to delegating humans.
- HTTP-native integration: Most AI APIs use HTTP, requiring payment protocols that integrate seamlessly with REST/JSON-RPC interfaces.
Existing payment systems fail to meet these requirements. Credit card networks charge 2-3% plus fixed fees, making micropayments uneconomical. Traditional blockchain transactions have high latency and gas costs. Custodial API keys lack accountability and revocability. Tenzro's multi-protocol approach addresses these gaps.
1.2 Supported Protocols
| Protocol | Maintainer | Type | Primary Use Case |
|---|---|---|---|
| MPP | Stripe / Tempo | Session-based HTTP 402 | Recurring access, session vouchers |
| x402 | Coinbase | Stateless HTTP 402 | One-time payments, public APIs |
| Tempo | Tempo Network | Stablecoin settlement | Cross-chain USDC/USDT transfers |
| AP2 | Tenzro | Agent-to-agent sessions | Autonomous agent payment sessions with SpendingPolicy |
| Visa TAP | Visa | Tokenized Agent Payments | Card-network-settled agent transactions |
| Mastercard Agent Pay | Mastercard | Enterprise agent payments | Enterprise agent payment orchestration |
| Direct | Tenzro Native | On-chain settlement | TNZO payments on Tenzro Ledger |
| Channel | Tenzro Native | Off-chain micropayments | Per-token AI inference billing |
1.3 Design Principles
- Protocol-agnostic routing: PaymentGateway provides unified interface across all protocols
- Identity-first security: All payments bound to TDIP identities with delegation enforcement
- HTTP-native integration: axum middleware enables automatic 402 challenge/verification
- Cryptographic verifiability: All credentials signed and verified using Ed25519/Secp256k1
- Pluggable settlement: Backend settlement can use on-chain transactions, payment channels, or external rails
2. HTTP 402 Payment Flow
HTTP 402 (Payment Required) is a standard status code defined in RFC 7231 but historically unused. Modern machine payment protocols leverage 402 to create a standardized challenge/credential/receipt flow for resource access gating.
2.1 Generic Flow
Client Server
| |
| (1) HTTP GET /api/resource |
| ----------------------------------------> |
| |
| (2) 402 Payment Required |
| + PaymentChallenge (amount, asset) |
| <---------------------------------------- |
| |
| (3) Create PaymentCredential |
| (sign with wallet, submit proof) |
| |
| (4) HTTP GET /api/resource |
| + PaymentCredential |
| ----------------------------------------> |
| |
| (5) Verify credential & settle |
| |
| (6) 200 OK + PaymentReceipt |
| <---------------------------------------- |
| |
| (7) Access resource with session token |
| ----------------------------------------> |
| |
| (8) 200 OK + Resource data |
| <---------------------------------------- |2.2 Core Abstractions
Tenzro defines a unified payment protocol interface implemented by all payment methods:
Payment Protocol Interface:
- Create payment challenge for resource access
- Verify payment credential and complete settlement
- Execute settlement (on-chain, channel, or external rail)
- Generate payment credential from challenge (client-side)The payment gateway routes requests to the appropriate protocol implementation based on the selected payment method (MPP, x402, Tempo, Direct, or Channel).
3. MPP (Machine Payments Protocol)
MPP is a session-based payment protocol co-authored by Stripe and Tempo. It builds on HTTP 402 to enable recurring access to resources through session tokens and voucher-based top-ups.
3.1 Protocol Overview
MPP introduces three core concepts:
- Challenges: Server-issued payment requirements with amount, currency, recipient, and expiration
- Credentials: Client-signed payment proofs referencing a challenge
- Sessions: Time-bound access tokens granted after successful payment verification
3.2 Message Formats
MppChallenge
{
"challenge_id": "chal_1a2b3c4d5e6f",
"amount": "0.05 TNZO",
"currency": "TNZO",
"recipient": "tenzro1qz8x9v...c2w3a4s5d6",
"chain_id": 1337,
"expires_at": "2026-03-22T15:30:00Z",
"payment_methods": ["direct", "channel"],
"metadata": {
"resource": "/api/inference",
"model": "gemma4-9b",
"estimated_tokens": 1000
}
}MppCredential
{
"challenge_id": "chal_1a2b3c4d5e6f",
"payer": "did:tenzro:machine:did:tenzro:human:550e8400...:agent_7f8g9h",
"amount": "0.05 TNZO",
"payment_proof": "0x7a8b9c0d1e2f3a4b5c6d...",
"signature": "0x3f4e5d6c7b8a9f0e1d2c...",
"timestamp": "2026-03-22T14:45:30Z",
"nonce": "0x9a8b7c6d5e4f3a2b1c0d"
}The payment_proof contains the transaction hash (for Direct settlement) or channel state commitment (for Channel settlement). The signature is an Ed25519 or Secp256k1 signature over the credential fields, signed by the payer's MPC wallet.
MppReceipt
{
"receipt_id": "rcpt_9z8y7x6w5v4u",
"challenge_id": "chal_1a2b3c4d5e6f",
"amount": "0.05 TNZO",
"settlement_tx": "0xabc123def456...",
"session_token": "sess_3t4r5e6w7q8p",
"session_expires_at": "2026-03-22T16:00:00Z",
"usage_limits": {
"max_requests": 100,
"max_tokens": 50000
}
}3.3 Session Management
MPP sessions enable amortized payment costs by allowing multiple resource accesses per payment. The MppSessionManager tracks active sessions:
MPP Session Structure:
- Session identifier
- Payer identity reference
- Recipient address
- Total amount paid
- Creation timestamp
- Expiration timestamp
- Usage tracking (requests, tokens consumed, last access)Sessions support vouchers for top-ups without new challenges:
Session Voucher:
- Session identifier
- Additional payment amount
- Payment proof (transaction hash or channel state)
- Cryptographic signature
Vouchers enable session top-ups without new challenges.3.4 Server Implementation
Server Flow:
1. Initialize MPP payment server with settlement engine
2. Client requests protected resource
3. Server creates payment challenge (amount, currency, recipient)
4. Respond with HTTP 402 and challenge in X-Payment-Challenge header3.5 Client Implementation
Client Flow:
1. Initialize MPP client with wallet
2. Parse challenge from 402 response header
3. Create credential by signing challenge with wallet
4. Retry request with credential in X-Payment-Credential header
5. Extract session token from receipt for future requests4. x402 Protocol (Coinbase)
x402 is Coinbase's stateless HTTP 402 payment protocol optimized for one-time payments and public APIs. Unlike MPP, x402 does not use sessions—each resource access requires a separate payment.
4.1 Protocol Flow
- Request: Client requests resource without payment
- 402 Response: Server responds with
X-Payment-Requiredheader containing payment details - Payment Submission: Client creates
X402PaymentPayloadwith transaction proof - Verification: Server verifies on-chain transaction or channel commitment
- Access: Server returns resource with
X-Payment-Receiptheader
4.2 Message Formats
X-Payment-Required Header
HTTP/1.1 402 Payment Required
X-Payment-Required: {
"amount": "0.05",
"currency": "TNZO",
"recipient": "tenzro1qz8x9v...c2w3a4s5d6",
"payment_id": "pay_1a2b3c4d",
"chain_id": 1337,
"methods": ["onchain", "lightning", "channel"]
}X402PaymentPayload
POST /api/x402/pay
Content-Type: application/json
{
"payment_id": "pay_1a2b3c4d",
"payer": "did:tenzro:machine:did:tenzro:human:550e8400...:agent_7f8g9h",
"amount": "0.05",
"currency": "TNZO",
"tx_hash": "0x7a8b9c0d1e2f3a4b...",
"method": "onchain",
"timestamp": "2026-03-22T14:50:00Z"
}X-Payment-Receipt Header
HTTP/1.1 200 OK
X-Payment-Receipt: {
"payment_id": "pay_1a2b3c4d",
"confirmed": true,
"amount": "0.05",
"tx_hash": "0x7a8b9c0d1e2f3a4b...",
"block_height": 12345,
"timestamp": "2026-03-22T14:50:05Z"
}4.3 Implementation
x402 Flow:
Server:
1. Create payment requirement with amount, currency, recipient, chain ID
2. Respond with 402 and X-Payment-Required header
Client:
1. Create payment payload with transaction proof
2. Submit payment via POST to payment endpoint
Server:
3. Verify payment on-chain or via channel
4. Return receipt with confirmation5. Tempo Network Integration
Tempo is a stablecoin payment network enabling instant, low-cost transfers of TIP-20 tokens (USDC, USDT, etc.). Tenzro integrates directly with Tempo for cross-chain stablecoin settlement.
5.1 Architecture
Tenzro's Tempo integration consists of three components:
- TempoBridgeAdapter: Cross-chain bridge enabling TNZO ↔ Tempo asset transfers
- Tip20Token: Abstraction over TIP-20 stablecoins (USDC, USDT, DAI)
- TempoParticipant: Direct participation in Tempo network consensus and settlement
5.2 Configuration
Tempo Configuration:
- Tempo network RPC endpoint
- Tenzro's participant address on Tempo
- Supported TIP-20 tokens (USDC, USDT, DAI)
- Bridge contract address on Tenzro Ledger
- Minimum confirmations for finality (default: 2)
Supported tokens maintain full decimal precision
(USDC/USDT: 6 decimals, DAI: 18 decimals)5.3 Transfer Flow
Tempo Transfer Flow:
1. Initialize bridge adapter with configuration
2. Execute transfer (sender, recipient, amount, asset)
3. Bridge locks tokens on source chain
4. Tempo network finalizes transfer (2+ confirmations)
5. Recipient receives tokens on destination chain
6. Return transfer result with transaction hash and finality status5.4 Balance Queries
Balance Query:
- Query TIP-20 token balance on Tempo network
- Returns balance in smallest units (respects token decimals)
- Example: 100.00 USDC = 100_000_000 units (6 decimals)5.5 Finality Model
Tempo uses instant finality with 2+ confirmations for production settlement:
| Finality Status | Confirmations | Latency |
|---|---|---|
| Pending | 0 | ~100ms |
| Confirmed | 1 | ~500ms |
| Finalized | 2+ | ~1s |
6. Native Payment Primitives
6.1 Direct Settlement
Direct settlement uses standard on-chain transactions on Tenzro Ledger. Each payment is a blockchain transaction with immediate finality (post-consensus).
Direct Payment Flow:
1. Create transaction with sender, recipient, amount
2. Set gas parameters (limit, price)
3. Include nonce for replay protection
4. Sign transaction with MPC wallet
5. Submit to blockchain node
6. Receive transaction hash for tracking6.2 Micropayment Channels
Payment channels enable off-chain micropayments for per-token AI inference billing. Channels avoid blockchain transaction costs by settling only the final state on-chain.
Channel Lifecycle
| Phase | Action | On-Chain |
|---|---|---|
| Open | Payer deposits collateral | Yes (1 tx) |
| Transact | Exchange signed state updates | No |
| Close | Submit final state | Yes (1 tx) |
| Challenge | 7-day dispute window | No |
| Settle | Disburse final balances | Automatic |
| Force Close | Uncooperative shutdown | Yes (1 tx + challenge) |
State Updates
Channel State Structure:
- Channel identifier
- Payer and payee identities
- Current balances for both parties
- Nonce (incremented per state update)
- Timeout timestamp
State Update Process:
1. After each payment, create new state with updated balances
2. Increment nonce to prevent replay
3. Sign state with wallet
4. Exchange signed state off-chain (no blockchain transaction)For detailed channel implementation, see the Micropayment Channels documentation.
7. Identity-Bound Payments
All Tenzro payment protocols integrate with TDIP (Tenzro Decentralized Identity Protocol) to enforce delegation scopes on machine payments. When a machine identity initiates a payment, the system validates:
- Transaction value: Payment amount ≤
max_transaction_value - Daily spend: Daily accumulated spend ≤
max_daily_spend - Protocol allowlist: Payment protocol ∈
allowed_payment_protocols - Chain allowlist: Target chain ∈
allowed_chains - Operations allowlist: Payment operation ∈
allowed_operations
7.1 Delegation Scope
Delegation Scope:
- Maximum transaction value per payment
- Maximum daily spending limit
- Allowed operations (e.g., inference, storage)
- Allowed smart contracts
- Time-based restrictions (not before / not after)
- Allowed payment protocols (MPP, x402, etc.)
- Allowed blockchain networks7.2 Validation Logic
Validation Logic:
1. Retrieve payer identity and delegation scope
2. Check transaction amount against maximum limit
3. Check daily spending against daily limit
4. Verify operation type is in allowed list
5. Verify payment protocol is in allowed list
6. Verify target chain is in allowed list
7. Check current time is within time bounds
Validation Results:
- Valid: Payment allowed to proceed
- ExceedsTransactionLimit: Single payment too large
- ExceedsDailyLimit: Daily spending cap reached
- ProtocolNotAllowed: Payment method not permitted
- ChainNotAllowed: Target blockchain not permitted
- TimeBoundViolation: Outside allowed time window7.3 Example Scenarios
Scenario 1: Valid Payment
Payer: did:tenzro:machine:did:tenzro:human:550e8400...:agent_ai
Amount: 25.0 TNZO
Protocol: Mpp
Chain: 1337 (Tenzro Ledger)
Delegation Scope:
max_transaction_value: "100.0 TNZO"
max_daily_spend: "500.0 TNZO"
allowed_payment_protocols: [Mpp, X402]
allowed_chains: [1337]
Daily Spend Before: 75.0 TNZO
Daily Spend After: 100.0 TNZO
Result: APPROVED ✓Scenario 2: Transaction Limit Exceeded
Payer: did:tenzro:machine:did:tenzro:human:550e8400...:agent_ai
Amount: 150.0 TNZO
Protocol: Mpp
Delegation Scope:
max_transaction_value: "100.0 TNZO"
Result: REJECTED - ExceedsTransactionLimit ✗
Error: "Amount 150.0 TNZO exceeds max_transaction_value 100.0 TNZO"Scenario 3: Unauthorized Protocol
Payer: did:tenzro:machine:did:tenzro:human:550e8400...:agent_ai
Amount: 50.0 TNZO
Protocol: Tempo
Delegation Scope:
max_transaction_value: "100.0 TNZO"
allowed_payment_protocols: [Mpp, X402]
Result: REJECTED - ProtocolNotAllowed ✗
Error: "Payment protocol Tempo not in allowed_payment_protocols [Mpp, X402]"Scenario 4: Daily Limit Exceeded
Payer: did:tenzro:machine:did:tenzro:human:550e8400...:agent_ai
Amount: 50.0 TNZO
Protocol: Mpp
Delegation Scope:
max_transaction_value: "100.0 TNZO"
max_daily_spend: "500.0 TNZO"
Daily Spend: 475.0 TNZO
Attempted Spend: 50.0 TNZO
Total: 525.0 TNZO
Result: REJECTED - ExceedsDailyLimit ✗
Error: "Daily spend 525.0 TNZO exceeds max_daily_spend 500.0 TNZO"For comprehensive identity specification, see the TDIP whitepaper.
8. AP2 -- Agentic Payment Protocol
AP2 (Agentic Payment Protocol) enables autonomous agents to create payment sessions, authorize payments within spending policies, and execute settlements without human intervention. While MPP and x402 are designed for HTTP request/response payment gating, AP2 is purpose-built for agent-to-agent economic interactions where both parties are machine identities operating under TDIP delegation scopes.
8.1 Session Lifecycle
AP2 sessions follow a four-phase lifecycle that enables agents to establish payment relationships, authorize individual payments within policy constraints, execute on-chain settlement, and cleanly close sessions with final reconciliation.
AP2 Session Lifecycle:
1. Agent A creates session with Provider B
-> createSession(agentDid, providerDid, "inference", maxAmount)
-> Returns: sessionId, terms, expiresAt
2. Agent authorizes payment within session
-> authorizePayment(sessionId, amount)
-> Policy check: maxPerTransaction, dailyTotal, allowedRecipients
-> Returns: authorizationId, validUntil
3. Payment executed on-chain
-> executePayment(sessionId, authorizationId)
-> Settlement via micropayment channel or direct transfer
-> Returns: receipt with txHash, settledAmount
4. Session closed (optional, auto-expires)
-> closeSession(sessionId)
-> Final settlement of any remaining balance8.2 SpendingPolicy Enforcement
Every AP2 session is governed by a SpendingPolicy that constrains the agent's payment behavior. The policy is enforced at authorization time -- before any on-chain settlement occurs -- ensuring that policy violations never result in wasted gas.
SpendingPolicy {
maxPerTransaction: u128, // Max single payment (wei)
maxDailyTotal: u128, // Rolling 24h limit (wei)
allowedRecipients: Vec, // Whitelist of provider DIDs
requireTeeAttestation: bool // Require TEE-attested provider
}The Agent Transaction Executor validates each payment against the active policy before execution:
- maxPerTransaction: Rejects any single authorization that exceeds the per-transaction cap
- maxDailyTotal: Tracks a rolling 24-hour window of settled payments and rejects authorizations that would exceed the daily limit
- allowedRecipients: Restricts payments to a whitelist of provider DIDs, preventing agents from sending funds to unauthorized parties
- requireTeeAttestation: When enabled, the executor verifies that the provider holds a valid TEE attestation before authorizing payment, ensuring computation integrity
8.3 TDIP Integration
AP2 spending policies compose with TDIP delegation scopes. When a machine identity creates an AP2 session, the system enforces both the AP2 SpendingPolicy and the TDIP DelegationScope -- the stricter constraint wins. This ensures that even if an agent's AP2 policy is permissive, the human-defined delegation scope provides an upper bound on spending authority.
8.4 SDK Access
SDK Access Patterns:
Rust:
let session = client.ap2().create_session(
agent_did, provider_did, "inference", max_amount
).await?;
let auth = client.ap2().authorize_payment(session.id, amount).await?;
let receipt = client.ap2().execute_payment(session.id, auth.id).await?;
TypeScript:
const session = await client.ap2().createSession(
agentDid, providerDid, "inference", maxAmount
);
const auth = await client.ap2().authorizePayment(session.id, amount);
const receipt = await client.ap2().executePayment(session.id, auth.id);9. Nanopayment Batching
For high-frequency micro-settlements such as per-token inference billing, individual on-chain transactions are prohibitively expensive. The NanopaymentBatcher accumulates off-chain payments and periodically settles them on-chain in a single batch transaction, amortizing gas costs across many payments.
9.1 Channel Lifecycle
Nanopayment Channel Flow:
1. Open channel with deposit
-> openChannel(payer, payee, deposit)
-> Returns: channelId, deposit, expiresAt
2. Stream off-chain nanopayments (no gas cost)
-> sendNanopayment(channelId, amount, "inference-token-42")
-> Accumulated locally, signed state updates
3. Periodic batch settlement (single on-chain tx)
-> flushBatch(channelId)
-> Settles all accumulated payments in one transaction
-> Returns: batchId, totalSettled, txCount
4. Close channel and settle remainder
-> closeChannel(channelId)
-> Final settlement of outstanding balance9.2 Batch Settlement
The batcher supports two configurable flush thresholds that trigger automatic on-chain settlement:
- Time-based: Flush after a configurable interval (e.g., every 60 seconds) regardless of accumulated amount
- Amount-based: Flush when accumulated nanopayments exceed a threshold (e.g., 1.0 TNZO), ensuring timely settlement for high-volume channels
Batch settlement reduces gas costs by up to 100x compared to individual on-chain transactions, making sub-cent payments economically viable. Each batch transaction includes a Merkle root of all individual nanopayments for auditability.
9.3 SDK Access
SDK Access Patterns:
Rust:
let channel = client.nanopayment().open_channel(
payer, payee, deposit
).await?;
client.nanopayment().send(channel.id, amount, "token-42").await?;
let batch = client.nanopayment().flush_batch(channel.id).await?;
TypeScript:
const channel = await client.nanopayment().openChannel(
payer, payee, deposit
);
await client.nanopayment().send(channel.id, amount, "token-42");
const batch = await client.nanopayment().flushBatch(channel.id);10. HTTP Middleware Integration
Tenzro provides axum middleware for automatic payment challenge/verification on HTTP routes. This enables seamless 402-gated API endpoints without manual challenge/credential handling.
8.1 Server Middleware
Server Middleware:
1. Configure payment gateway with settlement and identity systems
2. Apply middleware to protected routes
3. Specify payment protocol (MPP, x402, etc.)
4. Set price per request
Middleware automatically:
- Issues 402 challenge if no valid credential/session
- Verifies credentials and creates sessions
- Passes verified payment context to request handler8.2 Client Middleware
Client Middleware:
1. Initialize client with wallet and protocol selection
2. Make requests to protected endpoints
Client automatically:
- Detects 402 responses
- Creates payment credentials using wallet
- Retries request with credentials
- Caches session tokens for future requests
No manual payment handling required.11. Implementation Architecture
Payment protocols are modular components that can be enabled independently based on deployment requirements. The system supports:
| Feature | Default | Description |
|---|---|---|
| mpp | Yes | MPP protocol support |
| x402 | Yes | x402 protocol support |
| tempo-bridge | Optional | Tempo network integration |
11.1 PaymentSettlementCallback
The PaymentSettlementCallback trait bridges the payment gateway to the settlement engine, enabling protocol-agnostic settlement. When a payment is verified through any protocol (MPP, x402, AP2, or native), the callback triggers on-chain settlement through the same engine.
PaymentSettlementCallback:
- on_payment_verified(protocol, credential, amount)
-> Triggers on-chain settlement via SettlementEngine
-> Returns: settlement receipt with txHash
- on_session_closed(session_id, total_settled)
-> Final reconciliation for session-based protocols
-> Returns: final settlement receipt
Any payment protocol can settle through the same engine,
ensuring consistent settlement semantics regardless of
the payment method used.11.2 Circuit Breaker Integration
Circuit breakers monitor provider health during payment flows. If a provider experiences repeated failures (payment timeouts, settlement errors, or service unavailability), the circuit breaker trips and payment routing automatically excludes that provider until it recovers.
Circuit Breaker States:
Closed (normal operation)
-> Provider accepts payments normally
-> Failures tracked against threshold
Open (provider excluded)
-> Provider skipped during payment routing
-> No new sessions or payments directed to provider
-> Timeout period before recovery attempt
Half-Open (recovery testing)
-> Single test payment allowed through
-> Success -> return to Closed
-> Failure -> return to Open with extended timeout
SDK Access:
Rust: client.circuit_breaker().get_provider_health(did).await?
TypeScript: await client.circuitBreaker().getProviderHealth(did)12. Security Considerations
12.1 Replay Protection
All payment credentials include nonces and timestamps to prevent replay attacks:
Replay Protection:
1. Each credential includes unique nonce and timestamp
2. Server tracks seen nonces
3. Duplicate nonces are rejected as replay attacks
4. Expired credentials (old timestamps) are rejected
5. Nonce tracking prevents credential reuse12.2 Signature Verification
All credentials must be signed by the payer's MPC wallet. Verification uses Ed25519 or Secp256k1:
Signature Verification:
1. Reconstruct signed message from credential fields
2. Resolve payer identity to retrieve public key
3. Verify signature using Ed25519 or Secp256k1
4. Reject invalid signatures
This ensures credentials are created by legitimate payer identities
and cannot be forged.12.3 Channel Dispute Resolution
Micropayment channels use challenge periods to prevent cheating:
Dispute Resolution:
1. Payee submits final state to close channel
2. Challenge period begins (7 days default)
3. Payer can dispute by submitting higher-nonce state
4. Highest nonce state wins (most recent agreement)
5. After challenge deadline, settlement executes with final state
6. Balances disbursed according to final state
This prevents payees from submitting outdated states
to claim more funds than owed.13. Performance Characteristics
13.1 Latency Comparison
| Protocol | First Payment | Subsequent (Session) | Settlement |
|---|---|---|---|
| MPP | ~2-3s (challenge + settle) | ~50ms (session token) | On-chain (1-2s finality) |
| x402 | ~2-3s (challenge + settle) | ~2-3s (no sessions) | On-chain (1-2s finality) |
| Tempo | ~1s (instant finality) | ~1s (stateless) | Instant (~500ms) |
| Direct | ~2s (on-chain tx) | ~2s (per-request tx) | On-chain (1-2s finality) |
| Channel | ~2s (open tx) | ~10ms (off-chain update) | Deferred (batch close) |
13.2 Cost Analysis
| Protocol | Per-Payment Cost | Best For |
|---|---|---|
| MPP (session) | ~0.0001 TNZO (amortized) | Recurring API access |
| x402 | ~0.001 TNZO (gas) | One-time payments |
| Tempo | ~$0.0001 USD (network fee) | Stablecoin transfers |
| Direct | ~0.001 TNZO (gas) | Simple transfers |
| Channel | ~0.00001 TNZO (amortized) | Micropayments (inference tokens) |
14. Tenzro vs Centralized Payment Rails
The emergence of agentic commerce has triggered a wave of payment protocol development from incumbent platforms. Each addresses a real gap in machine-to-machine payments, but each also introduces a centralized dependency that limits agent autonomy.
Visa Trusted Agent Protocol (TAP):Agents register with Visa and receive tokenized credentials for transacting over the card network. Visa controls agent identity registration, fraud scoring, and transaction authorization. An agent's ability to participate in commerce depends on Visa's approval and continued authorization.
Stripe MPP: Machine-to-machine HTTP 402 payments with session-based vouchers. Stripe serves as the credential verifier and settlement intermediary. Agents pay through Stripe Payment Intents, and Stripe controls the settlement pipeline.
Google AP2:Agent-to-agent payment sessions with spending policies, designed for autonomous agent commerce. Session management and identity are tied to Google's infrastructure.
Coinbase x402: Stateless HTTP 402 stablecoin payments using EIP-3009 transferWithAuthorization. The Coinbase Developer Platform (CDP) serves as the facilitator for verification and settlement of payment payloads.
OpenAI Agentic Commerce Protocol: Powers Stripe Instant Checkout for agent-driven purchases, enabling agents to complete transactions on behalf of users. The payment flow is jointly controlled by OpenAI and Stripe.
Tenzro's approach is structurally different. Rather than replacing these protocols, Tenzro integrates all of them — MPP, x402, AP2, Visa TAP, Mastercard Agent Pay — through a unified PaymentGateway that routes to the appropriate protocol based on the use case. But the critical difference is where settlement happens: on a decentralized ledger, not through a centralized intermediary. No single entity controls the settlement pipeline.
Tenzro also provides payment capabilities that centralized rails cannot support. Micropayment channels enable per-token billing for AI inference — fractional-cent payments at thousands of updates per second — which is economically infeasible on traditional card networks that charge 2-3% plus fixed per-transaction fees. Escrow with ZK proof release enables trustless settlement where funds are released only when a verifiable proof of service delivery is provided, without requiring a trusted intermediary to adjudicate disputes. Identity-bound payments through TDIP enforce delegation scopes at the protocol level — spending limits, operation whitelists, time bounds — giving agents controlled autonomy without relying on a platform's fraud detection system.
15. Conclusion
As part of Tenzro — the operating system for the AI economy — the multi-protocol payment infrastructure addresses the unique requirements of agentic commerce through HTTP 402-based protocols (MPP, x402), the Agentic Payment Protocol (AP2) for autonomous agent-to-agent payments, direct stablecoin settlement (Tempo), Visa TAP and Mastercard Agent Pay integrations, and native micropayment channels optimized for per-token billing. Deep integration with TDIP enables fine-grained delegation scope enforcement, allowing machine identities to pay autonomously within human-defined limits.
The current implementation establishes the architectural foundation with well-defined message formats and protocol abstractions. Ongoing development focuses on cryptographic verification, persistent state storage, and integration with live payment networks.
By supporting multiple payment protocols through a unified gateway, Tenzro enables developers and AI agents to choose the optimal payment rail for each use case—balancing latency, cost, finality, and interoperability requirements. This flexibility is essential for the diverse payment patterns of autonomous AI systems operating across global infrastructure.