The SDK refuses to send a server key from a browser, and refuses a server key as the browser key. The API
refuses an admission that carries an
Origin header.
Onboard a user
1
The wallet consents to you, in your frontend
personal_sign message naming your slug, the wallet, the environment, the chain and an
expiry. It authorizes no financial action:lifetimeSeconds changes it, within the
limit.2
Your server admits the wallet
3
The wallet signs in
4
The wallet trades
totalis has the same flows as any account: openPosition, cashOut, withdraw. See
Trading, Withdrawals and the
SDK.Which wallets can sign in
The
signer is any EIP-1193 provider, viem account or wallet client, or ethers signer. Trade signatures accept
ERC-1271, but sign-in does not.
A Totalis app user’s wallet is an embedded wallet inside the Totalis app, so they have no wallet to sign in with
on your site. To trade through your product they create an API key in the
Totalis app, or export their wallet key
(Wallet key). An account created in the Totalis app is not admitted by
you, so its RFQs are attributed to you only with an origin builder code.
Sessions
The SDK calls Create wallet challenge, Create wallet session and End wallet session.
A browser sets
Origin itself. Outside a browser, pass origin, one of your registered origins, to
signInWithWallet and signOutWallet, and send it as the Origin header on every later call and stream
(headers on createTotalis).
Origins and CORS
The API answers CORS from your registered origins. Preflights allowAuthorization, Content-Type,
Idempotency-Key, traceparent and X-Totalis-Partner, and expose Idempotency-Replayed, Retry-After and
X-Request-ID.
To add or remove an origin, email founders@totalis.trade.
Funding
Moving cash to HyperCore
An external wallet’s vault cash is not swept to HyperCore in the background. Before a native HyperCore order, move it:Exit, and Totalis pays the gas (Create HyperCore exit,
Get HyperCore exit). One move at a time per account: another is
CORE_MOVE_IN_FLIGHT. returnToCore() moves the wallet’s USDC and its free vault cash back together.
The first credit to a HyperCore account that does not exist yet pays Hyperliquid’s activation fee, so it has a
higher minimum (Limits).
Withdrawals
Withdrawals and exits to HyperCore are sponsored. For an account that signs in with an external wallet they share one minimum and one hourly count (Limits).Attribution and revenue share
An account you admit is yours for good. The partner is fixed when the account is created, so a copied browser key cannot move it to another partner. Every RFQ from the account records your account code, whatever credential it uses: its session, or an API key it issued. Its requests spend your share of rate limits. Payouts, reports and other accounts are on Builder codes.If something is switched off
Accounts in the Totalis app are never affected.

