|
| 1 | +# Talos scheduled actions |
| 2 | + |
| 3 | +Hardhat tasks the Talos runner (`contracts/runner.ts` → `@talos/client`) runs on |
| 4 | +a cron schedule, or on demand via the "Run now" button in the Talos admin UI. |
| 5 | +Each action is defined in [`tasks/actions/<name>.ts`](../tasks/actions); the |
| 6 | +canonical schedule — cron, enabled state, and per-row operational notes — lives |
| 7 | +in [`migrations/seed_schedules.sql`](../migrations/seed_schedules.sql). See |
| 8 | +[Automated Actions (Talos)](../README.md#automated-actions-talos) for how the |
| 9 | +runner works. |
| 10 | + |
| 11 | +> **Keep in sync** (see [`CLAUDE.md`](../../CLAUDE.md)): update this file whenever |
| 12 | +> a scheduled action is added, removed, or its behaviour changes. |
| 13 | +
|
| 14 | +Cron times are UTC. Enable state and operational caveats (e.g. "do not enable", |
| 15 | +`permissioned`) are managed in `seed_schedules.sql`, not here. |
| 16 | + |
| 17 | +## OToken rebases |
| 18 | + |
| 19 | +| Action | Network | Cron | Description | |
| 20 | +| ---------------------- | ------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | |
| 21 | +| `otokenOusdRebase` | mainnet | `45 11,23 * * *` | Rebase OUSD on mainnet | |
| 22 | +| `otokenOethRebase` | mainnet | `45 11,23 * * *` | Collect the OETH dripper and rebase OETH on mainnet | |
| 23 | +| `otokenOusdOethRebase` | mainnet | `45 11,23 * * *` | Collect OETH and rebase OUSD on mainnet | |
| 24 | +| `otokenOsRebase` | sonic | `45 11,23 * * *` | Collect the OS dripper and rebase OS on Sonic | |
| 25 | +| `otokenOethbRebase` | base | `25 9,21 * * *` | Rebase the OETHb vault on Base | |
| 26 | +| `permissionedRebase` | mainnet | `15 10,22 * * *` | Collect fixed-rate drippers, then `permissionedRebase()` every managed vault via the Safe module (unpause → rebase → re-pause atomically) | |
| 27 | +| `permissionedRebase` | base | `15 10,22 * * *` | As above, on Base | |
| 28 | +| `permissionedRebase` | sonic | `15 10,22 * * *` | As above, on Sonic | |
| 29 | + |
| 30 | +## OToken operations |
| 31 | + |
| 32 | +| Action | Network | Cron | Description | |
| 33 | +| ----------------------------------- | ------- | ---------------- | ----------------------------------------------------------------------- | |
| 34 | +| `otokenOsCollectAndRelease` | sonic | `55 23 * * *` | Rebase the OS vault and harvest on Sonic | |
| 35 | +| `otokenOusdAutoWithdrawal` | mainnet | `35 11,23 * * *` | Auto-process OUSD withdrawals via the AutoWithdrawalModule | |
| 36 | +| `otokenAddWithdrawalQueueLiquidity` | mainnet | `20 0 * * *` | Call `addWithdrawalQueueLiquidity` on every OToken vault on the network | |
| 37 | +| `otokenAddWithdrawalQueueLiquidity` | base | `30 0 * * *` | As above, on Base | |
| 38 | +| `otokenAddWithdrawalQueueLiquidity` | sonic | `35 0 * * *` | As above, on Sonic | |
| 39 | +| `otokenAddWithdrawalQueueLiquidity` | plume | `25 0 * * *` | As above, on Plume | |
| 40 | +| `otokenOethbUpdateWoethPrice` | base | `30 21 * * *` | Update the wOETH oracle price on the Base BridgedWOETHStrategy | |
| 41 | +| `otokenOethbHarvest` | base | `55 11 * * *` | Harvest strategies on Base OETHb | |
| 42 | +| `otokenOsSonicRestakeRewards` | sonic | `52 22 * * *` | Restake rewards for Sonic validators | |
| 43 | + |
| 44 | +## Native staking (Ethereum validators) |
| 45 | + |
| 46 | +| Action | Network | Cron | Description | |
| 47 | +| -------------------------- | ------- | ---------------- | --------------------------------------------------------------------------------------------------- | |
| 48 | +| `harvest` | mainnet | `25 11,23 * * *` | Harvest and swap rewards from native staking strategies | |
| 49 | +| `doAccounting` | mainnet | `30 23 * * *` | Account for consensus rewards and validator exits in the Native Staking Strategy | |
| 50 | +| `snapBalances` | mainnet | `2 0 * * *` | Take a snapshot of the staking strategy's balance | |
| 51 | +| `verifyBalances` | mainnet | `6 0 * * *` | Verify validator balances on the Beacon chain | |
| 52 | +| `verifyDeposits` | mainnet | `11 */4 * * *` | Verify any processed deposit on the Beacon chain | |
| 53 | +| `autoValidatorDeposits` | mainnet | `14 1 * * *` | Deposit WETH to under-funded validators (withdrawing from the strategy first if the Vault needs it) | |
| 54 | +| `autoValidatorWithdrawals` | mainnet | `24 1 * * *` | Withdraw ETH from validators when the Vault needs WETH for user withdrawals | |
| 55 | + |
| 56 | +## Sonic staking |
| 57 | + |
| 58 | +| Action | Network | Cron | Description | |
| 59 | +| ----------------------- | ------- | -------------------- | ---------------------------------------------------------- | |
| 60 | +| `sonicUndelegate` | sonic | `35 3,9,15,21 * * *` | Remove liquidity from a Sonic validator (request withdraw) | |
| 61 | +| `sonicClaimWithdrawals` | sonic | `58 */2 * * *` | Withdraw native S from a previously undelegated validator | |
| 62 | + |
| 63 | +## Cross-chain |
| 64 | + |
| 65 | +| Action | Network | Cron | Description | |
| 66 | +| --------------------------------- | -------- | ----------------------- | ---------------------------------------------------------------------------------------------------- | |
| 67 | +| `crossChainBalanceUpdateBase` | base | `40 7,15,23 * * *` | Send a cross-chain balance update from Base | |
| 68 | +| `crossChainBalanceUpdateHyperevm` | hyperevm | `50 7,15,23 * * *` | Send a cross-chain balance update from HyperEVM | |
| 69 | +| `relayCCTPMessage` | base | `27 2,8,14,20 * * *` | Fetch CCTP-attested messages via the Circle Gateway API and relay to the integrator (Base → mainnet) | |
| 70 | +| `relayCCTPMessage` | mainnet | `43 4,10,16,22 * * *` | As above (mainnet → Base) | |
| 71 | +| `crossChainRelayHyperEVM` | hyperevm | `17 1,6,11,16,21 * * *` | Relay CCTP bridge transactions between mainnet and HyperEVM (HyperEVM → mainnet) | |
| 72 | +| `crossChainRelayHyperEVM` | mainnet | `7 3,8,13,18,23 * * *` | As above (mainnet → HyperEVM) | |
| 73 | + |
| 74 | +## Rewards & bribes |
| 75 | + |
| 76 | +| Action | Network | Cron | Description | |
| 77 | +| --------------------------- | ----------- | ------------- | ----------------------------------------------------------------------------------------------- | |
| 78 | +| `manageMerklBribes` | mainnet | `30 13 * * 3` | Call `bribeAll` on the MerklPoolBoosterBribesModule via the Gnosis Safe | |
| 79 | +| `manageMerklBribes` | base | `35 13 * * 3` | As above, on Base | |
| 80 | +| `manageBribes` | mainnet | `30 09 * * 5` | `manageBribes` on the CurvePoolBoosterBribesModule; sizes rewards-per-vote by target efficiency | |
| 81 | +| `claimBribes` | base | `30 10 * * 4` | Claim bribes from Aerodrome veNFT lockers on Base | |
| 82 | +| `updateVotemarketEpochs` | arbitrumOne | `0 6 * * 5` | Update Votemarket epochs for all Curve Pool Booster campaigns on Arbitrum | |
| 83 | +| `ognClaimAndForwardRewards` | mainnet | `50 0 * * 2` | Claim and forward OGN rewards from all modules | |
| 84 | +| `claimSSVRewards` | mainnet | `45 0 1 * *` | Claim SSV rewards and forward the claimed SSV | |
| 85 | +| `managePassThrough` | mainnet | `30 12 * * 0` | Transfer tokens via the pass-through mechanism | |
| 86 | + |
| 87 | +## System |
| 88 | + |
| 89 | +| Action | Network | Cron | Description | |
| 90 | +| ------------- | ------- | ------------- | --------------------------------------------------------------- | |
| 91 | +| `healthcheck` | mainnet | `*/5 * * * *` | Verify the action execution pipeline (signer, network, logging) | |
| 92 | + |
| 93 | +## Manual / on-demand — mainnet |
| 94 | + |
| 95 | +Dispatched via "Run now"; params are edited into the schedule's command before |
| 96 | +each run (see notes in `seed_schedules.sql`). |
| 97 | + |
| 98 | +| Action | Description | |
| 99 | +| ---------------------------- | ------------------------------------------------------------------------------------ | |
| 100 | +| `stakeValidator` | Convert WETH to ETH and deposit to a validator from the Compounding Staking Strategy | |
| 101 | +| `removeValidator` | Remove a registered or exited compounding validator from the SSV cluster | |
| 102 | +| `ousdRebalancer` | Plan and execute OUSD strategy rebalancing via the RebalancerModule | |
| 103 | +| `queueGovernorSixProposal` | Queue a GovernorSix proposal (`--propid`) | |
| 104 | +| `executeGovernorSixProposal` | Execute a GovernorSix proposal (`--propid`) | |
0 commit comments