1. Install Functor modules
The developer installs two modules on their smart account:- WebAuthnValidator - verifies passkey signatures, reads keys from the KeyStore
- FunctorPolicyHook - enforces policies before and after every transaction
2. Configure policies
The developer sets policies for each key - through the dashboard or the SDK. Policies are written directly to the FunctorPolicyHook contract onchain. Policies can include:- allowed_contracts - whitelist of contract addresses the agent can interact with
- allowed_functions - whitelist of function selectors
- spending_limit - rolling, time-windowed cap per token (e.g., 1000 USDC/day)
- rate_limit - max transactions per time window, tracked cross-session
- expires_at - hard expiry timestamp
- custom - pluggable policy contracts for specialized logic
3. Agent transacts
The agent signs a transaction. The smart account routes it through the validator and the hook: If any policy is violated, the transaction reverts. The agent’s funds stay safe. No fee is charged for blocked transactions.4. Developer monitors
The dashboard reads onchain state and indexed events to show:- Current spending against limits
- Rate limit usage
- Full transaction history with policy results
- Blocked transaction attempts