Gelato Web3 Functions shut down. Here’s how to port yours
Description and use
Gelato Web3 Functions were shut down on March 31 2026. Migrating the task to Thyme Flow involves replacing the entry point, provider, field name, and secret access. The logic stays the same, but now uses defineTask, ctx.client, and calls.
Problem
Gelato ended Web3 Functions on March 31 2026, stopping all tasks, triggers, and logs that depended on its executor.
Outcome
The migration preserves the original decision logic and API calls while adapting to Thyme Flow’s API and tooling. Validation, storage, and secret handling are streamlined, and the task can be tested and deployed with Thyme’s CLI.
Workflow
- 1. Replace
Web3Function.onRunwithdefineTask({schema, run}). - 2. Switch provider from
multiChainProvider.default()toctx.client(viem client). - 3. Rename
callDatatocalls. - 4. Update secret access from
secrets.get('KEY')toctx.secrets.KEY. - 5. Adjust storage access from
storage.get/settoctx.storage.key. - 6. Update test and deploy commands from
npx w3ftothyme runandthyme upload. - 7. Verify the task runs and returns the same
callsarray.
Evidence
Gelato ended Web3 Functions and Automate on March 31 2026. Every task created there stopped: the triggers, the recurring jobs, the logs.
The entry point: Web3Function.onRun(...) becomes defineTask({ schema, run }).
The provider: ethers via multiChainProvider becomes ctx.client, a read-only viem client.
One field name: callData becomes calls.
Same check, same API call, same call returned.
- Record date: 2026-10-19T09:56:00.382Z