ADR 0005: Session UX
Status
Accepted
Context
Repeatedly signing transactions degrades the user experience for on-chain games, especially those requiring frequent interactions (like real-time or turn-based strategy). Players expect a seamless experience akin to Web2 gaming without constantly engaging with a wallet prompt.
Decision
We introduce session keys with a fluent SessionBuilder API to authorize specific game actions over a time-bound window without requiring repeated user prompts. authorize_with_fallback will be used for graceful degradation, allowing operations to fall back to direct authorization when a session is expired or unavailable.
Consequences
- Massively improved gameplay experience for end users.
- Integration becomes slightly more complex to handle session lifecycles.
- Wallets and client integrations must support and manage session key delegation.