Fleet quickstart
Five-minute path from never-heard-of-it to first stamped action receipt landing in your dashboard.
1. Sign in
Open fleet.ochk.io and click sign in. The button
routes to the family auth host at ochk.io/signin where
you authenticate with a BIP-322 signature from any compatible wallet (UniSat,
Xverse, Leather, OKX, Phantom, or paste-in). On success the auth host issues a
cross-subdomain oc_session cookie and bounces you back tothe fleet dashboard.
No password, no email. Your Bitcoin address is your identity. The auth host stores nothing about you that isn't on-chain anyway.
2. Bootstrap your project (automatic)
The first time you land on /dashboard after sign-in, the
OnboardingBoundary auto-creates a default project named
<your-addr-prefix>-default. You'll see a transient "first sign-in ·
bootstrapping your default project" banner; once it clears you're on a real
Postgres-backed tenant.
You can rename the project at /settings § 01 later.
3. Register a delegation (wallet-signed, in your browser)
Click /agents/new in the sidebar. The form asks for:
| Field | What |
|---|---|
| agent address | Bitcoin address the agent will sign actions with. Different from the principal — that's the point of delegation. |
| scopes | One or more scope strings, e.g. mcp:invoke(server=https://mcp.example.com,tool=invoice.create). The agent can only sign actions whose scope_exercised is a sub-scope of one of these. |
| expires_at | When the delegation stops being valid. Default 30 days. |
| bond_sats | Optional OC Pledge stake. Skip for v1. |
Click sign delegation in wallet. Your wallet pops up showing the 64-hex
envelope id; sign it; the envelope is POSTed to /api/delegations. Fleet:
- recomputes the id from canonical inputs and rejects on mismatch (tamper defense)
- requires
principal === session.addr(forgery defense) - persists the row, fans out to Nostr kind 30083, submits to OC Stamp
- triggers any subscribed webhook with
event_type: 'delegation.registered'
The agent table on /agents now shows your new delegation.
4. Wire your LLM tool calls
Pick the adapter for your framework — install it, supply your agent keypair + the delegation envelope + a fleet API token, and every tool call gets a stamped receipt automatically.
// Anthropic Tool Use
import { invokeWithStampAndPost } from '@orangecheck/agent-anthropic';
const { result, action, posted } = await invokeWithStampAndPost({
agent: agentSigner, // your @orangecheck/agent-signer ref
delegation: signedDelegation,
toolUse: claudeToolUseBlock,
call: (toolUse) => myInvoiceCreateImpl(toolUse.input),
fleet: {
apiToken: process.env.OC_TOKEN!, // ock_<64-hex>
projectId: process.env.OC_PROJECT_ID!,
},
});
// `result` is whatever your tool returned.
// `action` is the BIP-322-signed canonical envelope.
// `posted` is { id, project_id, delegation_id } once fleet accepts it.
The same fleet: { apiToken, projectId } knob works on
@orangecheck/agent-openai,
@orangecheck/agent-vercel,
@orangecheck/agent-langgraph,
and
@orangecheck/agent-mcp.
Get the API token from
/settings § 03 · API tokens. It's returned once at create — store it in your CI's secrets manager immediately.
5. Watch the receipts arrive
Go to /audit. Every accepted action shows up as a row with:
- the envelope id (sha256 of the canonical inputs)
- the scope_exercised
- the content_hash (sha256 of the canonicalized tool call)
- OTS state (
pendinguntil the OC Stamp pipeline anchors into a Bitcoin block, thenconfirmedwith the block height) - the Nostr event id (once relay-published)
Drill into /agents/<id> to see receipts filtered to that single delegation, or
hit export signed bundle to download the full project bundle as NDJSON /
JSON / CSV.
You're done
That's the whole loop. Real delegation envelope, real action envelopes, real
Bitcoin anchor — verifiable offline against
@orangecheck/agent-core,
no fleet-side trust required.
Where to go next:
- Concepts — the data model behind it.
- Webhooks — push events to your stack.
- Federation — replace the principal with an M-of-N guardian set (v1.2).
- API reference — full OpenAPI 3.1 spec.