Open-source trust layer for AI agents — cryptographic agent identity (Ed25519), instance-scoped execution tokens, SHA-256 hash-chained audit logging, and enterp
Open-source trust layer for AI agents — cryptographic agent identity (Ed25519), instance-scoped execution tokens, SHA-256 hash-chained audit logging, and enterp
The Open-Source Trust Layer for AI Agents
Cryptographic agent identity, scoped execution, and tamper-evident audit trails —
transparent by design, not by promise.
3 Core Modules · 27 REST Endpoints · PostgreSQL / MySQL / SQLite Persistence · Works with LangGraph, CrewAI & AutoGen
Every organization that deploys AI agents eventually asks the same four questions:
AgentIdentity — a cryptographic credential (Ed25519 keypair) signed by your Org CAExecutionToken — scoped, time-bounded permissions with tool allowlists and parameter boundsAuditChain — an append-only, SHA-256 hash-chained execution logAgent frameworks help you build and orchestrate agents. None of them answer these questions. OrgKernel does — and because it sits in the execution path, it can't be bypassed. Governance is built into the engine, not left to the application developer.
In a real organization, permission is never a single yes/no flag. A mission's execution permission is determined jointly by four layers — organization, department, role, and instance. Any layer's denial blocks execution.
Consider an agent that attempts to spend $10,000 to complete a task. The request is blocked — purchasing authority at that amount belongs to the department lead. With OrgKernel, the block is enforced at the token scope check, and the full context (which agent, which mission, what it requested, why it was denied) is already in the audit chain when the department lead asks what happened.
Read the launch announcement: Introducing OrgKernel
OrgKernel is the open-source trust foundation of AURA, the execution governance engine of the Metaprise Enterprise Agent Operating System. Every agent running on Metaprise — across banking, healthcare, insurance, and capital-markets deployments — authenticates, executes, and is audited through OrgKernel primitives.
You don't need Metaprise to use OrgKernel. It's a standalone Apache 2.0 Python library that runs entirely on your own infrastructure — no API key, no phone-home, no vendor lock-in. Inspect every line, audit the cryptography, fork it for your own stack.
| Capability | Status | Description |
|---|---|---|
| Cryptographic Identity (PKI) | ✅ Available | Ed25519 keypairs, Org CA signing, CSR flow, challenge-response verification, full suspend/revoke/reactivate lifecycle |
| Scoped Execution Tokens | ✅ Available | Mission-scoped permission tokens with tool allowlists, immutable & bounded parameters, and Ed25519 signatures to prevent token grafting |
| Hash-Chained Audit Trail | ✅ Available | Three-layer audit (IDENTITY / EXECUTION / COMPLIANCE) persisted to PostgreSQL/MySQL/SQLite with SHA-256 hash chaining and integrity verification |
Identity plus execution token together form the DualToken model: at execution time an agent presents both its organizational identity credential and an instance-scoped execution token. Both must validate before a tool call proceeds.
Upcoming capabilities (mission lifecycle, tool gateway, policy engine, authority graph, data classifier, SSO/SAML, SCIM) are tracked in the Roadmap.
| If you use… | You get… | What's missing |
|---|---|---|
| LangGraph / CrewAI / AutoGen alone | Agent orchestration | No verifiable identity, no scoped authority, no tamper-evident audit |
| API keys per agent | Coarse access control | Keys are permanent, unscoped, unauditable, and shareable |
| Application-level logging | A log you hope is complete | Logs can be edited or deleted; nothing proves integrity |
| OrgKernel | Identity + scoped authority + audit, enforced in the execution path | — |
Key properties:
…| Step | Party | Action |
|---|---|---|
| 1 | Verifier | Calls AgentIdentityService.request_challenge(agent_id, issued_by) — generates random nonce + challenge_id, stored in memory with 5-minute TTL |
| 2 | Verifier → Agent | Sends nonce to the target Agent |
| 3 | Agent | Signs the nonce with its Ed25519 private key, constructs ChallengeResponse(challenge_id, nonce, public_key, signature) |
| 4 | Verifier | Calls AgentIdentityService.verify_challenge(response) — validates: nonce one-time use (anti-replay), Ed25519 signature correct, certificate ACTIVE and not expired |
Attack vectors prevented: Replay attack (nonce consumed after one use), private key theft (signature must match nonce), Token Grafting (token.agent_id == caller.agent_id verified at every scope check).
| Audit Layer | Triggered By | Semantics |
|---|---|---|
| L1 Business | AuditChainService.initialize() |
Business perspective: who, in which org, for which mission |
| L2 Execution | Every tool call + state transition + approval + close | Execution perspective: every behavior the system performed |
| L3 Compliance | Escalation to human compliance review | Compliance perspective: what triggered human compliance intervention |
The Execution Token is Ed25519-signed by the Org CA covering the full payload (scope, bounds, expiry). Any modification invalidates the signature. The scope check verifies token.agent_id == caller.agent_id on every call.
Agents prove identity via Ed25519 challenge-response with one-time nonces. Certificates are verified against the Org CA's public key. Revocation and expiry are enforced at verification time.
Every audit entry carries a SHA-256 hash of its content and a prev_hash linking to the previous entry. The integrity API recomputes all hashes and detects any deleted, modified, or reordered entries.
| Check | Detects |
|---|---|
| Hash present | Hash stripped by attacker |
| Sequence continuity (IDs increment by 1) | Entry deletion |
prev_hash linkage |
Entry modification or reordering |
| Content hash match (stored == recomputed SHA-256) | Entry content tampering |
Requires Python 3.10+. Install from source:
git clone https://github.com/MetapriseAI/OrgKernel.git
cd OrgKernel
pip install -e ".[postgres]" # postgres | mysql | sqliteDatabase driver extras: [postgres] — PostgreSQL (recommended) · [mysql] — MySQL / MariaDB · [sqlite] — SQLite for local dev.
Direct Python async — no HTTP, no API key.
…Mount the built-in HTTP router for 27 REST endpoints across identity, token, and audit.
…OrgKernel is framework-agnostic: it wraps the tool boundary, so it works with LangGraph, CrewAI, AutoGen, or any custom agent loop. The pattern is always the same — check scope before the call, append to the audit chain after.
…With LangGraph, wrap each tool node; with CrewAI, wrap each Tool's func; with AutoGen, wrap registered functions. Every agent action becomes identity-bound, scope-checked, and audit-chained without changing your orchestration logic.
All endpoints are prefixed /orgkernel. No API key — the server is your own infrastructure.
| Method | Path | Description |
|---|---|---|
POST |
/orgkernel/identity/csr/submit |
Submit CSR (step 1 of PKI lifecycle) |
POST |
/orgkernel/identity/issue |
Issue identity from CSR (step 2–3) |
GET |
/orgkernel/identity/{agent_id} |
Get identity by ID |
GET |
/orgkernel/identity/{agent_id}/certificate |
Get signed certificate |
POST |
/orgkernel/identity/verify |
Static verification (status + expiry) |
POST |
/orgkernel/identity/challenge/request |
Request cryptographic challenge |
POST |
/orgkernel/identity/challenge/verify |
Verify signed challenge |
POST |
/orgkernel/identity/{agent_id}/suspend |
Suspend identity |
POST |
/orgkernel/identity/{agent_id}/reactivate |
Reactivate suspended identity |
POST |
/orgkernel/identity/{agent_id}/revoke |
Permanently revoke identity |
GET |
/orgkernel/identity/org/{org_id} |
List all identities for an org |
GET |
`/ |
No open issues yet, or sync has not completed.