Activation
An Instruction’s first execution (a.k.a. activation) is special because certain validity conditions are checked at this time that don’t need to be checked for subsequent executions. Since Instructions are immutable and designed to be executed more than once, we can get a lot out of the way during activation. For example, the user’s signature is only validated during activation. The scheduling and validity of subsequent executions depend entirely on the Instruction scheduling parameters, the application logic of the Action contract, and the Action arguments. Because of this, users get recurring executions with just one signature.
Execution
After activation, an Instruction can only be executed when the scheduling parameters and Action application logic allow. The user’s signature does not need to be checked for subsequent executions because they have already committed to the execution dynamics defined in the Instruction. This means subsequent executions can be submitted by the Otim Executor in a strictly defined way without the user’s ongoing attention and intervention.
Deactivation
While each Instruction’s execution dynamics are strictly defined on-chain, a user may decide to deactivate an Instruction before its natural completion. For example, say Alice wants to automate her rent payments so she creates a simpleTransfer Instruction that automatically sends $1000 USDC to her landlord every month for the remainder of her lease. A few months down the line, Alice decides to break her lease and move into a new apartment. In this case, Alice should deactivate her Transfer Instruction before its natural end to stop paying her former landlord.
