The two-key model
Enact separates your root account from per-agent access keys:.env. Have hard spending limits enforced at the protocol level by Tempo’s Account Keychain precompile.
What if an access key is compromised?
An attacker with yourAGENT_PRIVATE_KEY can only:
- Spend up to the remaining limit on that key
- Make token transfers up to the spending cap
- Access your root wallet
- Create new sessions or authorize new keys
- Exceed the on-chain spending cap
- Spend tokens not included in the session’s token limits
Revocation
Revoke a session from the Enact dashboard or CLI. This callsrevokeKey() on the Account Keychain precompile, immediately invalidating the key on-chain.
Once revoked, any transaction signed by that key is rejected at the protocol level — no further action required.
Spending limit enforcement
Limits are enforced by Tempo’s Account Keychain precompile at0xaAAAaaAA00000000000000000000000000000000. This is a protocol-level contract — it cannot be bypassed by the access key holder. The root account sets the limit; the access key can only spend up to that amount per token.
For production deployments, always set conservative spending limits. You can create new sessions with higher limits — you cannot undo a payment already made.