FAQ: Web3 Actions
What's the difference between parallel and sequential execution?
During configuration of your Web3 Action, you can choose between the two modes of execution.
When there’s several triggered Web3 Actions (e.g. transactions from the same block), these two modes behave in the following way:
- sequential: execution will respect the order in which the triggers have happened; until completion of trigger
N-1
, triggerN
is awaiting for execution. The order of execution is guaranteed. - parallel: all triggers will be submitted for execution, and the execution order can not be guaranteed.
Different rate limits apply.
What’s the difference between WRITE, COPY ON WRITE, and EMPTY storage types?
- Write: This type is selected by default. It’s always used in automatic triggers and writes data on the main storage. Please note that this type can potentially overwrite data on the main storage.
- Copy on write: This type creates a copy of the main storage as temporary storage. It can be selected for manual triggers. Once a trigger stops running, everything that was written in the temporary storage won’t be saved.
- Empty: This type creates temporary empty storage. It can be selected for manual triggers. The empty storage type doesn’t have any reference to the main storage. Once a trigger stops running, everything that was written on this type of storage will disappear.
Do contracts need to be verified to be used in Web3 Actions?
Yes, contracts need to be verified and added to your project on Tenderly to be used in Web3 Action triggers. Otherwise, the CLI will throw a warning.
Learn more about triggers and how they work here.
What's the rate limit for Web3 Actions?
The standard rate limit in 5-minute window is:
- 500 for sequential Web3 Actions
- 2000 for parallel Web3 Actions
For custom rate limit reach out to support.
What is the execution timeout for Web3 Actions?
The current execution timeout is 20s, after which the execution will be terminated. If more time is needed, you can contact our support team to discuss your use case. Get more information on the execution status types.
I have a `tenderly.yaml` file with two Web3 Actions with the same trigger (a certain contract event). Will the first action declared in the manifest file always be invoked before the second one?
Two separate Web3 Actions with the same trigger are executed in parallel since they’re isolated entities unaware of one another.
How do Web3 Actions interact with blockchain data?
Web3 Actions can interact with blockchain data by reading blocks, transactions, and logs, enabling smart contract monitoring. Example:
const { ethers } = require("ethers");
const provider = new ethers.providers.JsonRpcProvider(RPC_URL);
const latestBlock = await provider.getBlockNumber();