Compliance across 152+ countries

Security

Built to be
examined.

The complete control inventory, on one page, written for the reader whose job is to say no. Every control here is enforced in code, and nothing here is aspiration.

One movement, request to broadcast

01

Request

Checked against a named permission, in one workspace

02

Policy

Spending limit applies before the transaction is built

03

Signing

Your hardware, one signature at a time

04

Quorum

Held until the M-of-N threshold is met

05

Broadcast

Bitcoin rejects a witness that falls short

Not ours to override

The quorum is in
the script.

Most platforms check your approval rules in their own code. Ours are written into the Bitcoin script that locks the coins, so the network enforces them whether or not our servers agree.

Vault descriptor, two of three

wsh(multi(2,xpub…,xpub…,xpub…))

Script type
P2WSH
Signatures required
2 of 3
Witness
OP_0, sigs, script

01 / Built

M goes into the script

Registering your signers generates one descriptor from their public keys. The threshold is a character inside that string, so it travels with the address rather than sitting in a database column someone could edit.

02 / Rejected

Bitcoin does the refusing

A witness holding fewer than the required signatures fails OP_CHECKMULTISIG and the network rejects the transaction. Signatures are pushed in the order their keys appear in the script, because the opcode walks both lists left to right and an out-of-order signature fails too.

03 / Finalized

Assembly waits for the count

Partial signatures accumulate until the collected count reaches M. Only then is the final witness assembled, in the same Rust crate that builds every script we produce, and only a finalized transaction is allowed to broadcast.

Every control,
named.

Nine places a request is stopped between someone asking and Bitcoin accepting. Each one is a mechanism in the stack, not a paragraph in a policy.

We cannot sign for you

There is no private key or seed anywhere in our systems, and no column to put one in. We hold public keys, xpubs, and fingerprints. A full compromise of our infrastructure still produces no signature.

Signing happens on your hardware

Trezor is integrated in the app, and every transaction moves as a standard BIP-174 PSBT carrying the derivation metadata a signer needs. The device shows what it is approving on its own screen, and registering a key aborts unless the address the device displays matches the one derived locally.

No side door around the quorum

A plain Bitcoin send is refused on any governance vault; it exists only for personal wallets. A vault movement is a PSBT that collects signatures until the threshold is met, and only a finalized transaction is allowed to broadcast.

The signing service has no public endpoint

The key coordination service is internal only. The outside world reaches it through one gateway, where every request is authenticated and checked against a named permission before anything is built or signed.

Nothing can be quietly deleted

Sign-ins, permission changes, every partial signature, and every broadcast are written once and never edited. A malformed event is quarantined to its own table rather than dropped, and reads come back in one fixed order. 36 event types across 8 categories.

Your auditors serve themselves

The audit team filters the log by category and date in the app and exports the CSV behind its own permission. The export lands in the log too, requested, completed, or failed, so even looking is on the record.

Access follows your org chart

Eleven named permissions, granted per role and checked at every endpoint against the workspace in the request. Nothing crosses between workspaces, and there is no global administrator who can see everything.

Limits that fail closed

Per-role and per-vault spending limits on weekly or monthly cycles, checked before a token transfer's transaction exists. A vault with no policy attached refuses by default rather than waving the request through.

Sign-in you already control

Your own identity provider over OIDC, or email with a one-time code. Sessions created, revoked, and expired are audited events, so who had access and when is a query rather than a question.

The scope, as data.

What we run, what we store, and what we refuse to hold. If your review needs more than this page, we will walk your team through the model against your own checklist.

Networks
Bitcoin mainnet and testnet
Vault script
P2WSH, M-of-N multisig
Transaction standard
BIP-174 PSBT
Hardware signing
Trezor, verified on device
Identity
OIDC SSO or one-time code
Key material stored
Public keys and xpubs only