Skip to content
Get started

From zero to anchored evidence in an afternoon.

The gateway is a single service you run in your own cloud. Licensed customers receive it during onboarding together with the operations guide; these are the steps your team follows.

  1. Initialise keys and configuration

    Creates the ML-DSA signing key, the X-Wing archive key (move it offline: the gateway never needs it), a policy template and an admin API key. Key files are passphrase-wrapped.

    CANDOR_KEY_PASSPHRASE=… candor-ai init ./candor
  2. Write your policy

    Identity providers (Entra ID tenant, Okta…), roles, approved models and providers, data residency, DLP and compliance packs. The tool validates the packs and prints the hash you publish.

    candor-ai policy-hash ./candor/policy.json
  3. Create your stream from your Safe

    Your owner multisig creates the stream on the Candor ledger with your signing key hash, the policy hash and the anchorer address. The stream ID is derived from your Safe, so nobody can squat it.

    createStream(salt, pqKeyHash, policyHash, [anchorer])
  4. Buy a plan

    Online with USDC on the pricing page (browser wallet or Safe batch), from the CLI, or on invoice.

    candor-ai license-buy <streamId> <plan> <periods> --calldata
  5. Start the gateway and switch your base URL

    Fund the anchorer wallet with a little MON, start the gateway behind TLS (post-quantum key exchange on by default) and point your SDKs at it.

    OPENAI_BASE_URL=https://ai-gateway.internal.example/v1
    ANTHROPIC_BASE_URL=https://ai-gateway.internal.example

Requirements

Runtime
Linux container or VM with Node.js 24; 2 vCPU and 4 GB RAM handle most teams
Storage
Durable disk for records; WORM bucket recommended for long retention
Network
Egress to your approved providers and a Monad RPC endpoint
Wallets
A Safe for the stream owner; one hot anchorer wallet with gas only
Identity
Optional: an Entra ID or other OIDC app registration

Start onboarding