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 available
Corridor does not bundle the AWS SDK. Wrap the customer’s own
KMSClient:
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.