Your keys. Your coins. Our obsession.
We never touch your funds. You never hand over withdrawal rights. Every secret is encrypted at rest, rotated with versioning, and scrubbed from every log we ship.
AES-128 Fernet at rest
Fernet with HMAC on every API key and private key. Versioned and rotated. A stolen database row reveals nothing without the encryption key.
No withdrawal rights
Create exchange keys with withdrawal disabled. We physically cannot move your coins — even if our entire infrastructure were compromised tomorrow.
Memory-safe decryption
Decrypted secrets live inside context-managers that zero them on exit. Crash reports strip secrets from stack traces before they leave the server.
Refresh, WS tickets, 2FA
HttpOnly refresh cookies, one-time short-lived WebSocket tickets, mandatory 2FA for privileged roles, timing-safe secret comparisons across the codebase.
Immutable trade audit log
Append-only, hash-referenced record of every trade action. You can prove exactly what happened, when and for how much. We cannot rewrite it.
One path to your keys
Every decryption call goes through a single guarded broker. New code paths are denied by default — least privilege, enforced in the code.
Connect a key. Keep the withdrawal rights.
Non-custodial from the first click. AES-128 at rest. Mandatory 2FA.