OpenKarta
Developers

Your agent can transact, today.

Ten MIT-licensed packages. Three reference agents. A conformance harness that signs your badge. Pick a track and ship.

Track A · Brand agent

Sell anything, in any category.

Wrap your existing catalogue and order system in 8 typed verbs. Get listed in the registry. Pass conformance. Receive orders from any consumer agent on the network.

$ npm install @openkarta/sdk-node @openkarta/spec
Merchant integration ↗
Track B · Consumer agent

Buy anywhere, in one orchestrator.

The orchestrator queries the registry, runs parallel quotes, locks signed prices, and exchanges them for orders — all behind a single typed API your agent calls.

$ npm install @openkarta/orchestrator @openkarta/cli
Integrator quickstart ↗

A brand agent in 30 lines

brand-agent.ts @openkarta/sdk-node
import { createServer } from '@openkarta/sdk-node';
import { z } from 'zod';

const inventory = [
  { id: 'tokai-blend-250g', priceMinor: 78000, currency: 'INR', stock: 47 },
];

const app = createServer({
  secret: process.env.QUOTE_SECRET!,
  handlers: {
    discover: async () => ({
      agentId: 'halcyon-shop',
      protocolVersion: '0.1',
      tier: 'http',
      actions: ['discover','search','get','quote','checkout','status','cancel','return'],
      supportedItemTypes: ['product'],
      paymentRails: ['razorpay_routes','cod'],
      regions: [{ country: 'IN' }],
    }),
    search:   async (q) => ({ items: inventory.filter(i => i.stock > 0) }),
    quote:    async ({ itemId }) => ({ itemId, totalMinor: 78000, currency: 'INR', ttlMs: 180000 }),
    checkout: async ({ quote, userToken }) => ({ orderId: 'ord_' + Date.now(), state: 'placed' }),
    status:   async ({ orderId }) => ({ orderId, state: 'placed' }),
    cancel:   async ({ orderId }) => ({ orderId, state: 'cancelled' }),
    return:   async ({ orderId }) => ({ orderId, state: 'returning' }),
    get:      async ({ id }) => inventory.find(i => i.id === id),
  },
});

await app.listen({ port: 3000, host: '0.0.0.0' });

Published packages

Reference agents

PRODUCT

halcyon-shop

Coffee + retail. Live at halcyon-shop.fly.dev — every verb, full order lifecycle, in-memory inventory you can poke.

manifest ↗
STAY

reference-agent-stays

Hotels and homestays. Demonstrates check_in / check_out / occupancy semantics and stay-specific lifecycle.

source ↗
FLIGHT + BUS

reference-agent-travel

Airline + intercity bus. IATA validation, fare classes, seat-class enums, passenger manifest objects.

source ↗

Run the conformance suite. Sign your badge. Get listed.