Skip to main content

Intelligent Commerce Protocol (ICP)

ICP is StateSet’s open protocol for agent-native commerce: one wire contract that lets any autonomous agent discover merchants, quote baskets, authorize payment, complete checkout, track fulfillment, and handle returns — across currencies, jurisdictions, and payment rails, under a verifiable mandate. The current specification version is 2026-04-21.

Positioning

ACP terminates ChatGPT checkout. UCP provides platform-neutral checkout interop. ICP subsumes both — it is the superset spec a globally-distributed fleet of agents can target as a single, stable contract, with the engine of record sitting inside the handler process.

Design principles

  • Agent-first — every request carries an identified agent plus a signed mandate. No anonymous writes.
  • Intent-based — a small, stable set of verbs rather than merchant-specific CRUD.
  • Verifiable — every state-changing response is a compact JWS receipt over the JCS-canonicalized body. Any party can verify it offline.
  • Global — multi-currency (fiat and stablecoin), multi-jurisdiction tax, and cross-border fulfillment as first-class concerns.
  • Embedded engine — the handler carries the full iCommerce engine in process. No separate database, no control plane, no network hop between protocol and execution.
  • Interoperable — one handler exposes ICP natively while speaking ACP, UCP, MCP, and A2A on compatibility paths that route into the same transaction and receipt pipeline.

Intent verbs

Vendor extensions use the intent.ext.<reverse-dns> namespace, e.g. intent.ext.com.stateset.loyalty.redeem.

Architecture

Receipts

Every state-changing response is a compact JWS receipt signed with Ed25519 over the JCS-canonicalized body. The verification key set is published at:
Because verification needs only the receipt and the JWKS, any party can verify a transaction offline — no call back to the merchant or the handler.

Quickstart

The demo flags above disable version negotiation, mandate verification, request ids, and idempotency keys. They exist to make a first local run easy — never enable them on a deployment that accepts real agent traffic. With ICP_REQUIRE_MANDATE=false there is no signed authority behind a write.
  • UCP — platform-neutral checkout interop
  • ACP — ChatGPT Instant Checkout
  • iCommerce — the embedded engine