TreeshipEngineeringBlogDocsGitHub

Writing

Engineering

How the pieces are built and why they are built that way.

Capability Cards: Proving What an Agent Can Do, Not Just What It Says

Descriptor formats like A2A's AgentCard tell you what an agent claims it can do. None of them tell you whether the claim is bound to a key you trust, or whether the agent's actual behavior matches. Here is the arc we shipped to close that gap: a predicate registry, signed capability cards, per-actor signing that makes an agent's identity provable, revocation, and the same verdict in the browser as on the command line.

Four layers of proof: how Treeship uses zero-knowledge

Signatures prove authenticity. Merkle proofs prove timing. Circom proves policy. RISC Zero proves the entire chain. Here's how they fit together.

The Key Management Nightmare Hiding Inside Agent Attestation

Teams adopting cryptographic attestation for agents keep hitting the same wall: one keypair per agent sounds right until you have forty agents and no coherent governance. Here's the model that actually works.

From Subprocess to WASM: Eliminating the Subprocess Attack Surface

When your TypeScript SDK spawns a Rust binary, you've introduced a $PATH dependency, a binary substitution attack surface, and an IPC channel. All three go away when you compile to WASM.

Why We Chose Rust for the Trust Layer

The ZK proof ecosystem is Rust-first and Rust-only in any production-ready form. Here's the complete case for Rust as the foundation of cryptographic agent infrastructure.

DSSE: Dead Simple Signing Explained

DSSE is the signing envelope Treeship uses for every artifact. Here's why we chose it over JWS and what the PAE construction actually does.