Understanding Policies and Commitments
Policies address a timing problem that affects interactions between offchain infrastructure and blockchain applications. They function as an enhanced approval mechanism that provides automated systems with reliable access to committed shMON.
The Problem Policies Solve
Consider an automated service that executes trades or manages positions for a user. The service examines blockchain state in block N to verify the user's balance, creates a transaction that includes a charge to the user for execution services, and then submits the transaction to the blockchain. By the time that transaction executes (often in block N+2 or later), the user could have already transferred their tokens away and left the service with no recourse.
Traditional token approvals don't solve this—you can revoke them at any time, leaving automated services unable to rely on your balance being available when their transaction finally processes.
What Policies Are
A policy is a commitment mechanism in which you lock shMON tokens into a "committed" state for a specific policy.
Important limitations to understand:
-
The default yield is unchanged: Committed shMON earns exactly the same rewards as uncommitted shMON. The commitment only changes who can spend the tokens—not how they earn.
-
Illiquidity: Committed shMON cannot be traded, transferred, lent, or used in DeFi protocols by the user. The tokens sit in a special balance controlled by the policy. Note that the policy agent may has atomic access to the committed balance and may bypass the illiquidity constraint while acting on the user's behalf.
-
Withdrawal delay: When you want your tokens back, you must request an uncommitment and wait through an escrow period (defined by the policy). The only way to reclaim your tokens before the end of the waiting period is if the agent transfers them to you.
How Commitments Work
A commitment functions as an irrevocable approval mechanism with a mandatory delay period:
-
Committing: You move shMON from your normal balance into a policy-specific committed balance. You specify which policy and how much to commit.
-
Agent access: The policy's designated agent(s) can now spend your committed shMON. They could use it to pay for services, execute trades on your behalf, or fulfill other obligations—all according to the policy's rules.
-
Uncommitting: When you want your tokens back:
- First, you request an uncommitment
- Your tokens move into an "uncommitting" state
- After the policy's escrow duration expires, you complete the uncommitment
- Your tokens return to your normal, liquid balance
The escrow duration ensures agents have time to rely on committed balances before they can be withdrawn.
Top-Up Mechanism
Sometimes you want to maintain a minimum committed balance automatically. The top-up system handles this:
Configuration: You set three parameters:
- Minimum committed balance: The floor you want to maintain
- Maximum top-up per period: How much can be automatically committed in each period
- Top-up period duration: How often the period resets
When a policy agent spends from your committed balance and you'd drop below your minimum, the system automatically:
- First, pulls from any tokens you have in the "uncommitting" state
- Then, pulls from your normal uncommitted balance (up to the period's limit)
- Emits events so you can track these automatic commitments
Use cases: This is useful if you run automated strategies that need guaranteed collateral. You ensure the agent always has at least your minimum amount available, while still capping how much can be auto-committed in each period to maintain control.
Why Use Policies?
Policies enable reliable automation. Services like MEV protection, ERC-4337 bundlers, intent executors, or payment routers can confidently build transactions knowing your committed balance will still be there to make them whole when the transaction processes.
The trade-off: You sacrifice immediate liquidity and control in exchange for enabling services that require guaranteed access to your funds. Always review a policy's escrow duration before committing—long escrow periods can make it difficult to quickly access your tokens if plans change.
Remember: Unless it is explicitly stated otherwise, committing doesn't change your earnings—committed shMON earns the same rewards as uncommitted shMON. The commitment only affects liquidity and control.