crossChainPermits, not per function. Each entry allows source and destination legs and defines the limits the session has to stay within.
A permit restricts bridging authority; it does not enable the session on
another chain. For a transaction that uses the account on several chains, also
configure Multi-chain
sessions.
Basic usage
Restrict a session to only bridge USDC from Base to Arbitrum: Examples on this page use@rhinestone/sdk, where rhinestone is the RhinestoneSDK instance from Create a session with a custom setup.
Guardrails
Tighten a permit with optional bounds:maxAmounton a source leg caps how much of that token the session can pull (a spending limit).validAfter/validUntilbound the permit deadline. Both accept aDate.fillDeadlinebounds the fill window per destination chain.
Recipient safety
By default a cross-chain permit enforces bridge-to-self on-chain: the destination recipient must be the smart account itself. This stops a leaked session key from routing funds to an attacker-controlled address. Opt out explicitly only when you need to bridge to a different recipient:Settlement layers
A permit allows any supported settlement layer by default. PasssettlementLayers to narrow it to a subset: