cd /news/ai-agents/show-hn-arken-cryptographic-identity… · home › topics › ai-agents › article
[ARTICLE · art-162268] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=· neutral

Show HN: Arken – cryptographic identity for AI agents calling MCP servers/APIs

ArkenForge released arken-core, an Apache 2.0 Rust library that gives AI agents calling MCP servers and APIs a cryptographic identity via ECDSA secp256k1 signature verification and W3C did:key identifiers. The library exports three C-compatible functions — generate_challenge_into, verify_request_into and verify_signature_only_into — issuing 60-second nonces and returning the agent's did:key after a signed Authorization: Signature retry. ArkenForge states the project is not production-ready, keeps nonces in memory so they do not survive restarts or work across multiple instances without a shared store, and offers no key recovery.

read2 min views3 publishedNov 2, 2026
Show HN: Arken – cryptographic identity for AI agents calling MCP servers/APIs
Image: Michielbdejong (auto-discovered)

The cryptographic core of ArkenForge. ECDSA signature verification, did:key identity, nonce generation.

arken-core is the Rust library that everything in ArkenForge builds on. It handles:

  • Challenge generation — cryptographically random nonces with 60s TTL
  • Signature verification — ECDSA secp256k1 viaethers-rs
  • DID parsing —did:key identity using the W3C spec (zQ3s… prefix for secp256k1)

It compiles to a native shared library (.dylib / .so / .dll) loaded by higher-level packages via FFI.

Requires Rust.

cd rust
cargo build --release

Output: rust/target/release/libarken_core.{dylib,so,dll}

Three C-compatible functions are exported:

int generate_challenge_into(const char *statement, char *out, int cap);
int verify_request_into(const char *header, char *out, int cap);
int verify_signature_only_into(const char *header, char *out, int cap);

All functions write JSON into out and return the number of bytes written, or -1 on buffer overflow.

An unsigned request gets a 401 with a one-time nonce. The client signs the nonce with its secp256k1 private key and retries with an Authorization: Signature header. The core verifies the ECDSA signature, checks the nonce, and returns the agent's did:key — nothing stored, nothing breached.

sequenceDiagram
    participant C as Client
    participant S as Server
    C->>S: GET /protected
    S-->>C: 401 { challenge: { nonce, statement } }
    Note over C: sign(nonce, privateKey)
    C->>S: GET /protected<br/>Authorization: Signature did="…",nonce="…",signature="…"
    S-->>C: 200 { did: "did:key:zQ3s…" }

Each agent gets a W3C DID Key derived from its key pair:

did:key:zQ3shXgnkuyqVxf3NGBsK1q3J…

The zQ3s… prefix indicates secp256k1 (0xe7 0x01 multicodec). Same key, same DID, across every server running Arken. One identity, every tool.

Repo What it is
arken-core (this repo) Rust crypto core — the foundation
arken-auth Express + FastAPI middleware, client SDKs, MCP integration
arken-registry Discovery registry — find APIs that accept Arken auth
arken-verifier Hosted verifier — metered signature verification
  • Not production-ready. Early-stage project.
  • Nonces are in memory. Won't survive restarts or work across multiple instances without a shared store.
  • No key recovery. Losing the private key means losing access.
  • Rust toolchain required to build. Prebuilt binaries are on the 1.0 roadmap.

See SECURITY.md. Find a flaw, open a private advisory, and your name goes in the Hall of Finders.

Founding Builders — everyone who joins before December 15, 2026 — are credited by name in the 1.0 README. There are 10 design-partner slots for teams who want to shape the API directly.

Apache 2.0 — ArkenForge

── more in #ai-agents 4 stories · sorted by recency
── more on @arkenforge 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-arken-crypto…] indexed:0 read:2min 2026-11-02 · —