signing on createSession to choose a mode:
- Disabled (
{ mode: 'disabled' }): The session cannot sign messages or typed data. - Unrestricted (
{ mode: 'unrestricted' }): The session can sign any message or typed data. - Scoped (
{ mode: 'scoped', allowedContents: [...] }): The session can sign only EIP-712 typed data matching an allowed domain and primary-type schema. Plain messages and arbitrary hashes are not allowed.
signing, the default depends on the session:
A non-disabled
signing beside an IntentExecutor-layer permit is refused with SIGNING_WITH_INTENT_EXECUTOR_PERMIT. Disable signing unless your session needs ERC-1271 signatures.
Both unrestricted and scoped signing accept optional validAfter and validUntil dates. One window applies to the entire signing capability. With neither bound, the SDK selects the unrestricted policy. If you provide either bound, it selects the time-frame policy. While the session has any action window, a signing surface other than claim policies is narrowed to the union of those windows.
Unrestricted, time-boxed signing
This session can sign any message or typed data for one hour: Examples on this page use@rhinestone/sdk, where rhinestone is the RhinestoneSDK instance from Create a session with a custom setup.
Scoped Permit2 typed data
This session allows the Permit2PermitSingle domain and schema. Provide the human-readable EIP-712 domain, types, and primaryType; the SDK derives the domain separator and canonical type encoding.