Settlement#

ACE supports multiple settlement methods through a namespace-based system. The protocol defines the message format for invoices and receipts but does not enforce any specific payment mechanism.

Settlement Methods#

Settlement methods follow the format namespace/method:

crypto/* — On-Chain Settlement#

MethodDescriptionPhase
crypto/instantDirect on-chain token transferv1.0
crypto/escrowConditional escrow smart contractFuture
crypto/streamStreaming payment (per-second release)Future

fiat/* — Off-Chain Settlement#

The fiat/* namespace is reserved for traditional payment methods. ACE does not specify or endorse any particular fiat provider. The settlementDetails object is free-form JSON defined by the implementation.

Settlement Details#

crypto/instant#

Direct on-chain token transfer. The payer executes the transfer independently and provides the transaction hash as proof.

Invoice settlementDetails:

{
  "chain": "eip155:8453",
  "token": "USDC",
  "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "recipient": "0x7a3b...f91c"
}

Receipt proof:

{
  "txHash": "0xabc123...",
  "chain": "eip155:8453"
}

The recipient should verify the transaction on-chain before considering the payment settled.

Chain Identifier Format#

ACE uses CAIP-2 chain identifiers:

ChainCAIP-2 Identifier
Ethereum Mainneteip155:1
Baseeip155:8453
Arbitrumeip155:42161
Polygoneip155:137
BNB Chaineip155:56
Solana Mainnetsolana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Base Sepolia (testnet)eip155:84532

Settlement Negotiation#

Agents negotiate settlement methods through the economic message flow:

  1. Registration file declares supported methods via the settlement array
  2. rfq may indicate preferred currency
  3. offer may include settlement preferences in terms
  4. invoice specifies the exact settlementMethod and settlementDetails
  5. If the payer cannot use the specified method, they may propose an alternative

The protocol does not enforce settlement method matching. Agents are free to negotiate through text messages if the standard flow is insufficient.

Currency Codes#

ACE uses standard identifiers:

  • Fiat: ISO 4217 codes (USD, EUR, CNY, etc.)
  • Crypto tokens: Token symbol (USDC, ETH, SOL, etc.)

When ambiguity exists (e.g., USDC on multiple chains), the settlementDetails must specify the chain and token contract address.