OpenKarta OpenKarta

The open contract for agentic commerce.

Eight verbs. Five item types. Any AI agent can buy from any merchant — without per-merchant integration code.

$ npm install @openkarta/sdk-node @openkarta/spec

Two ways your AI assistant could buy something.

Demonstrating
WORLD A · TODAY
smart_toy
  1. Asks Claude for a vitamin C serum from Minimalist.
  2. Claude returns three blue links and tells her to go pick one.
  3. She opens beminimalist.co, makes an account, types in her card.
  4. After paying she hunts for tracking across three different emails.
  5. Next time she just opens Swiggy Instamart and skips Claude.

Agents act as search engines, pushing the friction of transaction, identity, and state management back to the user via traditional web UI.

WORLD B · OPENKARTA
robot_2
  1. Asks Claude for a vitamin C serum from Minimalist.
  2. Claude pings the registry; Minimalist's brand agent answers in 200 ms.
  3. Real SKU at ₹1,299 — locked for 2 minutes.
  4. She says yes; Claude opens GPay; she taps; UPI PIN; paid.
  5. Order placed. Minimalist pushes 'shipped' overnight; Claude tells her at breakfast.
  6. Next week: "reorder that." One tap.

Agents execute transactions via a standard protocol — negotiating quotes, confirming orders, tracking state — all in the background.

SAME EIGHT VERBS, FIVE CATEGORIES:
productretail / quick-commerce / grocery
stayhotels · homestays
flightdomestic + international
busintercity, sleeper, semi-sleeper
servicesalon · cleaning · repair

The core execution loop.

Now demonstrating halcyon-shop · Tokai blend 250g · ₹780
1
Registry discovery
Consumer agent queries the public registry for capable brand agents — by item type, region, tags.
2
Catalogue search
Brand agents reply via search() with priced items, stock state, and constraints.
3
Signed quote
quote() returns a server-signed quote with expiry — inventory locked for the agent.
4
Checkout
checkout() exchanges the signed quote for an order; payment intent issued out-of-band.
5
Status & lifecycle
status() polls. cancel() and return() close the loop with auditable state transitions.
OpenKarta core execution loop diagram
0
PUBLISHED PACKAGES
0
REFERENCE AGENTS
0
ITEM TYPES

The contract should be open. The competition should be on service.

// Brand agent (sell anything)
npm i @openkarta/sdk-node
// Consumer agent (buy anywhere)
npm i @openkarta/orchestrator