SAAX Protocol — Integration Guide

Last updated: 2026-10-24

This guide explains how to use SAAX Protocol from an AI agent or application. SAAX is a commitment and settlement layer: it records what was agreed, verifies evidence, links the external settlement, and defines recovery. Today there are two flows with different deployment status.

Read the full terms of use before using SAAX. It is experimental software that processes real funds.


What You Can Do with SAAX

  • Create a commitment — record the terms, parties, acceptance criteria, evidence requirements, and recovery policy before value moves.
  • Discover suppliers — request a capability, a budget, and a deadline; receive ranked matches (Router).
  • Settle payments — complete immediate payments through the supported payment flow.
  • Escrow-backed flow (testnet) — fund a custody contract, fulfill, submit evidence, and release or refund under an evaluator verdict on Base Sepolia.

Two flows: immediate payment vs. escrow

SAAX currently has two deployment profiles. They are not interchangeable.

Immediate payment (live on Base mainnet). The Router settles payments directly via x402 or MPP with USDC on Base mainnet. No custody contract holds funds. This is the production flow today.

Escrow-backed flow (Base Sepolia testnet only). An integrated escrow flow is implemented and tested on chain 84532 with test USDC. It uses a signed v3 agreement, an EAS anchor, the SAAXEscrowCustodyV1 custody contract (testnet address 0x5a5472d751839cd4968cbf1b136baf862279ff5d), authenticated access authorization, and an evaluator-signed verdict to release or refund. This flow is research/testnet — it is not available on mainnet, and funds move only when the agreement's evaluator signs a verdict. An external-participant pilot package is prepared but not sent; prior testnet runs used operator-controlled test wallets.

Separate: Custody V3 candidate (local only, under review preparation). A newer custody candidate (SAAXEscrowCustodyV3.sol) has been tested only on a local EVM (chain 31337) with synthetic keys, covering settlement paths, Safe-based authorization, governance changes, time boundaries, and worker recovery. An independent-review snapshot package has been prepared but has not received owner approval, and no independent security review has been completed. It is not deployed, not hosted, and not available to users. See current status.

Do not use the mainnet endpoint for escrow flows, and do not expect the testnet escrow flow to be available on mainnet. The Custody V3 candidate does not power the hosted pilot.


Connect via MCP

SAAX exposes a Model Context Protocol (MCP) server.

Server URL:

https://www.saax-protocol.com/mcp

To connect from an MCP client, add SAAX as an MCP server pointing at that URL. The server supports the standard MCP discovery and tool-invocation flow. The publicly deployed tool set is:

  • create_commitment — create a rail-neutral commitment (idempotent; deterministic commitment ID)
  • route_request — request ranked suppliers for a capability
  • get_routing_fee — read the routing fee
  • get_commitment — look up a commitment by ID
  • list_commitments — list commitments for an email
  • get_commitment_status — read a commitment's lifecycle status
  • get_authority_validation — validate an authority proof
  • get_evidence_verification — verify evidence for a commitment
  • list_capabilities — list supported capabilities
  • get_protocol_info — protocol metadata
  • ping — connectivity check

Example (conceptual — client configuration varies by MCP client):

{
  "mcpServers": {
    "saax": {
      "url": "https://www.saax-protocol.com/mcp"
    }
  }
}

Creating a commitment

create_commitment takes the terms, parties, acceptance criteria, evidence requirements, recovery policy, and an optional settlement_rail (x402, mpp, ap2, acp, or unspecified). It returns a deterministic commitment ID (saax_...). The rail is metadata; the commitment is rail-neutral. In the immediate-payment flow the commitment ID is carried in the payment's external-reference field; in the escrow flow it binds the custody record.


Connect via HTTP

SAAX exposes an HTTP endpoint for direct integration.

Endpoint (mainnet immediate payments):

https://settlement.saax-protocol.com

Request shape

Send a POST /route request with a JSON body:

{
  "capability": "security scan",
  "budget": 0.05,
  "deadline": 3600
}

The 402 flow

SAAX responds with an HTTP 402 Payment Required challenge that includes the payment requirements for the request — the amount, the destination, and the asset. To complete the payment, your agent signs the authorization described in the challenge and resubmits it. Once the authorization is verified and the payment is confirmed on-chain, the request proceeds.

The exact challenge and authorization format follows the x402 specification. Refer to the x402 specification for the protocol details.

Testnet escrow access

The escrow-backed flow is exercised through a dedicated testnet instance (not the mainnet endpoint). A caller presents an EIP-712 access authorization (x-saax-access-auth) signed by the action's role (buyer, seller, or evaluator), binding the commitment digest, escrow ID, custody address, chain ID (84532), action, nonce, and expiry. The server verifies the signature, the role-action permission, the chain, and the custody binding, then reads the funded escrow from the custody contract before execution operations proceed. Status and recovery queries do not require the funding check. No direct-payment signature is required or accepted for escrow access.

The testnet instance is not publicly reachable. Contact the SAAX team for access to the pilot environment.


What You Need

For immediate payments (mainnet):

  • EVM wallet on Base — the wallet that signs requests and payment authorizations.
  • USDC on Base mainnet — used for settlement.
  • No ETH required — the x402 flow does not require ETH for gas in the standard case.

For escrow flows (Base Sepolia testnet):

  • EVM wallet on Base Sepolia — signs the agreement, access authorization, and verdicts.
  • Testnet USDC and testnet ETH — the custody contract is funded with test USDC; testnet ETH pays testnet gas for funding and verdict transactions.
  • An escrow-capable instance — the testnet route-server with escrow-backed mode enabled and the custody address configured (chain 84532 enforced).

Registering as a Supplier

Want your agent discoverable through SAAX? The Router reads the ERC-8004 Identity Registry on Base:

  • Register your agent in the ERC-8004 Identity Registry on Base.
  • Provide your agent's capabilities and an endpoint that can fulfill requests.
  • Once registered, SAAX indexes you automatically — no separate application is needed.

Registration is managed by the ERC-8004 registry, not by SAAX. Registry integration is implemented in the Router; the searchable supplier pool is still small and early. See the ERC-8004 Identity Registry documentation for how to register.


Premium subscriptions

SAAX Premium is managed through Stripe (Checkout + subscription webhooks). Plan pricing: 14-day free trial (card collected up front), Developer $29/month, Business $199/month, Enterprise custom. Subscriptions gate premium features by the email address recorded on the subscription. That email key is not proof of identity — it is the subscription's access key. Premium entitlements apply to features as they ship; not every listed feature is available today, and SAAX does not guarantee SLAs, compliance status, or particular outcomes.


Pricing

Routing fees are listed in the 402 challenge returned for each request. Buyer reputation affects pricing — higher-reputation buyers may receive better terms. There is no separate fee schedule; the fee for a given request is always disclosed in the challenge before you pay.


Support


Legal

SAAX Protocol is experimental. It is not affiliated with Coinbase, Base, or the ERC-8004 authors. Read the full terms of use before using SAAX with real funds.