expiry parameter.
Extended Session Expiry - what does it mean?
When an app sends a request through WalletConnect (for example, a signature request), it stays “active” until the expiry time is reached. If the wallet does not respond before the expiry, the request automatically fails with a timeout. By default, the expiry is short, i.e., 5 minutes. Extending the session expiry time allows the wallet and app to keep the request open longer, up to 7 days. This is useful for cases like off-hours approvals, delayed custody flows, or multi-party signing.What do wallets need to do?
A wallet must:- Maintain pending state until expiry or completion.
- Gracefully discard expired requests.
- Verify user intent remains valid after long delays.
Limits
- Minimum: 300 seconds (5 min)
- Maximum: 604,800 seconds (7 days)
How can I extend the session request expiry as a wallet?
Wallets must correctly interpret and enforce the expiry.- Parse
expiryin seconds from incoming request metadata. - Keep pending requests active until they’re resolved or the expiry time elapses.
- Notify the user of pending and expired requests.
- If the expiry has passed, return an error response (
code: 4100, “Request expired”). - Optional UX: display countdown timers or “expires in X hours”.