Sessions

How session signers, rent, and session recovery work under the hood.

Session Signer (In-Game Wallet)

Profile and session signer

When you start a game session, the game creates a temporary keypair called the session signer. This keypair is derived from your wallet signature and stored securely on your device. You sign with your main wallet exactly once to enter a session — everything after that is handled by the session signer.

The session signer signs all in-game transactions automatically: movement, combat, and POI interaction. No wallet popups during gameplay.
The session signer is funded with SOL from your main wallet at session start.

Session Rent

Each session requires approximately 0.12 SOLto cover on-chain account creation rents, delegation costs, VRF initialization, and transaction fees. This SOL is not spent permanently — unused rent is returned to your session signer wallet when the session ends.

When you unlock the season pass, the 0.12 SOL is sent to your in-game wallet (session signer) right away. This means you do not need to fund the session signer separately at session start — the funds are already there and ready to go.

For repeat sessions, the session signer already has funds from prior sessions, reducing or eliminating additional transfers.
The session signer auto-withdraws excess funds above a 0.13 SOL cap back to your main wallet.
You can withdraw SOL from your in-game wallet at any time when no session is active, through the profile menu.
Tip: Your session signer balance carries over between sessions. Once funded via the season pass, subsequent sessions require no additional SOL transfers because the signer already has funds.

Resuming a Session

Resuming a session

If the app closes mid-session (crash, network loss, force quit), your session is saved on-chain. On next launch, a modal appears with three options: Resume, Override, or Abandon.

Resume — reloads the saved session state and continues from where you left off.
The game validates that map data and VRF state are still intact before allowing resume.

Overriding a Session

Override is a last resort for cases where a session gets stuck or bugged and cannot be resumed. It invalidates the old session and allows you to create a new one.

Warning: Overriding does notreturn the rent from the old session to your wallet. The SOL used for the stuck session's on-chain accounts is lost. Only use this when resume and abandon are not working.

Abandoning a Session

Abandon permanently closes the session and forfeits all in-progress run data. This is the only in-session action that requires your wallet signature, serving as a safety measure.

Session signer funds are drained back to your main wallet.
Use this when you want to cleanly exit a broken session.