Passport SDK
Official, free, MIT-licensed clients. No payment required for the core protocol, the SDK, or receipt verification.
Open source & free: TypeScript
@passport7/sdk and Python passport-sdk. Install — don't pay.TypeScript — install
npm install @passport7/sdk
import { PassportClient } from "@passport7/sdk";
const p = new PassportClient({
apiKey: "pp_…", // free developer tier from /dashboard
baseUrl: "https://passport.metis.gold",
});
// Issue a signed receipt for agent work
const r = await p.issueReceipt({
agent_id: "agent_fulfillment_1",
receipt_type: "competence",
input_digest: "<sha256 hex>",
authority_scope: "fulfillment.example.com",
expiry: "2026-08-01T00:00:00.000Z",
});
await p.finalizeReceipt(r.receipt_id, {
status: "success",
output_hash: "<sha256 hex>",
});Framework hooks
- LangChain:
@passport7/sdk/langchain—PassportCallbackHandlerposts OTel evidence on every LLM call. - Mastra:
@passport7/sdk/mastra—createMastraPassportMiddlewareanchors every agent/workflow run with a receipt. - Vercel AI:
@passport7/sdk/vercel-ai—passportMiddlewaregates + audits LLM calls.
Sovereign Haven / RWA clients
The SDK bundles typed clients for the reserve stack — all free, protocol-level:
const por = await p.reserves.getPoR({ commodity: "GOLD" });
const regime = await p.reserves.getRegimeState();
const escrow = await p.reservesEscrow.createCommodityEscrow({ ... });
const intake = await p.artisanal.intakeOre({ ... });
const proposal = await p.quorum.proposeQuorum({ ... });
const waybill = await p.transit.dispatch({ ... });
const run = await p.industrial.recordSmelting({ ... });
const project = await p.fund.registerProject({ ... });Python — stdlib only
from passport_sdk import PassportClient
p = PassportClient(api_key="pp_…", base_url="https://passport.metis.gold")
receipt = p.issue_receipt(
agent_id="agent_1", receipt_type="competence",
input_digest="<sha256 hex>",
authority_scope="example.com",
expiry="2026-08-01T00:00:00.000Z",
)
p.finalize_receipt(receipt["receipt_id"], status="success", output_hash="<sha256 hex>")Verification is public & keyless
Anyone can verify a receipt with no auth:
GET /api/v1/receipts/{id}/public-manifest
GET /api/v1/public-key