Execute transactions with permissions
After the user grants authorization via wallet_requestExecutionPermissions, the Session Account (to address) can call redeemDelegations on the DelegationManager to perform on-chain operations on the user's behalf within permission constraints. This section explains how to construct and send redeem transactions.
Prerequisites
A
PermissionResponsehas been obtained (includingcontextanddelegationManager).The Session Account private key is available, and its address equals
toin the authorization.The execution chain matches the authorization
chainId.
Core Contract Interface (EIP-7710)
function redeemDelegations(
bytes[] calldata permissionContexts,
bytes32[] calldata modes,
bytes[] calldata executionCallDatas
) external;permissionContexts
[grant.context]
modes
Execution mode; default for a single call is 0x0000...0000 (32 zero bytes)
executionCallDatas
Encoded Execution struct
Execution Encoding
struct Execution {
address target;
uint256 value;
bytes callData;
}Encoding method:
Constructing Execution by Permission Type
ERC-20 Transfer
Native Token Transfer
Complete Redeem Example
Construct calldata with viem and send the transaction from the Session Account:
Pre-Execution Checklist
to address match
Signer = grant.to
Chain ID match
Use wallet_switchEthereumChain if needed
Sufficient allowance
periodic/stream rules + on-chain enforcer
Valid context
Not expired, not revoked
dependencies deployed
Redeem only after factory deployment is complete
Last updated