Skip to content
/ security

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.

custody
non-custodial
withdrawal
disabled by you
at rest
AES-128 Fernet
audit
tamper-proof

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.