Trust model
Treeship trust is rooted in cryptographic signatures, not infrastructure.
Treeship's trust model has one axiom: the signatures are the trust.
No trusted third party
A Treeship artifact is valid if its Ed25519 signature verifies against a known public key. Validity does not depend on:
- Treeship's servers being online
- The Hub being reachable
- Any certificate authority
- Any token or session
The Hub is convenience infrastructure for sharing and discovery. It cannot forge a passing verification result.
Key hierarchy
Owner (human)
└── Ship key (Ed25519)
└── Signs all artifacts
└── Signs approvals
└── Signs handoffsOne keypair per Treeship. The owner holds the private key, encrypted at rest.
Chain integrity
Every artifact contains a parentId field pointing to the previous artifact in the chain. Verification walks this chain recursively. A broken link (missing parent, tampered content) causes the entire chain to fail.
Approval binding
Approvals use a nonce-binding model. The approver signs an approval containing a random nonce. The agent includes that nonce in its action. At verification time, the verifier checks:
action.approvalNonce == approval.nonceThis is enforced in the Rust core. There is no way to skip the check.
Offline verification
treeship verify release.treeshipThis works on an airplane, in a secure facility, or on a machine that has never connected to the internet. The .treeship bundle contains everything needed: artifacts, signatures, and the public key.