Skip to main content
Corridor never needs to hold a customer’s money or keys. A licensed payment company runs Corridor in its own environment (or a managed instance dedicated to it) and plugs in the signer it already trusts. The saga engine, route planner and ledger decide what to sign; the customer’s signer is the only thing that can sign.

Customer-held keys

Vault keys live in the customer’s KMS, HSM or MPC provider. Corridor sends a 32-byte digest and gets a signature back. Key material never enters Corridor’s process.

One interface, every chain

secp256k1 for Tempo and Base, Ed25519 for Solana. Adding a provider is one adapter, not a change to any leg.

The interface

Adapters turn a signer into what each chain SDK expects:

Adapters available

Corridor does not bundle the AWS SDK. Wrap the customer’s own KMSClient:
The demo runtime selects the signer from the environment: CORRIDOR_SIGNER=aws-kms with <KEY_NAME>_KMS_KEY_ID switches a vault to KMS; the default is a local key from .env.local.

Evidence

  • Unit tests sign Base transactions, messages and Tempo hashes through a KMS stand-in that returns real DER signatures with high-s half the time; every signature recovers to the expected address.
  • The Tempo treasury vault in the testnet runtime now signs through tempoAccount(...).
  • A live Moderato transfer signed through the interface: 0x0c2b2a85….

Deployment models

The shielded lane keeps its own threshold model: Zcash vaults are FROST 2-of-3 across customer approver, customer finance and an operator key. See FROST.