Some secrets can’t be rotated away
If an exchange API key with withdrawal rights leaks, the withdrawals it signed are final. If a code-signing or token-signing key leaks, its signatures stay valid. Rotation stops the next attack, but it doesn’t undo the last one. These keys usually sit in a secrets manager that hands plaintext to any caller with the right role. From there they end up in a trading bot, a CI runner, or a laptop. With Turnkey Verifiable Cloud (TVC), once you import the key, it is only in plaintext inside an attested app that you control.How it works
- Your system sends a request, such as a withdrawal, to the TVC app.
- The app loads the key from Managed Secrets. Policy lets only this app export it, and the key is encrypted to the app’s enclave.
- The app checks the request against your rules, such as an address allowlist or an amount limit.
- If the checks pass, the app signs the request and sends it to the exchange, or returns it to your proxy.
- Plaintext only in enclaves. Your engineers, your cloud provider, and Turnkey see ciphertext.
- No one acts alone. A quorum of your administrators, such as 3 of 5, approves policy changes and every new version of the app.
- Rules you can verify. Your security team can confirm exactly which code holds the key, using Boot Proofs.
- Fast. The app can be configured to load the key once and keep it in memory, so signing needs no extra network call.
Policy or app code?
Only the TVC app can export venue keys:
Networking
- Direct. The app calls the exchange itself, so the whole path stays in the enclave. Many exchanges require an IP allowlist for withdrawal keys, so ask us about egress IPs.
- Your proxy. The app returns the signed request, and your existing proxy and IP allowlists send it. The proxy never holds the key.
Getting set up
1
Create your organization
Create a Turnkey organization and enroll your administrators with security keys. While you build, keep the root quorum at 1 so you can iterate quickly.
2
Deploy the app
Deploy your signing app on TVC with your administrators as approvers, also with a threshold of 1 for now. Register the app’s credential as a Turnkey user. See the quickstart.
3
Import the key
Import the venue key into Managed Secrets with properties such as
kind: exchangeApiKey. Then delete every other copy. Start with a testnet or low-limit key.4
Scope export to the app
Add the policy above. No other user can export the key.
5
Raise the quorum for production
Before the key can move real funds, raise the root quorum and the app’s approval threshold, such as to 3 of 5.