Automations
Triggers
Time based

How to use the time-based trigger

The time-based trigger is a trigger that is executed at a specific time or at a specific interval. This trigger is useful when you want to automate a specific action on a schedule, such as once every week.

Create the automations client

First, create an instance of the Automations client:

import { createAutomationClient } from '@rhinestone/automations-sdk'
 
const automationClient = createAutomationClient({
  account: '0x...',
  accountType: 'SAFE', // 'SAFE', 'KERNEL',
  apiKey: 'YOUR_API_KEY',
  accountInitCode: '0x',
  network: 11155111,
  validator: '0x...',
})

Create the automation details

Next, create the automation details:

const actions = [
  {
    type: 'static',
    target: '0x503b54Ed1E62365F0c9e4caF1479623b08acbe77',
    value: 100,
    callData: '0x',
  },
]
 
const maxNumberOfExecutions = 10

Here, the actions are an array of actions to make on behalf of the account. They can either be static, in which case all the calldata is pre-defined, or dynamic, in which case the calldata is generated by a call to a calldata builder service. The maxNumberOfExecutions is the number of times the automation will be executed.

Create the time based trigger details

Next, create the time based trigger details:

const triggerData = {
  cronExpression: '*/60 * * * * *',
  startDate: new Date().getTime(),
}

Here, the cronExpression is a cron expression that defines the schedule for the automation. The startDate is the start date for the automation.

Create the automation

Finally, create the automation:

const automation = await automationClient.createAutomation({
  type: 'time-based',
  data: {
    trigger: {
      triggerData,
    },
    actions,
    maxNumberOfExecutions,
  },
})