Kalman
Engine
Documentation menu

Getting started

Seven steps from a browser wallet to a funded trading wallet you hold the keys to. Only the on-chain moves — your deposit and your withdrawals — cost gas.

1. Connect a wallet

Kalman uses the Solana Wallet Standard, so the picker lists whatever wallets your browser exposes — Phantom, Solflare, Backpack and any other standard-compliant wallet. No wallet is hardcoded and none is privileged; if it registers itself with the browser, it appears.

The picker opens on every sign-in click, even if you have connected before. That is deliberate: a returning user with two wallets installed should be choosing which account they are signing in as, not discovering it afterwards.

2. Sign in

Signing in means signing a short text message — kalman.fund wants you to sign in plus a single-use nonce. It is a signature, not a transaction: it costs no gas, touches no chain, moves nothing, and grants no approval over your assets. Your wallet should show you the message text; read it.

The signature is checked against your public key and the nonce is consumed on first use, so the same signed message cannot be replayed. A session lasts 24 hours. Signing out invalidates every session for your account at once, not just the browser you clicked it in.

3. Accept the risk disclosure

Before the wallet screen opens you are asked once to read and accept the risk disclosure — the same text that sits in the site footer. The acceptance is recorded server-side, so it cannot be skipped by a client that simply does not render the dialog.

4. Your trading wallet

A Solana keypair is generated for you the first time you sign in. One trading wallet per login wallet, permanently paired: the same login wallet always returns to the same trading wallet, and a different login wallet is a different account with a different trading wallet. There is no way to move a trading wallet between accounts, and no way to repoint an account at a different login wallet.

The private key is held encrypted, and only an isolated signer process ever decrypts it. See Wallet & custody for how, and for the parts of that arrangement you have to trust us on.

5. Fund it

The wallet screen shows your trading wallet address as text and as a QR code, with live SOL and USDC balances read from the chain on every load — nothing is cached, so a balance you can see is a balance that is there.

  1. USDC is capital. Send as much or as little as you want; there is no minimum and no deposit cap.
  2. SOL is gas. Send at least 0.02 SOL. Every Solana transaction pays a fee in SOL, including your own withdrawals, and Kalman never tops your gas up. Below the threshold the wallet screen warns you.
  3. Solana mainnet only. There is no testnet or devnet mode and no bridge. Assets sent from another chain, or on a network other than Solana mainnet, do not arrive and cannot be recovered.

A deposit is an ordinary transfer to an ordinary address — there is nothing to confirm on our side and nothing to click. It appears on the wallet screen once the network confirms it.

Deposits and withdrawals are the only money movements that exist today. No strategy runs against your balance yet; funding the wallet does not start anything trading.

6. Withdraw

Withdrawals move USDC or SOL out of the trading wallet, and the destination is fixed: the wallet you signed in with. There is no address field in the form, because there is no address field in the request — a destination supplied by a client is rejected outright rather than quietly ignored, and the signer checks the destination against its own record of your login wallet instead of trusting what it is handed.

  • A SOL withdrawal keeps 0.005 SOL back so the wallet can still pay for its own transfer. Max accounts for that.
  • There is a per-asset cap on a rolling 24-hour window — not a calendar day, because a calendar reset is a moment an attacker can simply wait for. It exists to bound what a single compromised session could move.
  • Every withdrawal is simulated against the chain before it is broadcast. A failed simulation fails the withdrawal with nothing sent.
  • If a withdrawal is broadcast but the result is ambiguous, it is recorded as submitted and never as failed — a "failed" row you might retry against a transfer that actually went through is worse than an unresolved one. The history list under the form carries each withdrawal's real status.

7. Export your private key

The trading wallet's key is exportable, in base58, from the wallet screen. It takes two things: a signed-in session, and a fresh signature from your login wallet made at the moment you ask. A session cookie on its own is not enough, and the message you sign for an export has a different prefix from the sign-in message, so a captured login signature can never be replayed as an export.

Exports are rate-limited and every attempt is logged, successful or not. Once the key is on your screen it is outside our control: anyone holding it controls the wallet, and Kalman cannot recover it or reverse a transfer signed with it. The modal copies to the clipboard on request and clears the clipboard 60 seconds later — best effort, since a browser can refuse a clipboard write once the page loses focus, which is exactly why the modal tells you the key is sitting there.

8. Build a bot

You can configure any of the four strategies against your own parameters and capital, and run a real backtest of that exact configuration over stored history. Nothing built this way trades — each bot shows a checklist of what would still be required before it could, and one of those conditions is ours to clear, not yours. What a bot proves and what it does not.

What is not here yet

Running those bots against your own capital is the next phase. It is not shipped and there is no waitlist. Until then the live desk is the thing worth watching — it is our money, published the same way yours would be.