Onboarding

There are three ways to bring a wallet:

  • Social login (Privy) — email, Google, or Telegram login that provisions an embedded EVM wallet. No browser extension required, ideal for first-time Web3 users.
  • MetaMask — the classic browser-extension wallet.
  • WalletConnect — any WalletConnect-compatible mobile or desktop wallet (Trust Wallet, Rabby, Ledger Live, etc.).

All three paths converge on the same authorization flow.

One signature, two outcomes

The first time you connect, you sign one EIP-712 typed-data payload. That single signature does two things in one popup:

  • Authenticates your session — the server verifies the signature and issues a session.
  • Authorizes a delegated signer — a browser-local key, scoped to trading only, so you don't get a wallet popup on every order.

No blockchain transaction or gas fee is required for this authorization signature.

The delegated session signer

  • Generated locally in your browser.
  • Stored in localStorage with a TTL that matches the session expiry.
  • Scoped to trading actions only. It cannot move funds — withdrawals always require your main wallet.
  • Rotated automatically on logout, on error, or when the TTL expires.

If your browser data is cleared or you log out, the delegated key is destroyed. The next time you connect, you'll be asked for one signature to provision a new one.

Why this design

Without delegation, every order would trigger a wallet popup, which is unworkable for active trading. Delegation keeps the UX fast while still cryptographically binding every order to your identity — through an ephemeral key your main wallet already authorized.

Next, connect your wallet with How to Connect a Web3 Wallet, or register with How to Sign Up with Socials.