Skip to content

Security

How Ballistic handles your wallets and keys

Ballistic generates your launch wallets and stores their private keys encrypted with AES-256-GCM, so it can sign launches and sells for you. Each encrypted key is bound to its own wallet record. You can export any wallet’s key through a two-step, rate-limited flow, and protect your account with authenticator-app two-factor sign-in.

Who holds the keys

Ballistic holds the keys of the wallets it creates for you: the launch wallets, the deployer and the funding wallets of a launch. That is what lets a launch go out as one bundle or one transaction, signed by many wallets at once, and what lets one sell action cover every wallet. It also means Ballistic can sign for those wallets: they are working wallets operated by the platform, not a cold wallet.

You can take a copy of any key at any time by exporting it, and move funds out with a withdrawal. Keep long-term holdings in a wallet only you control.

How keys are stored

  • Private keys are encrypted with AES-256-GCM, an authenticated cipher: a ciphertext that has been altered fails to decrypt.
  • Each encrypted key is bound to its own wallet record. A ciphertext copied onto another wallet’s record fails verification instead of decrypting.

Exporting a key

  1. Request

    You ask to export. Ballistic checks that the wallets are yours and returns a single-use reveal token that is valid for 60 seconds. No key is decrypted at this step.

  2. Redeem

    Your browser redeems the token within the minute and receives the keys. A used or expired token does nothing.

Both steps are rate-limited, and every export attempt, allowed or refused, is written to an audit log.

Signing in and two-factor

You can sign in with a wallet signature or Telegram. On top of that you can turn on two-factor sign-in with an authenticator app (TOTP). When you do, Ballistic gives you 10 single-use backup codes once; only their bcrypt hashes are stored, and each code works one time. Failed codes count toward the same lock-out as failed authenticator codes.

Logs

The server’s logger redacts fields named for keys, mnemonics, passwords and tokens before anything is written, and drops very long hex strings such as signed transactions. Redaction happens in the logger itself rather than at each call.

What you should do

  • Turn on two-factor sign-in and keep the backup codes offline.
  • Withdraw proceeds you do not need for trading. Your primary wallet withdraws free.
  • Treat an exported key like cash: anyone who has it controls that wallet.
  • Never share a key, a backup code or a sign-in code with anyone, including someone who says they are Ballistic support.

Reporting a problem

If you find a security issue, contact the team on Telegram or X and ask for a private channel before sharing details.

Questions

Is Ballistic custodial?

For the wallets it creates, yes: Ballistic stores their keys encrypted so it can sign launches, sells and withdrawals. You can export any key and withdraw at any time.

How are private keys encrypted?

With AES-256-GCM. Each encrypted key is bound to its own wallet record, so it cannot be moved to another record and decrypted there.

Can I export my wallet keys?

Yes. Export is a two-step flow with a 60-second, single-use reveal token, rate-limited and audit-logged.

Does Ballistic support two-factor authentication?

Yes. Authenticator-app (TOTP) two-factor with 10 single-use backup codes.

Does Ballistic log private keys?

The logger redacts fields named for keys, mnemonics, passwords and tokens before anything is written, and drops very long hex strings such as signed transactions.

Last verified against the Ballistic code.