Five lines to
authorized spend.
Zero config.

Install the SDK. Pass your agent secret. Call spend(). Kora handles Ed25519 signing, budget checks, and cryptographic seals.

✧ Live in production ⚡ <50 ms p99 ◇ Patent pending
5 lines — zero to authorized spend
$ npm install @kora-protocol/sdk

import { Kora } from '@kora-protocol/sdk';

const kora = new Kora({
  secret: 'kora_agent_sk_...',
  mandate: 'mandate_abc123',
});

const result = await kora.spend(
  'aws', 5000, 'EUR', 'GPU provisioning'
);

// result.approved     → true | false
// result.seal         → Ed25519 cryptographic proof
// result.suggestion   → fix hint on denial
Python pip install kora-sdk
TypeScript npm i @kora-protocol/sdk
MCP pip install kora-mcp-server
n8n n8n-nodes-kora

Three ways in. Pick your speed.

⊕ MCP Zero Code

Connect and go.

Add Kora as an MCP server. Governed spending in seconds.

MCP config
{
  "mcpServers": {
    "kora": {
      "command": "kora-mcp",
      "env": {
        "KORA_AGENT_SECRET": "kora_agent_sk_...",
        "KORA_MANDATE_ID": "mandate_abc123"
      }
    }
  }
}
</> SDK 5 Lines

Import, spend, done.

Full SDK with Ed25519 signing. TypeScript and Python.

Python
from kora import Kora

kora = Kora("kora_agent_sk_...",
     mandate="mandate_abc123")

result = kora.spend(
  vendor="aws",
  amount_cents=5000,
  currency="EUR"
)
⊞ n8n Visual

Drag. Drop. Governed.

Community node with two-output branching. Approved → left, Denied → right.

n8n workflow
// Install from Community Nodes:
n8n-nodes-kora

// Operations:
//  → Health Check
//  → Check Budget
//  → Authorize Spend
//
// Approved ← [Kora] → Denied

14 deterministic checks. One transaction.

Every spend request runs the full pipeline inside a PostgreSQL SERIALIZABLE transaction. Two agents racing for the last €10 — exactly one wins.

01Ed25519 signature verification✓ pass
02Agent identity + status check✓ pass
03Mandate status (active / suspended / revoked)✓ pass
04Currency match✓ pass
05Nonce uniqueness — replay protection✓ pass
06Vendor allowlist✓ pass
07Category allowlist✓ pass
08Time window (business hours)✓ pass
09Per-transaction limit✓ pass
10Daily limit✓ pass
11Monthly limit✓ pass
12Velocity window✓ pass
13Counter update (atomic)✓ pass
14Cryptographic seal — APPROVED⬡ sealed
Agent Intent Kora Pipeline APPROVED + Seal → Payment Rail
DENIED + Hint → Agent Retries

Denied? Adapt. Retry.

The SDK gives agents everything they need to self-correct — check budget, reduce amount, retry. Not just fail.

Check budget
budget = kora.check_budget()

print(f"Daily remaining: {budget.daily.remaining_cents}")
print(f"Monthly remaining: {budget.monthly.remaining_cents}")
print(f"Can spend: {budget.spend_allowed}")

# Vendors, categories, time windows
# all visible before you spend
Self-correcting agent
result = kora.spend(vendor="aws", amount_cents=50000, currency="EUR")

if not result.approved:
    budget = kora.check_budget()
    available = budget.daily.remaining_cents

    if available > 0:
        result = kora.spend(
            vendor="aws",
            amount_cents=available,
            currency="EUR",
            reason="Auto-reduced after budget check"
        )

534

tests passing

14

pipeline checks per request

<50ms

p99 authorization latency

0

ML in the auth path

Everything is published.

Ship your agent.
Control the spend.