⚡ RKT/1.0 · Draft Specification

The Protocol
HTTP Forgot to Build

RKT (Rukkit Transfer Protocol) is an open standard for AI-to-AI, agent-to-agent, and agent-to-service communication — built for a world where machines talk to machines.

Get Started → View on GitHub
rkt://weather.ai ← AI weather service
rkt://calendar.ai/create_event ← create event intent
rkt://maps.ai/navigate?from=Seoul&to=Busan ← navigate request
rkt://memory.local/user ← shared agent memory
rkt://market.agent/search?q=translation ← agent marketplace

AI agents don't need HTTP.
They need something better.

Today's AI agents waste compute on things humans designed for humans — finding URLs, parsing API docs, handling auth flows, decoding JSON schemas. RKT removes all of that.

🕸️ HTTP (for humans)

1
AI must find the correct URL — search, guess, or hallucinate
2
AI must read the API documentation — parsing OpenAPI spec or HTML docs
3
AI must handle authentication — OAuth flows, API key injection, token refresh
4
AI must analyze the JSON schema — figure out which fields to send
5
AI must store and manage results — no shared memory, no context

⚡ RKT (for AI)

1
AI knows rkt://weather.ai
2
RNS lookup automatically delivers capabilities, auth, endpoints
3
HELLO → HELLO_ACK — handshake done in 1 round trip
4
Send intent: "forecast" — no schema needed
5
Everything solved — streaming, memory, payment, events, trust

Everything AI needs.
Built into the protocol.

Not bolted on as afterthoughts — every feature is a first-class protocol primitive.

🔍

Agent Discovery (RNS)

The Rukkit Naming System layers atop DNS. Agents resolve capabilities, auth methods, and endpoints from a single TXT record — no documentation required.

🤝

Capability Negotiation

Agents advertise what they can do. Requestors negotiate format, compression, streaming, and language preferences in the HELLO handshake.

🔐

DID-Based Identity

Every agent has a decentralized identifier. Messages are signed with Ed25519. No API keys passed in plaintext — cryptographic trust by default.

Native Streaming

STREAM_BEGIN / STREAM_DATA / STREAM_END are core message types. LLM responses, sensor data, file transfers — all stream natively.

🧠

Shared Memory

Agents share namespaced key-value memory via memory:// URIs. Store user preferences, session context, long-term facts — accessible across agents.

💸

Protocol-Native Payments

PAY and PAY_REQUEST are first-class message types. Agents transact micropayments for API usage without leaving the protocol.

📡

Real-Time Events

SUBSCRIBE to event streams from any agent. Weather alerts, calendar updates, payment completions — push events without polling.

🏪

Agent Marketplace

rkt://market.agent lists all registered agents with trust scores, latency, pricing, and capability tags. Discovery is programmatic.

🔄

Dual Transport

Native TCP/QUIC with TLS 1.3, or WebSocket over HTTPS — same RKT messages, same semantics. Choose what fits your infrastructure.

Protocol Stack

RKT is a thin application layer. It composes with existing networking standards — no new transport, no new TLS.

Native Transport

Application (RKT) intent-based messaging
TLS 1.3encryption
TCP / QUICreliable delivery
IPnetwork

WebSocket Transport

Application (RKT) intent-based messaging
WebSocketframing
HTTPS / HTTP2transport
IPnetwork

Session Flow

Client (GPT-5) Server (weather.ai) | | |──── HELLO ──────────────────────────────────▶| ← agent handshake |◀─── HELLO_ACK ──────────────────────────────| ← capabilities exchanged | | |──── AUTH ───────────────────────────────────▶| ← DID + signature |◀─── AUTH_OK ────────────────────────────────| ← session token | | |──── REQUEST (intent: forecast) ─────────────▶| ← no URL needed |◀─── STREAM_BEGIN ───────────────────────────| |◀─── STREAM_DATA [1/7] ──────────────────────| ← day 1 |◀─── STREAM_DATA [7/7] ──────────────────────| ← day 7 |◀─── STREAM_END ─────────────────────────────| | | |──── MEMORY_SET (prefs:city → Seoul) ────────▶| ← shared memory |──── PAY (0.001 RKTT) ───────────────────────▶| ← auto payment |──── GOODBYE ────────────────────────────────▶|

Familiar + Extended

RKT uses HTTP-compatible status codes where appropriate, and adds a 6xx range for AI-specific conditions.

2xx Success

200OK
201Created
202Accepted (async)
204No Content

4xx Client Errors

400Bad Request
401Unauthorized
403Forbidden
404Not Found
429Rate Limited

5xx Server Errors

500Internal Error
501Not Implemented
503Unavailable
504Gateway Timeout

6xx RKT-Specific

600Unknown Agent
601Invalid Signature
602Capability Missing
603Version Unsupported
604Memory Locked
605Payment Required
606Trust Insufficient
607Context Expired

Start in minutes.

Server or client — RKT is designed to be trivially embeddable in any AI agent.

# Install globally — gives you the rkt CLI command
npm i -g rkt-protocol

# Verify install
rkt help

# Or install locally in your project
npm install rkt-protocol
import { RKTServer, buildResponse } from "rkt-protocol";

const server = new RKTServer({
  port: 7749,
  identity:     "rkt://weather.ai",
  userAgent:    "WeatherAgent/1.0",
  capabilities: ["weather", "forecast", "alerts"],
});

// Register an intent handler
server.handle("weather.current", async (msg, session, send) => {
  const { city } = msg.body.params;
  const data = await fetchWeather(city);

  send(buildResponse(session.sessionId, msg.headers["Message-ID"], data));
});

await server.listen();
console.log("WeatherAgent ready on port 7749");
import { RKTClient } from "rkt-protocol";

const client = new RKTClient({
  userAgent:    "GPT-5/1.0",
  capabilities: ["language", "vision"],
});

// Connect — handshake is automatic
await client.connect("rkt://weather.ai");

// Request by intent — no URL, no schema
const weather = await client.request("weather.current", {
  city: "Seoul"
});

// Stream a 7-day forecast
for await (const day of client.stream("weather.forecast", { days: 7 })) {
  console.log(day);
}

// Remember the user's city
await client.memorySet("preferred_city", "Seoul");

// Pay for the API call (0.001 RKTT)
await client.pay(0.001, "RKTT", "weather.forecast call", "rkt://weather.ai");

await client.disconnect();
← Raw RKT message on the wire →

RKT/1.0 REQUEST
Version: 1
Message-ID: 01960000-0000-7000-ab12-000000000001
Session-ID: e3ad1f12-4e3a-4b1e-9c2d-000000000042
Timestamp: 2026-06-28T12:31:00Z
TTL: 30
From: did:rkt:gpt-5-agent
To: rkt://weather.ai/forecast
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJFZERTQSJ9.xxx
Stream: true
Priority: NORMAL
Trace-ID: trace-xyz-789

{
  "intent": "weather.forecast",
  "params": { "city": "Seoul", "days": 7 },
  "context": { "language": "ko", "timezone": "Asia/Seoul" }
}

RKT Core + Extensions

The Core spec defines the essentials. Extensions are versioned modules that layer on top.

Draft

RKT-DNS

Rukkit Naming System — TXT record schema for agent discovery via DNS

Draft

RKT-Discovery

DISCOVER message type and marketplace search protocol

Draft

RKT-Memory

Namespaced key-value memory shared across agents with TTL and access control

Draft

RKT-Payment

PAY / PAY_REQUEST micropayment layer with per-intent pricing

Draft

RKT-Event

SUBSCRIBE / EVENT push streams for real-time notifications

Draft

RKT-Registry

Agent marketplace with trust scores, latency tracking, and verified badges

Draft

RKT-Trust

Reputation scoring, verification tiers, and DID-anchored trust chains

Open Standard · MIT License

Build the AI Internet.

RKT is open-source and open for contributions. If you're building AI agents, AI services, or multi-agent systems — RKT is the communication layer you've been missing.

View on GitHub → Read the Spec