# Block Web3 Action
curl 'https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/actions/publishFile' \
-H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \
-H 'content-type: application/json' \
--data-raw $'{"action":{"name":"block-action","description":"Triggers on every 10th block on ETH Mainnet and Polygon.","source":"// Do not change function name.\\nconst actionFn = async (context, blockEvent) => {\\n console.log(blockEvent)\\n\\n // To access project\'s secret\\n // let secret = await context.secrets.get(\'MY-SECRET\')\\n\\n // To access project\'s storage\\n // let value = await context.storage.getStr(\'MY-KEY\')\\n // await context.storage.putStr(\'MY-KEY\', \'MY-VALUE\')\\n\\n // Your logic goes here :)\\n}\\n// Do not change this.\\nmodule.exports = { actionFn }","triggerType":"BLOCK","runtime":"V2","function":"actionFn","invocationType":"ASYNC","trigger":{"type":"block","block":{"network":["1","137"],"blocks":10}}},"deploy":true}' \
--compressed
# Periodic Web3 Action
curl 'https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/actions/publishFile' \
-H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \
-H 'content-type: application/json' \
--data-raw $'{"action":{"name":"periodic-1hour","description":"CRON job triggered every 1 hour","source":"// Do not change function name.\\nconst actionFn = async (context, periodicEvent) => {\\n console.log(periodicEvent)\\n\\n // To access project\'s secret\\n // let secret = await context.secrets.get(\'MY-SECRET\')\\n\\n // To access project\'s storage\\n // let value = await context.storage.getStr(\'MY-KEY\')\\n // await context.storage.putStr(\'MY-KEY\', \'MY-VALUE\')\\n\\n // Your logic goes here :)\\n}\\n// Do not change this.\\nmodule.exports = { actionFn }","triggerType":"PERIODIC","runtime":"V2","function":"actionFn","invocationType":"ASYNC","trigger":{"type":"periodic","periodic":{"cron":"0 * * * *","interval":"1h"}}},"deploy":true}' \
--compressed
# Webhook Web3 Action
curl 'https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/actions/publishFile' \
-H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \
-H 'content-type: application/json' \
--data-raw $'{"action":{"name":"webhook-action","description":"Non-authenticated webhook action. You will be able to make a request without using a valid Tenderly token.","source":"// Do not change function name.\\nconst actionFn = async (context, webhookEvent) => {\\n console.log(webhookEvent)\\n\\n // To access project\'s secret\\n // let secret = await context.secrets.get(\'MY-SECRET\')\\n\\n // To access project\'s storage\\n // let value = await context.storage.getStr(\'MY-KEY\')\\n // await context.storage.putStr(\'MY-KEY\', \'MY-VALUE\')\\n\\n // Your logic goes here :)\\n}\\n// Do not change this.\\nmodule.exports = { actionFn }","triggerType":"WEBHOOK","runtime":"V2","function":"actionFn","invocationType":"ASYNC","trigger":{"type":"webhook","webhook":{"authenticated":false}}},"deploy":true}' \
--compressed
const options = {
method: 'POST',
headers: {'X-Access-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
action: {
name: 'block-action',
description: 'Triggers on every 10th block on ETH Mainnet and Polygon.',
source: '// Do not change function name.\nconst actionFn = async (context, blockEvent) => {\n console.log(blockEvent)\n\n // To access project\'s secret\n // let secret = await context.secrets.get(\'MY-SECRET\')\n\n // To access project\'s storage\n // let value = await context.storage.getStr(\'MY-KEY\')\n // await context.storage.putStr(\'MY-KEY\', \'MY-VALUE\')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }',
triggerType: 'BLOCK',
runtime: 'V2',
function: 'actionFn',
invocationType: 'ASYNC',
trigger: {type: 'block', block: {network: ['1', '137'], blocks: 10}}
},
deploy: true
})
};
fetch('https://api.tenderly.co/api/v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
import requests
url = "https://api.tenderly.co/api/v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile"
payload = {
"action": {
"name": "block-action",
"description": "Triggers on every 10th block on ETH Mainnet and Polygon.",
"source": "// Do not change function name.
const actionFn = async (context, blockEvent) => {
console.log(blockEvent)
// To access project's secret
// let secret = await context.secrets.get('MY-SECRET')
// To access project's storage
// let value = await context.storage.getStr('MY-KEY')
// await context.storage.putStr('MY-KEY', 'MY-VALUE')
// Your logic goes here :)
}
// Do not change this.
module.exports = { actionFn }",
"triggerType": "BLOCK",
"runtime": "V2",
"function": "actionFn",
"invocationType": "ASYNC",
"trigger": {
"type": "block",
"block": {
"network": ["1", "137"],
"blocks": 10
}
}
},
"deploy": True
}
headers = {
"X-Access-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.tenderly.co/api/v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile"
payload := strings.NewReader("{\n \"action\": {\n \"name\": \"block-action\",\n \"description\": \"Triggers on every 10th block on ETH Mainnet and Polygon.\",\n \"source\": \"// Do not change function name.\\nconst actionFn = async (context, blockEvent) => {\\n console.log(blockEvent)\\n\\n // To access project's secret\\n // let secret = await context.secrets.get('MY-SECRET')\\n\\n // To access project's storage\\n // let value = await context.storage.getStr('MY-KEY')\\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\\n\\n // Your logic goes here :)\\n}\\n// Do not change this.\\nmodule.exports = { actionFn }\",\n \"triggerType\": \"BLOCK\",\n \"runtime\": \"V2\",\n \"function\": \"actionFn\",\n \"invocationType\": \"ASYNC\",\n \"trigger\": {\n \"type\": \"block\",\n \"block\": {\n \"network\": [\n \"1\",\n \"137\"\n ],\n \"blocks\": 10\n }\n }\n },\n \"deploy\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Access-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
{
"actions": {
"block-action": {
"id": "349cbb00-64ad-47ec-bbcb-40bffa28559f",
"index": 1,
"actionId": "53712e55-eb77-4ce3-9140-685fd230396a",
"parentActionId": "",
"runtime": "V2",
"function": "implementation:actionFn",
"triggerType": "BLOCK",
"trigger": {
"type": "block",
"block": {
"network": [
"1",
"137"
],
"blocks": 10
}
},
"commitish": null,
"source": "// Do not change function name.\nconst actionFn = async (context, blockEvent) => {\n console.log(blockEvent)\n\n // To access project's secret\n // let secret = await context.secrets.get('MY-SECRET')\n\n // To access project's storage\n // let value = await context.storage.getStr('MY-KEY')\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }",
"createdAt": "2023-12-14T18:47:19.26565Z",
"deployRequested": true,
"deployError": null,
"invocationType": "ASYNC"
}
}
}
{
"error": {
"id": "596b1dc7-af60-477b-aab3-6c93eb92ddfa",
"slug": "resource_not_found",
"message": "The resource you requested could not be found."
}
}
Create a Web3 Action via the API with its trigger and function code, optionally deploying it, and see which payload errors return a 400.
POST
/
v1
/
account
/
{accountSlug}
/
project
/
{projectSlug}
/
actions
/
publishFile
cURL
# Block Web3 Action
curl 'https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/actions/publishFile' \
-H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \
-H 'content-type: application/json' \
--data-raw $'{"action":{"name":"block-action","description":"Triggers on every 10th block on ETH Mainnet and Polygon.","source":"// Do not change function name.\\nconst actionFn = async (context, blockEvent) => {\\n console.log(blockEvent)\\n\\n // To access project\'s secret\\n // let secret = await context.secrets.get(\'MY-SECRET\')\\n\\n // To access project\'s storage\\n // let value = await context.storage.getStr(\'MY-KEY\')\\n // await context.storage.putStr(\'MY-KEY\', \'MY-VALUE\')\\n\\n // Your logic goes here :)\\n}\\n// Do not change this.\\nmodule.exports = { actionFn }","triggerType":"BLOCK","runtime":"V2","function":"actionFn","invocationType":"ASYNC","trigger":{"type":"block","block":{"network":["1","137"],"blocks":10}}},"deploy":true}' \
--compressed
# Periodic Web3 Action
curl 'https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/actions/publishFile' \
-H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \
-H 'content-type: application/json' \
--data-raw $'{"action":{"name":"periodic-1hour","description":"CRON job triggered every 1 hour","source":"// Do not change function name.\\nconst actionFn = async (context, periodicEvent) => {\\n console.log(periodicEvent)\\n\\n // To access project\'s secret\\n // let secret = await context.secrets.get(\'MY-SECRET\')\\n\\n // To access project\'s storage\\n // let value = await context.storage.getStr(\'MY-KEY\')\\n // await context.storage.putStr(\'MY-KEY\', \'MY-VALUE\')\\n\\n // Your logic goes here :)\\n}\\n// Do not change this.\\nmodule.exports = { actionFn }","triggerType":"PERIODIC","runtime":"V2","function":"actionFn","invocationType":"ASYNC","trigger":{"type":"periodic","periodic":{"cron":"0 * * * *","interval":"1h"}}},"deploy":true}' \
--compressed
# Webhook Web3 Action
curl 'https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/actions/publishFile' \
-H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \
-H 'content-type: application/json' \
--data-raw $'{"action":{"name":"webhook-action","description":"Non-authenticated webhook action. You will be able to make a request without using a valid Tenderly token.","source":"// Do not change function name.\\nconst actionFn = async (context, webhookEvent) => {\\n console.log(webhookEvent)\\n\\n // To access project\'s secret\\n // let secret = await context.secrets.get(\'MY-SECRET\')\\n\\n // To access project\'s storage\\n // let value = await context.storage.getStr(\'MY-KEY\')\\n // await context.storage.putStr(\'MY-KEY\', \'MY-VALUE\')\\n\\n // Your logic goes here :)\\n}\\n// Do not change this.\\nmodule.exports = { actionFn }","triggerType":"WEBHOOK","runtime":"V2","function":"actionFn","invocationType":"ASYNC","trigger":{"type":"webhook","webhook":{"authenticated":false}}},"deploy":true}' \
--compressed
const options = {
method: 'POST',
headers: {'X-Access-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
action: {
name: 'block-action',
description: 'Triggers on every 10th block on ETH Mainnet and Polygon.',
source: '// Do not change function name.\nconst actionFn = async (context, blockEvent) => {\n console.log(blockEvent)\n\n // To access project\'s secret\n // let secret = await context.secrets.get(\'MY-SECRET\')\n\n // To access project\'s storage\n // let value = await context.storage.getStr(\'MY-KEY\')\n // await context.storage.putStr(\'MY-KEY\', \'MY-VALUE\')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }',
triggerType: 'BLOCK',
runtime: 'V2',
function: 'actionFn',
invocationType: 'ASYNC',
trigger: {type: 'block', block: {network: ['1', '137'], blocks: 10}}
},
deploy: true
})
};
fetch('https://api.tenderly.co/api/v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
import requests
url = "https://api.tenderly.co/api/v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile"
payload = {
"action": {
"name": "block-action",
"description": "Triggers on every 10th block on ETH Mainnet and Polygon.",
"source": "// Do not change function name.
const actionFn = async (context, blockEvent) => {
console.log(blockEvent)
// To access project's secret
// let secret = await context.secrets.get('MY-SECRET')
// To access project's storage
// let value = await context.storage.getStr('MY-KEY')
// await context.storage.putStr('MY-KEY', 'MY-VALUE')
// Your logic goes here :)
}
// Do not change this.
module.exports = { actionFn }",
"triggerType": "BLOCK",
"runtime": "V2",
"function": "actionFn",
"invocationType": "ASYNC",
"trigger": {
"type": "block",
"block": {
"network": ["1", "137"],
"blocks": 10
}
}
},
"deploy": True
}
headers = {
"X-Access-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.tenderly.co/api/v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile"
payload := strings.NewReader("{\n \"action\": {\n \"name\": \"block-action\",\n \"description\": \"Triggers on every 10th block on ETH Mainnet and Polygon.\",\n \"source\": \"// Do not change function name.\\nconst actionFn = async (context, blockEvent) => {\\n console.log(blockEvent)\\n\\n // To access project's secret\\n // let secret = await context.secrets.get('MY-SECRET')\\n\\n // To access project's storage\\n // let value = await context.storage.getStr('MY-KEY')\\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\\n\\n // Your logic goes here :)\\n}\\n// Do not change this.\\nmodule.exports = { actionFn }\",\n \"triggerType\": \"BLOCK\",\n \"runtime\": \"V2\",\n \"function\": \"actionFn\",\n \"invocationType\": \"ASYNC\",\n \"trigger\": {\n \"type\": \"block\",\n \"block\": {\n \"network\": [\n \"1\",\n \"137\"\n ],\n \"blocks\": 10\n }\n }\n },\n \"deploy\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Access-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
{
"actions": {
"block-action": {
"id": "349cbb00-64ad-47ec-bbcb-40bffa28559f",
"index": 1,
"actionId": "53712e55-eb77-4ce3-9140-685fd230396a",
"parentActionId": "",
"runtime": "V2",
"function": "implementation:actionFn",
"triggerType": "BLOCK",
"trigger": {
"type": "block",
"block": {
"network": [
"1",
"137"
],
"blocks": 10
}
},
"commitish": null,
"source": "// Do not change function name.\nconst actionFn = async (context, blockEvent) => {\n console.log(blockEvent)\n\n // To access project's secret\n // let secret = await context.secrets.get('MY-SECRET')\n\n // To access project's storage\n // let value = await context.storage.getStr('MY-KEY')\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }",
"createdAt": "2023-12-14T18:47:19.26565Z",
"deployRequested": true,
"deployError": null,
"invocationType": "ASYNC"
}
}
}
{
"error": {
"id": "596b1dc7-af60-477b-aab3-6c93eb92ddfa",
"slug": "resource_not_found",
"message": "The resource you requested could not be found."
}
}
An object with details about created Web3 Action of Block type.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Tenderly","description":"Tenderly developer documentation — Virtual Environments, Node RPC, Simulation API, Debugger, Monitor, Alerts, Web3 Actions, and more.","colors":{"primary":"#7857FF","light":"#9B83FF","dark":"#7857FF"},"logo":{"light":"https://mintcdn.com/tenderly/OpA99rKrR1G10AGk/logo/tenderly-logo-light-background.svg?fit=max\u0026auto=format\u0026n=OpA99rKrR1G10AGk\u0026q=85\u0026s=8655a53ac5f0fdc1af7c82f4e2e270ef","dark":"https://mintcdn.com/tenderly/OpA99rKrR1G10AGk/logo/tenderly-logo-dark-background.svg?fit=max\u0026auto=format\u0026n=OpA99rKrR1G10AGk\u0026q=85\u0026s=17e892ea6a8bbd3f67e2055373d36609","href":"/introduction"},"favicon":"https://mintcdn.com/tenderly/nRyi0uSIGTr6AMxX/favicon.ico?fit=max\u0026auto=format\u0026n=nRyi0uSIGTr6AMxX\u0026q=85\u0026s=6a58780606747ae9bd8a65444d16422d","api":{"playground":{"display":"interactive","proxy":false},"examples":{"defaults":"required","languages":["curl","javascript","python","go"]}},"appearance":{"default":"dark"},"navbar":{"links":[{"href":"https://blog.tenderly.co","label":"Blog"},{"href":"mailto:support@tenderly.co","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.tenderly.co"}},"footer":{"socials":{"x":"https://x.com/TenderlyApp","github":"https://github.com/Tenderly","linkedin":"https://www.linkedin.com/company/tenderly-co"}},"search":{"prompt":"Search the Tenderly docs..."},"styling":{"codeblocks":{"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}},"latex":true},"contextual":{"options":["copy","view","assistant","claude","chatgpt","perplexity","cursor","vscode","mcp",{"title":"Add to Claude Code","description":"Connect the Tenderly MCP server to Claude Code","icon":"terminal","href":"https://docs.tenderly.co/ai-tools/quickstart"}],"display":"header"},"navigation":{"languages":[{"language":"en","href":"introduction"},{"language":"ru","href":"ru/introduction"},{"language":"zh","href":"zh/introduction"},{"language":"hi","href":"hi/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tenderly","hasAudioNarration":false,"actualSubdomain":"tenderly","customDomains":["docs.tenderly.co"],"gitSource":{"type":"github","owner":"tenderly","repo":"tenderly-mintlify","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae1e31a57e72f17a84b4ba3","collectionId":"fefd9149-eb57-499a-b83e-d9871afb81aa","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae1e31a57e72f17a84b4ba3"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"}},"buildId":"6ae1e31a57e72f17a84b4ba3","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"en","tag":"Documentation","count":171},{"language":"hi","tag":"Documentation","count":163},{"language":"ru","tag":"Documentation","count":163},{"language":"zh","tag":"Documentation","count":163},{"language":"en","tag":"Simulator","count":73},{"language":"hi","tag":"Simulator","count":73},{"language":"ru","tag":"Simulator","count":73},{"language":"zh","tag":"Simulator","count":73},{"language":"default","tag":"API Reference","count":52},{"language":"en","tag":"Virtual Environments","count":41},{"language":"hi","tag":"Virtual Environments","count":41},{"language":"ru","tag":"Virtual Environments","count":41},{"language":"zh","tag":"Virtual Environments","count":41},{"language":"en","tag":"Monitor","count":30},{"language":"hi","tag":"Monitor","count":30},{"language":"ru","tag":"Monitor","count":30},{"language":"zh","tag":"Monitor","count":30},{"language":"en","tag":"Console","count":27},{"language":"en","tag":"How-to guides","count":27},{"language":"hi","tag":"Console","count":27},{"language":"hi","tag":"How-to guides","count":27},{"language":"ru","tag":"Console","count":27},{"language":"ru","tag":"How-to guides","count":27},{"language":"zh","tag":"Console","count":27},{"language":"zh","tag":"How-to guides","count":27},{"language":"en","tag":"Troubleshooting","count":22},{"language":"hi","tag":"Troubleshooting","count":22},{"language":"ru","tag":"Troubleshooting","count":22},{"language":"zh","tag":"Troubleshooting","count":22},{"language":"en","tag":"Web3 Actions","count":21},{"language":"en","tag":"Node RPC","count":21},{"language":"hi","tag":"Web3 Actions","count":21},{"language":"ru","tag":"Web3 Actions","count":21},{"language":"zh","tag":"Web3 Actions","count":21},{"language":"hi","tag":"Node RPC","count":20},{"language":"ru","tag":"Node RPC","count":20},{"language":"zh","tag":"Node RPC","count":20},{"language":"en","tag":"Simulation API","count":15},{"language":"hi","tag":"Simulation API","count":15},{"language":"ru","tag":"Simulation API","count":15},{"language":"zh","tag":"Simulation API","count":15},{"language":"default","tag":"Actions","count":10},{"language":"default","tag":"Simulator","count":9},{"language":"default","tag":"Virtual Environments","count":9},{"language":"default","tag":"Contracts","count":7},{"language":"default","tag":"Alerts","count":6},{"language":"default","tag":"Projects","count":5},{"language":"default","tag":"Wallets","count":3},{"language":"default","tag":"Delivery Channels","count":2},{"language":"default","tag":"Other","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@tenderly.co","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"html.dark .shiki,html.dark .shiki span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}html.dark .card .primary-text,html.dark .card .prose>div>h2,html.dark .card .prose>div>h3{color:#9b83ff}.card .prose>div>h2,.card .prose>div>h3{color:#7857ff}.card:has(.prose>div>h2) [data-component-part=card-content-container]{padding:1rem 1.25rem}html.dark .card:hover{border-color:#9b83ff!important;box-shadow:0 0 0 1px rgba(155,131,255,.25)}html:not(.dark) .card:hover{border-color:#7857ff!important;box-shadow:0 0 0 1px rgba(120,87,255,.18)}"}],"page":{"pagePath":"api-reference/actions/create-web3-action","slug":"/api-reference/actions/create-web3-action","pageMetadata":{"title":"Create Web3 Action","description":"Create a Web3 Action via the API with its trigger and function code, optionally deploying it, and see which payload errors return a 400.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile","href":"/api-reference/actions/create-web3-action","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create a Web3 Action via the API with its trigger and function code, optionally deploying it, and see which payload errors return a 400.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}},"config":{},"pageMetadata":{"title":"Create Web3 Action","description":"Create a Web3 Action via the API with its trigger and function code, optionally deploying it, and see which payload errors return a 400.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile","href":"/api-reference/actions/create-web3-action","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/tenderly/c16d2036c3e3945e/node-rpc/rpc-explorer.js","/_mintlify/custom/tenderly/4ac08fe7521414fc/platform/supported-networks.js","/_mintlify/custom/tenderly/896485a8a0369426/seo-schema.js","/_mintlify/custom/tenderly/072d16806bddf995/matomo.js"],"openApiReferenceData":{"operation":{"tags":["Actions"],"summary":"Create Web3 Action","x-mint":{"metadata":{"description":"Create a Web3 Action via the API with its trigger and function code, optionally deploying it, and see which payload errors return a 400."}},"description":"Create a Web3 Action via the API with its trigger and function code, optionally deploying it, and see which payload errors return a 400.","operationId":"createWeb3Action","parameters":["7a2c61a6-4b72-4257-b800-de31c05b7101","22037f59-134b-41c8-97c9-af45a6b5fb36"],"responses":{"200":"806da821-6c78-4668-9568-c09b42382776","400":"c2ccc74c-9968-4e0d-aef6-50a0328c83e9","401":"9f88e681-fb44-4776-b5cb-0b7a36ef53be","403":"86ef9924-1364-4ec3-85a7-6ee34cfcd2b0","404":"0e5a973c-fab4-4a2e-819e-ab8a24d5e042","429":"ab075aa2-62c2-42b1-9e72-b2e3666e6270","500":"459f25b7-b357-48d0-957c-3d29346b2dfd"},"requestBody":"d479921f-474d-476c-b826-96f27063c2b8","x-codeSamples":[{"lang":"cURL","source":"# Block Web3 Action\ncurl 'https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/actions/publishFile' \\\n -H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \\\n -H 'content-type: application/json' \\\n --data-raw $'{\"action\":{\"name\":\"block-action\",\"description\":\"Triggers on every 10th block on ETH Mainnet and Polygon.\",\"source\":\"// Do not change function name.\\\\nconst actionFn = async (context, blockEvent) => {\\\\n console.log(blockEvent)\\\\n\\\\n // To access project\\'s secret\\\\n // let secret = await context.secrets.get(\\'MY-SECRET\\')\\\\n\\\\n // To access project\\'s storage\\\\n // let value = await context.storage.getStr(\\'MY-KEY\\')\\\\n // await context.storage.putStr(\\'MY-KEY\\', \\'MY-VALUE\\')\\\\n\\\\n // Your logic goes here :)\\\\n}\\\\n// Do not change this.\\\\nmodule.exports = { actionFn }\",\"triggerType\":\"BLOCK\",\"runtime\":\"V2\",\"function\":\"actionFn\",\"invocationType\":\"ASYNC\",\"trigger\":{\"type\":\"block\",\"block\":{\"network\":[\"1\",\"137\"],\"blocks\":10}}},\"deploy\":true}' \\\n --compressed\n\n# Periodic Web3 Action\ncurl 'https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/actions/publishFile' \\\n -H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \\\n -H 'content-type: application/json' \\\n --data-raw $'{\"action\":{\"name\":\"periodic-1hour\",\"description\":\"CRON job triggered every 1 hour\",\"source\":\"// Do not change function name.\\\\nconst actionFn = async (context, periodicEvent) => {\\\\n console.log(periodicEvent)\\\\n\\\\n // To access project\\'s secret\\\\n // let secret = await context.secrets.get(\\'MY-SECRET\\')\\\\n\\\\n // To access project\\'s storage\\\\n // let value = await context.storage.getStr(\\'MY-KEY\\')\\\\n // await context.storage.putStr(\\'MY-KEY\\', \\'MY-VALUE\\')\\\\n\\\\n // Your logic goes here :)\\\\n}\\\\n// Do not change this.\\\\nmodule.exports = { actionFn }\",\"triggerType\":\"PERIODIC\",\"runtime\":\"V2\",\"function\":\"actionFn\",\"invocationType\":\"ASYNC\",\"trigger\":{\"type\":\"periodic\",\"periodic\":{\"cron\":\"0 * * * *\",\"interval\":\"1h\"}}},\"deploy\":true}' \\\n --compressed\n\n# Webhook Web3 Action\ncurl 'https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/actions/publishFile' \\\n -H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \\\n -H 'content-type: application/json' \\\n --data-raw $'{\"action\":{\"name\":\"webhook-action\",\"description\":\"Non-authenticated webhook action. You will be able to make a request without using a valid Tenderly token.\",\"source\":\"// Do not change function name.\\\\nconst actionFn = async (context, webhookEvent) => {\\\\n console.log(webhookEvent)\\\\n\\\\n // To access project\\'s secret\\\\n // let secret = await context.secrets.get(\\'MY-SECRET\\')\\\\n\\\\n // To access project\\'s storage\\\\n // let value = await context.storage.getStr(\\'MY-KEY\\')\\\\n // await context.storage.putStr(\\'MY-KEY\\', \\'MY-VALUE\\')\\\\n\\\\n // Your logic goes here :)\\\\n}\\\\n// Do not change this.\\\\nmodule.exports = { actionFn }\",\"triggerType\":\"WEBHOOK\",\"runtime\":\"V2\",\"function\":\"actionFn\",\"invocationType\":\"ASYNC\",\"trigger\":{\"type\":\"webhook\",\"webhook\":{\"authenticated\":false}}},\"deploy\":true}' \\\n --compressed"}],"method":"post","type":"path","servers":["b340f948-8ad0-4e33-81bf-d68172cdda28"],"security":["593ed36d-1b83-4688-8bee-310b17e16441","56360f71-6068-4013-92ba-153260f3efdd"],"path":"/v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile","baseUrlOptions":["https://api.tenderly.co/api"],"title":"Create Web3 Action","codeSamples":[{"lang":"cURL","source":"# Block Web3 Action\ncurl 'https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/actions/publishFile' \\\n -H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \\\n -H 'content-type: application/json' \\\n --data-raw $'{\"action\":{\"name\":\"block-action\",\"description\":\"Triggers on every 10th block on ETH Mainnet and Polygon.\",\"source\":\"// Do not change function name.\\\\nconst actionFn = async (context, blockEvent) => {\\\\n console.log(blockEvent)\\\\n\\\\n // To access project\\'s secret\\\\n // let secret = await context.secrets.get(\\'MY-SECRET\\')\\\\n\\\\n // To access project\\'s storage\\\\n // let value = await context.storage.getStr(\\'MY-KEY\\')\\\\n // await context.storage.putStr(\\'MY-KEY\\', \\'MY-VALUE\\')\\\\n\\\\n // Your logic goes here :)\\\\n}\\\\n// Do not change this.\\\\nmodule.exports = { actionFn }\",\"triggerType\":\"BLOCK\",\"runtime\":\"V2\",\"function\":\"actionFn\",\"invocationType\":\"ASYNC\",\"trigger\":{\"type\":\"block\",\"block\":{\"network\":[\"1\",\"137\"],\"blocks\":10}}},\"deploy\":true}' \\\n --compressed\n\n# Periodic Web3 Action\ncurl 'https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/actions/publishFile' \\\n -H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \\\n -H 'content-type: application/json' \\\n --data-raw $'{\"action\":{\"name\":\"periodic-1hour\",\"description\":\"CRON job triggered every 1 hour\",\"source\":\"// Do not change function name.\\\\nconst actionFn = async (context, periodicEvent) => {\\\\n console.log(periodicEvent)\\\\n\\\\n // To access project\\'s secret\\\\n // let secret = await context.secrets.get(\\'MY-SECRET\\')\\\\n\\\\n // To access project\\'s storage\\\\n // let value = await context.storage.getStr(\\'MY-KEY\\')\\\\n // await context.storage.putStr(\\'MY-KEY\\', \\'MY-VALUE\\')\\\\n\\\\n // Your logic goes here :)\\\\n}\\\\n// Do not change this.\\\\nmodule.exports = { actionFn }\",\"triggerType\":\"PERIODIC\",\"runtime\":\"V2\",\"function\":\"actionFn\",\"invocationType\":\"ASYNC\",\"trigger\":{\"type\":\"periodic\",\"periodic\":{\"cron\":\"0 * * * *\",\"interval\":\"1h\"}}},\"deploy\":true}' \\\n --compressed\n\n# Webhook Web3 Action\ncurl 'https://api.tenderly.co/api/v1/account/${TENDERLY_ACCOUNT_SLUG}/project/${TENDERLY_PROJECT_SLUG}/actions/publishFile' \\\n -H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \\\n -H 'content-type: application/json' \\\n --data-raw $'{\"action\":{\"name\":\"webhook-action\",\"description\":\"Non-authenticated webhook action. You will be able to make a request without using a valid Tenderly token.\",\"source\":\"// Do not change function name.\\\\nconst actionFn = async (context, webhookEvent) => {\\\\n console.log(webhookEvent)\\\\n\\\\n // To access project\\'s secret\\\\n // let secret = await context.secrets.get(\\'MY-SECRET\\')\\\\n\\\\n // To access project\\'s storage\\\\n // let value = await context.storage.getStr(\\'MY-KEY\\')\\\\n // await context.storage.putStr(\\'MY-KEY\\', \\'MY-VALUE\\')\\\\n\\\\n // Your logic goes here :)\\\\n}\\\\n// Do not change this.\\\\nmodule.exports = { actionFn }\",\"triggerType\":\"WEBHOOK\",\"runtime\":\"V2\",\"function\":\"actionFn\",\"invocationType\":\"ASYNC\",\"trigger\":{\"type\":\"webhook\",\"webhook\":{\"authenticated\":false}}},\"deploy\":true}' \\\n --compressed"}],"requestExampleLanguages":["bash","javascript","python","go"],"requiredOnlyExamples":true,"requestExampleType":"codeSamples","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{"7a2c61a6-4b72-4257-b800-de31c05b7101":{"name":"accountSlug","in":"path","schema":{"type":"string","isRequired":true,"description":"Account slug of the user","uniqueKey":"","typeLabel":"string"},"required":true,"description":"Account slug of the user","example":"me"},"22037f59-134b-41c8-97c9-af45a6b5fb36":{"name":"projectSlug","in":"path","schema":{"type":"string","isRequired":true,"description":"Project slug of the account","uniqueKey":"","typeLabel":"string"},"required":true,"description":"Project slug of the account","example":"project"}},"requestBody":{"required":true,"description":"Create web3 action payload","content":{"application/json":{"schema":{"type":"object","properties":{"action":{"title":"action","description":"A Web3 Action creation payload.","type":"object","properties":{"name":{"title":"name","description":"Web3 Action name. Must start with a letter and contain only letters, digits, dashes, and underscores; spaces are not allowed. Names that don't match the pattern are rejected with `found_validation_errors`. Use the `description` field for a human-readable label.","type":"string","pattern":"^[a-zA-Z][a-zA-Z0-9_-]*$","example":"block-action","isRequired":true,"uniqueKey":"action.name","typeLabel":"string"},"source":{"title":"source","description":"Web3 Action version source code.","type":"string","example":"// Do not change function name.\nconst actionFn = async (context, blockEvent) => {\n console.log(blockEvent)\n\n // To access project's secret\n // let secret = await context.secrets.get('MY-SECRET')\n\n // To access project's storage\n // let value = await context.storage.getStr('MY-KEY')\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }","isRequired":true,"uniqueKey":"action.source","typeLabel":"string"},"triggerType":{"title":"triggerType","description":"Web3 Action version trigger type.","type":"string","enum":["ALERT","BLOCK","PERIODIC","TRANSACTION","WEBHOOK","TRANSACTIONSIMPLE"],"example":"BLOCK","isRequired":true,"uniqueKey":"action.triggerType","typeLabel":"enum\u003cstring>"},"runtime":{"title":"runtime","description":"Web3 Action version runtime.","type":"string","example":"V2","isRequired":true,"uniqueKey":"action.runtime","typeLabel":"string"},"function":{"title":"function","description":"Web3 Action function which will be called on every execution.","type":"string","example":"actionFn","isRequired":true,"uniqueKey":"action.function","typeLabel":"string"},"invocationType":{"title":"invocationType","description":"Shows Web3 Action version invocation type.","type":"string","enum":["SYNC","ASYNC"],"example":"SYNC","isRequired":true,"uniqueKey":"action.invocationType","typeLabel":"enum\u003cstring>"},"trigger":{"title":"trigger","description":"Web3 Action version trigger object. The shape depends on `triggerType`. For `PERIODIC` triggers, `periodic.cron` is a standard five-field cron expression (minute, hour, day of month, month, day of week; no seconds field and no `@hourly`-style shortcuts) and is what schedules execution; `periodic.interval` is optional display-only metadata shown in the dashboard and is not used in execution.","type":"object","example":{"type":"block","block":{"network":["1","137"],"blocks":10}},"isRequired":true,"uniqueKey":"action.trigger","typeLabel":"trigger · object"},"description":{"title":"description","description":"Web3 Action description.","type":"string","example":"Triggers on every 10th block on ETH Mainnet and Polygon.","uniqueKey":"action.description","typeLabel":"string"}},"required":["name","source","triggerType","runtime","function","invocationType","trigger"],"example":{"name":"block-action","description":"Triggers on every 10th block on ETH Mainnet and Polygon.","source":"// Do not change function name.\nconst actionFn = async (context, blockEvent) => {\n console.log(blockEvent)\n\n // To access project's secret\n // let secret = await context.secrets.get('MY-SECRET')\n\n // To access project's storage\n // let value = await context.storage.getStr('MY-KEY')\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }","triggerType":"BLOCK","runtime":"V2","function":"actionFn","invocationType":"ASYNC","trigger":{"type":"block","block":{"network":["1","137"],"blocks":10}}},"isRequired":true,"uniqueKey":"action","typeLabel":"action · object"},"deploy":{"title":"deploy","description":"Should Web3 Action be immediately deployed.","type":"boolean","example":true,"isRequired":true,"uniqueKey":"deploy","typeLabel":"boolean"}},"required":["action","deploy"],"example":{"action":{"name":"block-action","description":"Triggers on every 10th block on ETH Mainnet and Polygon.","source":"// Do not change function name.\nconst actionFn = async (context, blockEvent) => {\n console.log(blockEvent)\n\n // To access project's secret\n // let secret = await context.secrets.get('MY-SECRET')\n\n // To access project's storage\n // let value = await context.storage.getStr('MY-KEY')\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }","triggerType":"BLOCK","runtime":"V2","function":"actionFn","invocationType":"ASYNC","trigger":{"type":"block","block":{"network":["1","137"],"blocks":10}}},"deploy":true},"uniqueKey":"","typeLabel":"object"},"examples":{"block":{"title":"block","description":"An example payload object with details about web3 action of Block type.","value":{"action":{"name":"block-action","description":"Triggers on every 10th block on ETH Mainnet and Polygon.","source":"// Do not change function name.\nconst actionFn = async (context, blockEvent) => {\n console.log(blockEvent)\n\n // To access project's secret\n // let secret = await context.secrets.get('MY-SECRET')\n\n // To access project's storage\n // let value = await context.storage.getStr('MY-KEY')\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }","triggerType":"BLOCK","runtime":"V2","function":"actionFn","invocationType":"ASYNC","trigger":{"type":"block","block":{"network":["1","137"],"blocks":10}}},"deploy":true}},"periodic":{"title":"periodic","description":"An example payload object with details about web3 action of Periodic type.","value":{"action":{"name":"periodic-1hour","description":"CRON job triggered every 1 hour","source":"// Do not change function name.\nconst actionFn = async (context, periodicEvent) => {\n console.log(periodicEvent)\n\n // To access project's secret\n // let secret = await context.secrets.get('MY-SECRET')\n\n // To access project's storage\n // let value = await context.storage.getStr('MY-KEY')\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }","triggerType":"PERIODIC","runtime":"V2","function":"actionFn","invocationType":"ASYNC","trigger":{"type":"periodic","periodic":{"cron":"0 * * * *","interval":"1h"}}},"deploy":true}},"webhook":{"title":"webhook","description":"An example payload object with details about web3 action of Webhook type.","value":{"action":{"name":"webhook-action","description":"Non-authenticated webhook action. You will be able to make a request without using a valid Tenderly token.","source":"// Do not change function name.\nconst actionFn = async (context, webhookEvent) => {\n console.log(webhookEvent)\n\n // To access project's secret\n // let secret = await context.secrets.get('MY-SECRET')\n\n // To access project's storage\n // let value = await context.storage.getStr('MY-KEY')\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }","triggerType":"WEBHOOK","runtime":"V2","function":"actionFn","invocationType":"ASYNC","trigger":{"type":"webhook","webhook":{"authenticated":false}}},"deploy":true}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"806da821-6c78-4668-9568-c09b42382776":{"description":"A successful response.","headers":{"X-Tdly-Limit":{"schema":{"type":"integer"},"example":100,"description":"The default limit on number of requests that can be made per minute. Current rate limits are:\n* **Non-authenticated users:** 100 requests per minute\n* **Authenticated users:** 400 requests per minute"},"X-Tdly-Remaining":{"schema":{"type":"integer"},"example":16,"description":"The number of requests in your quota that remain before you hit your request limit."},"X-Tdly-Reset-Timestamp":{"schema":{"type":"integer"},"example":1444931833,"description":"The time when the oldest request will expire. The value is given in Unix epoch time."}},"content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"Create Web3 Action Block Response","description":"An object with details about created Web3 Action of Block type.","example":{"actions":{"block-action":{"id":"349cbb00-64ad-47ec-bbcb-40bffa28559f","index":1,"actionId":"53712e55-eb77-4ce3-9140-685fd230396a","parentActionId":"","runtime":"V2","function":"implementation:actionFn","triggerType":"BLOCK","trigger":{"type":"block","block":{"network":["1","137"],"blocks":10}},"commitish":null,"source":"// Do not change function name.\nconst actionFn = async (context, blockEvent) => {\n console.log(blockEvent)\n\n // To access project's secret\n // let secret = await context.secrets.get('MY-SECRET')\n\n // To access project's storage\n // let value = await context.storage.getStr('MY-KEY')\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }","createdAt":"2023-12-14T18:47:19.26565Z","deployRequested":true,"deployError":null,"invocationType":"ASYNC"}}},"uniqueKey":"oneOf.0","typeLabel":"Create Web3 Action Block Response · object"},{"type":"object","title":"Create Web3 Action Periodic Response","description":"An object with details about created Web3 Action of Periodic type.","example":{"actions":{"periodic-1hour":{"id":"d6f38b4e-3f6a-476d-a788-4b04b75faa4e","index":1,"actionId":"0330dbf2-b2e1-48e9-9637-0ae015c770e3","parentActionId":"","runtime":"V2","function":"implementation:actionFn","triggerType":"PERIODIC","trigger":{"type":"periodic","periodic":{"cron":"0 * * * *","interval":"1h"}},"commitish":null,"source":"// Do not change function name.\nconst actionFn = async (context, periodicEvent) => {\n console.log(periodicEvent)\n\n // To access project's secret\n // let secret = await context.secrets.get('MY-SECRET')\n\n // To access project's storage\n // let value = await context.storage.getStr('MY-KEY')\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }","createdAt":"2023-12-14T19:09:20.710956Z","deployRequested":true,"deployError":null,"invocationType":"SYNC"}}},"uniqueKey":"oneOf.1","typeLabel":"Create Web3 Action Periodic Response · object"},{"type":"object","title":"Create Web3 Action Webhook Response","description":"An object with details about created Web3 Action of Webhook type.","example":{"actions":{"webhook-action":{"id":"c9920ea7-44da-4eb2-861a-701f03bcc135","index":1,"actionId":"53be9ff0-756e-401d-877c-a1216a8b9696","parentActionId":"","runtime":"V2","function":"implementation:actionFn","triggerType":"WEBHOOK","trigger":{"type":"webhook","webhook":{"authenticated":false}},"commitish":null,"source":"// Do not change function name.\nconst actionFn = async (context, webhookEvent) => {\n console.log(webhookEvent)\n\n // To access project's secret\n // let secret = await context.secrets.get('MY-SECRET')\n\n // To access project's storage\n // let value = await context.storage.getStr('MY-KEY')\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }","createdAt":"2023-12-14T19:14:47.855921Z","deployRequested":true,"deployError":null,"invocationType":"ASYNC"}}},"uniqueKey":"oneOf.2","typeLabel":"Create Web3 Action Webhook Response · object"}],"uniqueKey":"","typeLabel":"Create Web3 Action Block Response · object | Create Web3 Action Periodic Response · object | Create Web3 Action Webhook Response · object"},"examples":{"Example":{"title":"Example","value":{"actions":{"block-action":{"id":"349cbb00-64ad-47ec-bbcb-40bffa28559f","index":1,"actionId":"53712e55-eb77-4ce3-9140-685fd230396a","parentActionId":"","runtime":"V2","function":"implementation:actionFn","triggerType":"BLOCK","trigger":{"type":"block","block":{"network":["1","137"],"blocks":10}},"commitish":null,"source":"// Do not change function name.\nconst actionFn = async (context, blockEvent) => {\n console.log(blockEvent)\n\n // To access project's secret\n // let secret = await context.secrets.get('MY-SECRET')\n\n // To access project's storage\n // let value = await context.storage.getStr('MY-KEY')\n // await context.storage.putStr('MY-KEY', 'MY-VALUE')\n\n // Your logic goes here :)\n}\n// Do not change this.\nmodule.exports = { actionFn }","createdAt":"2023-12-14T18:47:19.26565Z","deployRequested":true,"deployError":null,"invocationType":"ASYNC"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"c2ccc74c-9968-4e0d-aef6-50a0328c83e9":{"description":"Bad Request","headers":{"X-Tdly-Limit":{"schema":{"type":"integer"},"example":100,"description":"The default limit on number of requests that can be made per minute. Current rate limits are:\n* **Non-authenticated users:** 100 requests per minute\n* **Authenticated users:** 400 requests per minute"},"X-Tdly-Remaining":{"schema":{"type":"integer"},"example":16,"description":"The number of requests in your quota that remain before you hit your request limit."},"X-Tdly-Reset-Timestamp":{"schema":{"type":"integer"},"example":1444931833,"description":"The time when the oldest request will expire. The value is given in Unix epoch time."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"id":{"description":"Endpoints include an error ID that should be provided when reporting bugs or opening support tickets to help identify the issue.","type":"string","example":"4d9d8375-3c56-4925-a3e7-eb137fed17e9","isRequired":true,"uniqueKey":"error.id","typeLabel":"string"},"slug":{"description":"A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be \"not_found.\"","type":"string","example":"not_found","isRequired":true,"uniqueKey":"error.slug","typeLabel":"string"},"message":{"description":"A message providing additional information about the error, including details to help resolve it when possible.","type":"string","example":"The resource you were accessing could not be found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"data":{"description":"Additional context about the error.","type":"object","properties":{"rid":{"description":"Resource identifier indicating which resource type caused the error.","type":"string","enum":["rid:account","rid:project","rid:alert","rid:contract","rid:delivery_channel","rid:network","rid:simulation","rid:simulation_draft","rid:vnet","rid:wallet","rid:action","rid:action_call"],"example":"rid:project","uniqueKey":"error.data.rid","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"uniqueKey":"error.data","typeLabel":"object"}},"required":["id","slug","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"id":"596b1dc7-af60-477b-aab3-6c93eb92ddfa","slug":"bad_request","message":"Bad request input parameters"}},"examples":{"Example":{"title":"Example","value":{"error":{"id":"596b1dc7-af60-477b-aab3-6c93eb92ddfa","slug":"bad_request","message":"Bad request input parameters"}}}},"exampleType":"examples"}},"exampleType":"examples"},"9f88e681-fb44-4776-b5cb-0b7a36ef53be":{"description":"Unauthorized","headers":{"X-Tdly-Limit":{"schema":{"type":"integer"},"example":100,"description":"The default limit on number of requests that can be made per minute. Current rate limits are:\n* **Non-authenticated users:** 100 requests per minute\n* **Authenticated users:** 400 requests per minute"},"X-Tdly-Remaining":{"schema":{"type":"integer"},"example":16,"description":"The number of requests in your quota that remain before you hit your request limit."},"X-Tdly-Reset-Timestamp":{"schema":{"type":"integer"},"example":1444931833,"description":"The time when the oldest request will expire. The value is given in Unix epoch time."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"id":{"description":"Endpoints include an error ID that should be provided when reporting bugs or opening support tickets to help identify the issue.","type":"string","example":"4d9d8375-3c56-4925-a3e7-eb137fed17e9","isRequired":true,"uniqueKey":"error.id","typeLabel":"string"},"slug":{"description":"A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be \"not_found.\"","type":"string","example":"not_found","isRequired":true,"uniqueKey":"error.slug","typeLabel":"string"},"message":{"description":"A message providing additional information about the error, including details to help resolve it when possible.","type":"string","example":"The resource you were accessing could not be found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"data":{"description":"Additional context about the error.","type":"object","properties":{"rid":{"description":"Resource identifier indicating which resource type caused the error.","type":"string","enum":["rid:account","rid:project","rid:alert","rid:contract","rid:delivery_channel","rid:network","rid:simulation","rid:simulation_draft","rid:vnet","rid:wallet","rid:action","rid:action_call"],"example":"rid:project","uniqueKey":"error.data.rid","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"uniqueKey":"error.data","typeLabel":"object"}},"required":["id","slug","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"id":"596b1dc7-af60-477b-aab3-6c93eb92ddfa","slug":"unauthorized","message":"Unauthorized"}},"examples":{"Example":{"title":"Example","value":{"error":{"id":"596b1dc7-af60-477b-aab3-6c93eb92ddfa","slug":"unauthorized","message":"Unauthorized"}}}},"exampleType":"examples"}},"exampleType":"examples"},"86ef9924-1364-4ec3-85a7-6ee34cfcd2b0":{"description":"Forbidden","headers":{"X-Tdly-Limit":{"schema":{"type":"integer"},"example":100,"description":"The default limit on number of requests that can be made per minute. Current rate limits are:\n* **Non-authenticated users:** 100 requests per minute\n* **Authenticated users:** 400 requests per minute"},"X-Tdly-Remaining":{"schema":{"type":"integer"},"example":16,"description":"The number of requests in your quota that remain before you hit your request limit."},"X-Tdly-Reset-Timestamp":{"schema":{"type":"integer"},"example":1444931833,"description":"The time when the oldest request will expire. The value is given in Unix epoch time."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"id":{"description":"Endpoints include an error ID that should be provided when reporting bugs or opening support tickets to help identify the issue.","type":"string","example":"4d9d8375-3c56-4925-a3e7-eb137fed17e9","isRequired":true,"uniqueKey":"error.id","typeLabel":"string"},"slug":{"description":"A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be \"not_found.\"","type":"string","example":"not_found","isRequired":true,"uniqueKey":"error.slug","typeLabel":"string"},"message":{"description":"A message providing additional information about the error, including details to help resolve it when possible.","type":"string","example":"The resource you were accessing could not be found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"data":{"description":"Additional context about the error.","type":"object","properties":{"rid":{"description":"Resource identifier indicating which resource type caused the error.","type":"string","enum":["rid:account","rid:project","rid:alert","rid:contract","rid:delivery_channel","rid:network","rid:simulation","rid:simulation_draft","rid:vnet","rid:wallet","rid:action","rid:action_call"],"example":"rid:project","uniqueKey":"error.data.rid","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"uniqueKey":"error.data","typeLabel":"object"}},"required":["id","slug","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"id":"596b1dc7-af60-477b-aab3-6c93eb92ddfa","slug":"insufficient_permissions","message":"Insufficient permissions"}},"examples":{"Example":{"title":"Example","value":{"error":{"id":"596b1dc7-af60-477b-aab3-6c93eb92ddfa","slug":"insufficient_permissions","message":"Insufficient permissions"}}}},"exampleType":"examples"}},"exampleType":"examples"},"0e5a973c-fab4-4a2e-819e-ab8a24d5e042":{"description":"The resource was not found.","headers":{"X-Tdly-Limit":{"schema":{"type":"integer"},"example":100,"description":"The default limit on number of requests that can be made per minute. Current rate limits are:\n* **Non-authenticated users:** 100 requests per minute\n* **Authenticated users:** 400 requests per minute"},"X-Tdly-Remaining":{"schema":{"type":"integer"},"example":16,"description":"The number of requests in your quota that remain before you hit your request limit."},"X-Tdly-Reset-Timestamp":{"schema":{"type":"integer"},"example":1444931833,"description":"The time when the oldest request will expire. The value is given in Unix epoch time."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"id":{"description":"Endpoints include an error ID that should be provided when reporting bugs or opening support tickets to help identify the issue.","type":"string","example":"4d9d8375-3c56-4925-a3e7-eb137fed17e9","isRequired":true,"uniqueKey":"error.id","typeLabel":"string"},"slug":{"description":"A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be \"not_found.\"","type":"string","example":"not_found","isRequired":true,"uniqueKey":"error.slug","typeLabel":"string"},"message":{"description":"A message providing additional information about the error, including details to help resolve it when possible.","type":"string","example":"The resource you were accessing could not be found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"data":{"description":"Additional context about the error.","type":"object","properties":{"rid":{"description":"Resource identifier indicating which resource type caused the error.","type":"string","enum":["rid:account","rid:project","rid:alert","rid:contract","rid:delivery_channel","rid:network","rid:simulation","rid:simulation_draft","rid:vnet","rid:wallet","rid:action","rid:action_call"],"example":"rid:project","uniqueKey":"error.data.rid","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"uniqueKey":"error.data","typeLabel":"object"}},"required":["id","slug","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"id":"596b1dc7-af60-477b-aab3-6c93eb92ddfa","slug":"resource_not_found","message":"The resource you requested could not be found."}},"examples":{"Example":{"title":"Example","value":{"error":{"id":"596b1dc7-af60-477b-aab3-6c93eb92ddfa","slug":"resource_not_found","message":"The resource you requested could not be found."}}}},"exampleType":"examples"}},"exampleType":"examples"},"ab075aa2-62c2-42b1-9e72-b2e3666e6270":{"description":"The request was rate limited. See the [rate limits](#section/Introduction/Rate-limits) section for the current limits and how request counts expire.","headers":{"X-Tdly-Limit":{"schema":{"type":"integer"},"example":100,"description":"The default limit on number of requests that can be made per minute. Current rate limits are:\n* **Non-authenticated users:** 100 requests per minute\n* **Authenticated users:** 400 requests per minute"},"X-Tdly-Remaining":{"schema":{"type":"integer"},"example":16,"description":"The number of requests in your quota that remain before you hit your request limit."},"X-Tdly-Reset-Timestamp":{"schema":{"type":"integer"},"example":1444931833,"description":"The time when the oldest request will expire. The value is given in Unix epoch time."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"id":{"description":"Endpoints include an error ID that should be provided when reporting bugs or opening support tickets to help identify the issue.","type":"string","example":"4d9d8375-3c56-4925-a3e7-eb137fed17e9","isRequired":true,"uniqueKey":"error.id","typeLabel":"string"},"slug":{"description":"A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be \"not_found.\"","type":"string","example":"not_found","isRequired":true,"uniqueKey":"error.slug","typeLabel":"string"},"message":{"description":"A message providing additional information about the error, including details to help resolve it when possible.","type":"string","example":"The resource you were accessing could not be found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"data":{"description":"Additional context about the error.","type":"object","properties":{"rid":{"description":"Resource identifier indicating which resource type caused the error.","type":"string","enum":["rid:account","rid:project","rid:alert","rid:contract","rid:delivery_channel","rid:network","rid:simulation","rid:simulation_draft","rid:vnet","rid:wallet","rid:action","rid:action_call"],"example":"rid:project","uniqueKey":"error.data.rid","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"uniqueKey":"error.data","typeLabel":"object"}},"required":["id","slug","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"id":"9a7bbe06-7f6f-4a45-8c78-8d64b9a9d0e1","slug":"too_many_requests","message":"API Rate limit exceeded."}},"examples":{"Example":{"title":"Example","value":{"error":{"id":"9a7bbe06-7f6f-4a45-8c78-8d64b9a9d0e1","slug":"too_many_requests","message":"API Rate limit exceeded."}}}},"exampleType":"examples"}},"exampleType":"examples"},"459f25b7-b357-48d0-957c-3d29346b2dfd":{"description":"Server error.","headers":{"X-Tdly-Limit":{"schema":{"type":"integer"},"example":100,"description":"The default limit on number of requests that can be made per minute. Current rate limits are:\n* **Non-authenticated users:** 100 requests per minute\n* **Authenticated users:** 400 requests per minute"},"X-Tdly-Remaining":{"schema":{"type":"integer"},"example":16,"description":"The number of requests in your quota that remain before you hit your request limit."},"X-Tdly-Reset-Timestamp":{"schema":{"type":"integer"},"example":1444931833,"description":"The time when the oldest request will expire. The value is given in Unix epoch time."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"id":{"description":"Endpoints include an error ID that should be provided when reporting bugs or opening support tickets to help identify the issue.","type":"string","example":"4d9d8375-3c56-4925-a3e7-eb137fed17e9","isRequired":true,"uniqueKey":"error.id","typeLabel":"string"},"slug":{"description":"A short identifier corresponding to the HTTP status code returned. For example, the ID for a response returning a 404 status code would be \"not_found.\"","type":"string","example":"not_found","isRequired":true,"uniqueKey":"error.slug","typeLabel":"string"},"message":{"description":"A message providing additional information about the error, including details to help resolve it when possible.","type":"string","example":"The resource you were accessing could not be found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"data":{"description":"Additional context about the error.","type":"object","properties":{"rid":{"description":"Resource identifier indicating which resource type caused the error.","type":"string","enum":["rid:account","rid:project","rid:alert","rid:contract","rid:delivery_channel","rid:network","rid:simulation","rid:simulation_draft","rid:vnet","rid:wallet","rid:action","rid:action_call"],"example":"rid:project","uniqueKey":"error.data.rid","typeLabel":"enum\u003cstring>"}},"additionalProperties":true,"uniqueKey":"error.data","typeLabel":"object"}},"required":["id","slug","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"id":"596b1dc7-af60-477b-aab3-6c93eb92ddfa","slug":"internal_server_error","message":"Internal server error"}},"examples":{"Example":{"title":"Example","value":{"error":{"id":"596b1dc7-af60-477b-aab3-6c93eb92ddfa","slug":"internal_server_error","message":"Internal server error"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"593ed36d-1b83-4688-8bee-310b17e16441":{"ApiKeyAuth":{"type":"apiKey","name":"X-Access-Key","in":"header","description":"An API key is a token that a client provides when making API calls. Send it as the `X-Access-Key` request header on any endpoint:\n\n```bash\ncurl '\u003cAPI_ENDPOINT>' \\\n -H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \\\n ...\n```\n\nLearn how to generate API access tokens at [Tenderly Docs](https://docs.tenderly.co/platform/account/projects/api-tokens).","scopes":[],"schemeName":"ApiKeyAuth"}},"56360f71-6068-4013-92ba-153260f3efdd":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication (also called token authentication) is an HTTP authentication scheme that involves security tokens called bearer tokens.\nThe bearer token is a cryptic string, usually generated by the server in response to a login request. The client must send this token in\nthe Authorization header when making requests to protected resources:\n\n```bash\ncurl '\u003cAPI_ENDPOINT>' \\\n -H 'Authorization: Bearer \u003cTENDERLY_TOKEN>' \\\n ...\n```\n\n**Note**: Bearer tokens cannot be revoked and expire after 30 days.","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"b340f948-8ad0-4e33-81bf-d68172cdda28":{"url":"https://api.tenderly.co/api","description":"production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","name":"X-Access-Key","in":"header","description":"An API key is a token that a client provides when making API calls. Send it as the `X-Access-Key` request header on any endpoint:\n\n```bash\ncurl '\u003cAPI_ENDPOINT>' \\\n -H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \\\n ...\n```\n\nLearn how to generate API access tokens at [Tenderly Docs](https://docs.tenderly.co/platform/account/projects/api-tokens).","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"X-Access-Key","type":"string","description":"An API key is a token that a client provides when making API calls. Send it as the `X-Access-Key` request header on any endpoint:\n\n```bash\ncurl '\u003cAPI_ENDPOINT>' \\\n -H 'X-Access-Key: ${TENDERLY_ACCESS_KEY}' \\\n ...\n```\n\nLearn how to generate API access tokens at [Tenderly Docs](https://docs.tenderly.co/platform/account/projects/api-tokens).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"X-Access-Key"}],"title":"ApiKeyAuth"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication (also called token authentication) is an HTTP authentication scheme that involves security tokens called bearer tokens.\nThe bearer token is a cryptic string, usually generated by the server in response to a login request. The client must send this token in\nthe Authorization header when making requests to protected resources:\n\n```bash\ncurl '\u003cAPI_ENDPOINT>' \\\n -H 'Authorization: Bearer \u003cTENDERLY_TOKEN>' \\\n ...\n```\n\n**Note**: Bearer tokens cannot be revoked and expire after 30 days.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication (also called token authentication) is an HTTP authentication scheme that involves security tokens called bearer tokens.\nThe bearer token is a cryptic string, usually generated by the server in response to a login request. The client must send this token in\nthe Authorization header when making requests to protected resources:\n\n```bash\ncurl '\u003cAPI_ENDPOINT>' \\\n -H 'Authorization: Bearer \u003cTENDERLY_TOKEN>' \\\n ...\n```\n\n**Note**: Bearer tokens cannot be revoked and expire after 30 days.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"tenderly","siteName":"Tenderly","title":"Create Web3 Action - Tenderly","contextualStarterQuestions":[],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/actions/create-web3-action","matchLevel":0},"ru":{"href":"/api-reference/actions/create-web3-action","matchLevel":0},"zh":{"href":"/api-reference/actions/create-web3-action","matchLevel":0},"hi":{"href":"/api-reference/actions/create-web3-action","matchLevel":0}}},"lastModified":"2026-10-15T11:06:40.620Z","originalFileLocation":"api-reference/actions/create-web3-action.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create a Web3 Action via the API with its trigger and function code, optionally deploying it, and see which payload errors return a 400.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Tenderly\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tenderly/eQa6_1msdloETVQa/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/tenderly/eQa6_1msdloETVQa/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tenderly/eQa6_1msdloETVQa/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tenderly/eQa6_1msdloETVQa/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tenderly/eQa6_1msdloETVQa/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tenderly/eQa6_1msdloETVQa/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tenderly/eQa6_1msdloETVQa/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tenderly/eQa6_1msdloETVQa/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tenderly/eQa6_1msdloETVQa/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Web3 Action - Tenderly\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a Web3 Action via the API with its trigger and function code, optionally deploying it, and see which payload errors return a 400.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tenderly\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tenderly.co/api-reference/actions/create-web3-action\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tenderly.mintlify.app/_mintlify/api/og/v2?division=Actions\u0026amp;title=Create+Web3+Action\u0026amp;description=Create+a+Web3+Action+via+the+API+with+its+trigger+and+function+code%2C+optionally+deploying+it%2C+and+see+which+payload+errors+return+a+400.\u0026amp;theme=817f8a2deaf431054b1e6873\u0026amp;signature=a755c4c2c7c2b42e4e1aa77954366803f94a7c0a6fab520bff0f13fb2d22edc7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create Web3 Action - Tenderly\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a Web3 Action via the API with its trigger and function code, optionally deploying it, and see which payload errors return a 400.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tenderly.mintlify.app/_mintlify/api/og/v2?division=Actions\u0026amp;title=Create+Web3+Action\u0026amp;description=Create+a+Web3+Action+via+the+API+with+its+trigger+and+function+code%2C+optionally+deploying+it%2C+and+see+which+payload+errors+return+a+400.\u0026amp;theme=817f8a2deaf431054b1e6873\u0026amp;signature=a755c4c2c7c2b42e4e1aa77954366803f94a7c0a6fab520bff0f13fb2d22edc7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/tenderly/eQa6_1msdloETVQa/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Tenderly\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7857FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tenderly.co/api-reference/actions/create-web3-action\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/actions/create-web3-action.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tenderly.co/#organization\",\"name\":\"Tenderly\",\"url\":\"https://docs.tenderly.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tenderly/OpA99rKrR1G10AGk/logo/tenderly-logo-light-background.svg?fit=max\u0026auto=format\u0026n=OpA99rKrR1G10AGk\u0026q=85\u0026s=8655a53ac5f0fdc1af7c82f4e2e270ef\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tenderly.co#website\",\"name\":\"Tenderly\",\"url\":\"https://docs.tenderly.co\",\"publisher\":{\"@id\":\"https://docs.tenderly.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tenderly.co/api-reference/actions/create-web3-action#webpage\",\"url\":\"https://docs.tenderly.co/api-reference/actions/create-web3-action\",\"name\":\"Create Web3 Action\",\"description\":\"Create a Web3 Action via the API with its trigger and function code, optionally deploying it, and see which payload errors return a 400.\",\"dateModified\":\"2026-10-15T11:06:40.620Z\",\"isPartOf\":{\"@id\":\"https://docs.tenderly.co#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tenderly.co/api-reference/actions/create-web3-action#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tenderly.co/api-reference/actions/create-web3-action#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Actions\",\"item\":\"https://docs.tenderly.co/api-reference/actions/delete-web3-action\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create Web3 Action\",\"item\":\"https://docs.tenderly.co/api-reference/actions/create-web3-action\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.tenderly.co/api-reference/actions/create-web3-action#apireference\",\"headline\":\"Create Web3 Action\",\"name\":\"Create Web3 Action\",\"description\":\"Create a Web3 Action via the API with its trigger and function code, optionally deploying it, and see which payload errors return a 400.\",\"url\":\"https://docs.tenderly.co/api-reference/actions/create-web3-action\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tenderly.co/api-reference/actions/create-web3-action#webpage\"},\"dateModified\":\"2026-10-15T11:06:40.620Z\",\"publisher\":{\"@id\":\"https://docs.tenderly.co/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tenderly.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Tenderly\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Tenderly","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Supported Networks","pages":[{"title":"Supported Networks","href":"/platform/supported-networks"}]},{"tab":"API Reference","groups":[{"group":"Projects","public":true,"pages":[{"title":"List projects","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/projects","href":"/api-reference/projects/list-projects"},{"title":"Create a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project","href":"/api-reference/projects/create-a-project"},{"title":"Get a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}","href":"/api-reference/projects/get-a-project"},{"title":"Update a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}","href":"/api-reference/projects/update-a-project"},{"title":"Delete a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}","href":"/api-reference/projects/delete-a-project"}]},{"group":"Simulator","public":true,"pages":[{"title":"Fetch all simulated transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/simulations","href":"/api-reference/simulator/fetch-all-simulated-transactions"},{"title":"Get quick simulated transaction details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}/info","href":"/api-reference/simulator/get-quick-simulated-transaction-details"},{"title":"Simulate transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulate","href":"/api-reference/simulator/simulate-transaction"},{"title":"Simulate bundled transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulate-bundle","href":"/api-reference/simulator/simulate-bundled-transactions"},{"title":"Get full simulated transaction details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}","href":"/api-reference/simulator/get-full-simulated-transaction-details"},{"title":"Enable simulation sharing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}/share","href":"/api-reference/simulator/enable-simulation-sharing"},{"title":"Disable simulation sharing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}/unshare","href":"/api-reference/simulator/disable-simulation-sharing"},{"title":"Get a simulation draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v2/account/{accountSlug}/project/{projectSlug}/simulation-drafts/{draftId}","href":"/api-reference/simulator/get-a-simulation-draft"},{"title":"Create a simulation draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v2/account/{accountSlug}/project/{projectSlug}/simulation-drafts","href":"/api-reference/simulator/create-a-simulation-draft"}]},{"group":"Virtual Environments","public":true,"pages":[{"title":"Batch Delete Environments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /public/v1/account/{accountSlug}/project/{projectSlug}/environments","href":"/api-reference/virtual-environments/batch-delete-environments"},{"title":"List Environments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments","href":"/api-reference/virtual-environments/list-environments"},{"title":"Create Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /public/v1/account/{accountSlug}/project/{projectSlug}/environments","href":"/api-reference/virtual-environments/create-environment"},{"title":"Delete Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}","href":"/api-reference/virtual-environments/delete-environment"},{"title":"Get Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}","href":"/api-reference/virtual-environments/get-environment"},{"title":"Get Environment Instance Transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/transactions","href":"/api-reference/virtual-environments/get-environment-instance-transactions"},{"title":"Get Environment Instance Transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/transactions/{txHash}","href":"/api-reference/virtual-environments/get-environment-instance-transaction"},{"title":"Send Transaction on Environment Virtual Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/vnet/{vnetId}/transactions","href":"/api-reference/virtual-environments/send-transaction-on-environment-virtual-environment"},{"title":"Simulate Transaction on Environment Virtual Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/vnet/{vnetId}/transactions/simulate","href":"/api-reference/virtual-environments/simulate-transaction-on-environment-virtual-environment"}]},{"group":"Alerts","public":true,"pages":[{"title":"Delete Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/alert/{alertId}","href":"/api-reference/alerts/delete-alert"},{"title":"Get Alert History","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/alert-history","href":"/api-reference/alerts/get-alert-history"},{"title":"List Alerts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/alerts","href":"/api-reference/alerts/list-alerts"},{"title":"Update Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/account/{accountSlug}/project/{projectSlug}/alert/{alertId}","href":"/api-reference/alerts/update-alert"},{"title":"Create Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/alert","href":"/api-reference/alerts/create-alert"},{"title":"Send test Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/test-alerts","href":"/api-reference/alerts/send-test-alert"}]},{"group":"Actions","public":true,"pages":[{"title":"Delete Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}","href":"/api-reference/actions/delete-web3-action"},{"title":"Get details for all Web3 Actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions","href":"/api-reference/actions/get-details-for-all-web3-actions"},{"title":"Get Web3 Action details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}","href":"/api-reference/actions/get-web3-action-details"},{"title":"Get execution history for single Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/calls","href":"/api-reference/actions/get-execution-history-for-single-web3-action"},{"title":"Get details for single Web3 Action execution","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/calls/call/{executionId}","href":"/api-reference/actions/get-details-for-single-web3-action-execution"},{"title":"Resume specific Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/resume","href":"/api-reference/actions/resume-specific-web3-action"},{"title":"Stop specific Web3 Action","description":"Stop a single Web3 Action by its ID so its trigger no longer executes the function. Resume it later with the resume endpoint.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/stop","href":"/api-reference/actions/stop-specific-web3-action"},{"title":"Create Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile","href":"/api-reference/actions/create-web3-action"},{"title":"Resume all Web3 Actions","description":"Resume every stopped Web3 Action in a Tenderly project in one request, so their triggers start executing the functions again.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/resume","href":"/api-reference/actions/resume-all-web3-actions"},{"title":"Stop all Web3 Actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/stop","href":"/api-reference/actions/stop-all-web3-actions"}]},{"group":"Delivery Channels","public":true,"pages":[{"title":"List Delivery Channels","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/delivery-channels","href":"/api-reference/delivery-channels/list-delivery-channels"},{"title":"List Delivery Channels for project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/delivery-channels","href":"/api-reference/delivery-channels/list-delivery-channels-for-project"}]},{"group":"Contracts","public":true,"pages":[{"title":"Delete contract from project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/contract/{networkId}/{address}","href":"/api-reference/contracts/delete-contract-from-project"},{"title":"Delete contract tag","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/contract/{networkId}/{address}/tag","href":"/api-reference/contracts/delete-contract-tag"},{"title":"Get all contracts in project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/contracts","href":"/api-reference/contracts/get-all-contracts-in-project"},{"title":"Add contract to project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/address","href":"/api-reference/contracts/add-contract-to-project"},{"title":"Rename contract","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/contract/{networkId}/{address}/rename","href":"/api-reference/contracts/rename-contract"},{"title":"Encode state overrides","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/contracts/encode-states","href":"/api-reference/contracts/encode-state-overrides"},{"title":"Add tag to mutiple contracts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/tag","href":"/api-reference/contracts/add-tag-to-mutiple-contracts"}]},{"group":"Wallets","public":true,"pages":[{"title":"Get wallet in project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/wallet/{address}/network/{networkId}","href":"/api-reference/wallets/get-wallet-in-project"},{"title":"Add wallet to project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/wallet","href":"/api-reference/wallets/add-wallet-to-project"},{"title":"Add wallets to a project in bulk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v2/accounts/{accountSlug}/projects/{projectSlug}/wallets","href":"/api-reference/wallets/add-wallets-to-a-project-in-bulk"}]},{"group":"Other","public":true,"pages":[{"title":"Check supported networks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/supported-networks","href":"/api-reference/other/check-supported-networks"}]}]},{"tab":"Troubleshooting","pages":[{"title":"Troubleshooting","href":"/troubleshooting/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/overview"}]}]},{"language":"ru","tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/ru/introduction"}]},{"tab":"Supported Networks","pages":[{"title":"Supported Networks","href":"/ru/platform/supported-networks"}]},{"tab":"API Reference","groups":[{"group":"Projects","public":true,"pages":[{"title":"List projects","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/projects","href":"/api-reference/projects/list-projects"},{"title":"Create a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project","href":"/api-reference/projects/create-a-project"},{"title":"Get a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}","href":"/api-reference/projects/get-a-project"},{"title":"Update a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}","href":"/api-reference/projects/update-a-project"},{"title":"Delete a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}","href":"/api-reference/projects/delete-a-project"}]},{"group":"Simulator","public":true,"pages":[{"title":"Fetch all simulated transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/simulations","href":"/api-reference/simulator/fetch-all-simulated-transactions"},{"title":"Get quick simulated transaction details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}/info","href":"/api-reference/simulator/get-quick-simulated-transaction-details"},{"title":"Simulate transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulate","href":"/api-reference/simulator/simulate-transaction"},{"title":"Simulate bundled transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulate-bundle","href":"/api-reference/simulator/simulate-bundled-transactions"},{"title":"Get full simulated transaction details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}","href":"/api-reference/simulator/get-full-simulated-transaction-details"},{"title":"Enable simulation sharing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}/share","href":"/api-reference/simulator/enable-simulation-sharing"},{"title":"Disable simulation sharing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}/unshare","href":"/api-reference/simulator/disable-simulation-sharing"},{"title":"Get a simulation draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v2/account/{accountSlug}/project/{projectSlug}/simulation-drafts/{draftId}","href":"/api-reference/simulator/get-a-simulation-draft"},{"title":"Create a simulation draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v2/account/{accountSlug}/project/{projectSlug}/simulation-drafts","href":"/api-reference/simulator/create-a-simulation-draft"}]},{"group":"Virtual Environments","public":true,"pages":[{"title":"Batch Delete Environments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /public/v1/account/{accountSlug}/project/{projectSlug}/environments","href":"/api-reference/virtual-environments/batch-delete-environments"},{"title":"List Environments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments","href":"/api-reference/virtual-environments/list-environments"},{"title":"Create Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /public/v1/account/{accountSlug}/project/{projectSlug}/environments","href":"/api-reference/virtual-environments/create-environment"},{"title":"Delete Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}","href":"/api-reference/virtual-environments/delete-environment"},{"title":"Get Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}","href":"/api-reference/virtual-environments/get-environment"},{"title":"Get Environment Instance Transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/transactions","href":"/api-reference/virtual-environments/get-environment-instance-transactions"},{"title":"Get Environment Instance Transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/transactions/{txHash}","href":"/api-reference/virtual-environments/get-environment-instance-transaction"},{"title":"Send Transaction on Environment Virtual Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/vnet/{vnetId}/transactions","href":"/api-reference/virtual-environments/send-transaction-on-environment-virtual-environment"},{"title":"Simulate Transaction on Environment Virtual Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/vnet/{vnetId}/transactions/simulate","href":"/api-reference/virtual-environments/simulate-transaction-on-environment-virtual-environment"}]},{"group":"Alerts","public":true,"pages":[{"title":"Delete Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/alert/{alertId}","href":"/api-reference/alerts/delete-alert"},{"title":"Get Alert History","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/alert-history","href":"/api-reference/alerts/get-alert-history"},{"title":"List Alerts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/alerts","href":"/api-reference/alerts/list-alerts"},{"title":"Update Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/account/{accountSlug}/project/{projectSlug}/alert/{alertId}","href":"/api-reference/alerts/update-alert"},{"title":"Create Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/alert","href":"/api-reference/alerts/create-alert"},{"title":"Send test Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/test-alerts","href":"/api-reference/alerts/send-test-alert"}]},{"group":"Actions","public":true,"pages":[{"title":"Delete Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}","href":"/api-reference/actions/delete-web3-action"},{"title":"Get details for all Web3 Actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions","href":"/api-reference/actions/get-details-for-all-web3-actions"},{"title":"Get Web3 Action details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}","href":"/api-reference/actions/get-web3-action-details"},{"title":"Get execution history for single Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/calls","href":"/api-reference/actions/get-execution-history-for-single-web3-action"},{"title":"Get details for single Web3 Action execution","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/calls/call/{executionId}","href":"/api-reference/actions/get-details-for-single-web3-action-execution"},{"title":"Resume specific Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/resume","href":"/api-reference/actions/resume-specific-web3-action"},{"title":"Stop specific Web3 Action","description":"Stop a single Web3 Action by its ID so its trigger no longer executes the function. Resume it later with the resume endpoint.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/stop","href":"/api-reference/actions/stop-specific-web3-action"},{"title":"Create Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile","href":"/api-reference/actions/create-web3-action"},{"title":"Resume all Web3 Actions","description":"Resume every stopped Web3 Action in a Tenderly project in one request, so their triggers start executing the functions again.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/resume","href":"/api-reference/actions/resume-all-web3-actions"},{"title":"Stop all Web3 Actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/stop","href":"/api-reference/actions/stop-all-web3-actions"}]},{"group":"Delivery Channels","public":true,"pages":[{"title":"List Delivery Channels","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/delivery-channels","href":"/api-reference/delivery-channels/list-delivery-channels"},{"title":"List Delivery Channels for project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/delivery-channels","href":"/api-reference/delivery-channels/list-delivery-channels-for-project"}]},{"group":"Contracts","public":true,"pages":[{"title":"Delete contract from project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/contract/{networkId}/{address}","href":"/api-reference/contracts/delete-contract-from-project"},{"title":"Delete contract tag","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/contract/{networkId}/{address}/tag","href":"/api-reference/contracts/delete-contract-tag"},{"title":"Get all contracts in project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/contracts","href":"/api-reference/contracts/get-all-contracts-in-project"},{"title":"Add contract to project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/address","href":"/api-reference/contracts/add-contract-to-project"},{"title":"Rename contract","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/contract/{networkId}/{address}/rename","href":"/api-reference/contracts/rename-contract"},{"title":"Encode state overrides","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/contracts/encode-states","href":"/api-reference/contracts/encode-state-overrides"},{"title":"Add tag to mutiple contracts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/tag","href":"/api-reference/contracts/add-tag-to-mutiple-contracts"}]},{"group":"Wallets","public":true,"pages":[{"title":"Get wallet in project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/wallet/{address}/network/{networkId}","href":"/api-reference/wallets/get-wallet-in-project"},{"title":"Add wallet to project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/wallet","href":"/api-reference/wallets/add-wallet-to-project"},{"title":"Add wallets to a project in bulk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v2/accounts/{accountSlug}/projects/{projectSlug}/wallets","href":"/api-reference/wallets/add-wallets-to-a-project-in-bulk"}]},{"group":"Other","public":true,"pages":[{"title":"Check supported networks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/supported-networks","href":"/api-reference/other/check-supported-networks"}]}]},{"tab":"Troubleshooting","pages":[{"title":"Troubleshooting","href":"/ru/troubleshooting/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/ru/changelog/overview"}]}]},{"language":"zh","tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/zh/introduction"}]},{"tab":"Supported Networks","pages":[{"title":"Supported Networks","href":"/zh/platform/supported-networks"}]},{"tab":"API Reference","groups":[{"group":"Projects","public":true,"pages":[{"title":"List projects","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/projects","href":"/api-reference/projects/list-projects"},{"title":"Create a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project","href":"/api-reference/projects/create-a-project"},{"title":"Get a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}","href":"/api-reference/projects/get-a-project"},{"title":"Update a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}","href":"/api-reference/projects/update-a-project"},{"title":"Delete a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}","href":"/api-reference/projects/delete-a-project"}]},{"group":"Simulator","public":true,"pages":[{"title":"Fetch all simulated transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/simulations","href":"/api-reference/simulator/fetch-all-simulated-transactions"},{"title":"Get quick simulated transaction details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}/info","href":"/api-reference/simulator/get-quick-simulated-transaction-details"},{"title":"Simulate transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulate","href":"/api-reference/simulator/simulate-transaction"},{"title":"Simulate bundled transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulate-bundle","href":"/api-reference/simulator/simulate-bundled-transactions"},{"title":"Get full simulated transaction details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}","href":"/api-reference/simulator/get-full-simulated-transaction-details"},{"title":"Enable simulation sharing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}/share","href":"/api-reference/simulator/enable-simulation-sharing"},{"title":"Disable simulation sharing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}/unshare","href":"/api-reference/simulator/disable-simulation-sharing"},{"title":"Get a simulation draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v2/account/{accountSlug}/project/{projectSlug}/simulation-drafts/{draftId}","href":"/api-reference/simulator/get-a-simulation-draft"},{"title":"Create a simulation draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v2/account/{accountSlug}/project/{projectSlug}/simulation-drafts","href":"/api-reference/simulator/create-a-simulation-draft"}]},{"group":"Virtual Environments","public":true,"pages":[{"title":"Batch Delete Environments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /public/v1/account/{accountSlug}/project/{projectSlug}/environments","href":"/api-reference/virtual-environments/batch-delete-environments"},{"title":"List Environments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments","href":"/api-reference/virtual-environments/list-environments"},{"title":"Create Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /public/v1/account/{accountSlug}/project/{projectSlug}/environments","href":"/api-reference/virtual-environments/create-environment"},{"title":"Delete Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}","href":"/api-reference/virtual-environments/delete-environment"},{"title":"Get Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}","href":"/api-reference/virtual-environments/get-environment"},{"title":"Get Environment Instance Transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/transactions","href":"/api-reference/virtual-environments/get-environment-instance-transactions"},{"title":"Get Environment Instance Transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/transactions/{txHash}","href":"/api-reference/virtual-environments/get-environment-instance-transaction"},{"title":"Send Transaction on Environment Virtual Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/vnet/{vnetId}/transactions","href":"/api-reference/virtual-environments/send-transaction-on-environment-virtual-environment"},{"title":"Simulate Transaction on Environment Virtual Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/vnet/{vnetId}/transactions/simulate","href":"/api-reference/virtual-environments/simulate-transaction-on-environment-virtual-environment"}]},{"group":"Alerts","public":true,"pages":[{"title":"Delete Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/alert/{alertId}","href":"/api-reference/alerts/delete-alert"},{"title":"Get Alert History","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/alert-history","href":"/api-reference/alerts/get-alert-history"},{"title":"List Alerts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/alerts","href":"/api-reference/alerts/list-alerts"},{"title":"Update Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/account/{accountSlug}/project/{projectSlug}/alert/{alertId}","href":"/api-reference/alerts/update-alert"},{"title":"Create Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/alert","href":"/api-reference/alerts/create-alert"},{"title":"Send test Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/test-alerts","href":"/api-reference/alerts/send-test-alert"}]},{"group":"Actions","public":true,"pages":[{"title":"Delete Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}","href":"/api-reference/actions/delete-web3-action"},{"title":"Get details for all Web3 Actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions","href":"/api-reference/actions/get-details-for-all-web3-actions"},{"title":"Get Web3 Action details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}","href":"/api-reference/actions/get-web3-action-details"},{"title":"Get execution history for single Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/calls","href":"/api-reference/actions/get-execution-history-for-single-web3-action"},{"title":"Get details for single Web3 Action execution","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/calls/call/{executionId}","href":"/api-reference/actions/get-details-for-single-web3-action-execution"},{"title":"Resume specific Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/resume","href":"/api-reference/actions/resume-specific-web3-action"},{"title":"Stop specific Web3 Action","description":"Stop a single Web3 Action by its ID so its trigger no longer executes the function. Resume it later with the resume endpoint.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/stop","href":"/api-reference/actions/stop-specific-web3-action"},{"title":"Create Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile","href":"/api-reference/actions/create-web3-action"},{"title":"Resume all Web3 Actions","description":"Resume every stopped Web3 Action in a Tenderly project in one request, so their triggers start executing the functions again.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/resume","href":"/api-reference/actions/resume-all-web3-actions"},{"title":"Stop all Web3 Actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/stop","href":"/api-reference/actions/stop-all-web3-actions"}]},{"group":"Delivery Channels","public":true,"pages":[{"title":"List Delivery Channels","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/delivery-channels","href":"/api-reference/delivery-channels/list-delivery-channels"},{"title":"List Delivery Channels for project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/delivery-channels","href":"/api-reference/delivery-channels/list-delivery-channels-for-project"}]},{"group":"Contracts","public":true,"pages":[{"title":"Delete contract from project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/contract/{networkId}/{address}","href":"/api-reference/contracts/delete-contract-from-project"},{"title":"Delete contract tag","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/contract/{networkId}/{address}/tag","href":"/api-reference/contracts/delete-contract-tag"},{"title":"Get all contracts in project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/contracts","href":"/api-reference/contracts/get-all-contracts-in-project"},{"title":"Add contract to project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/address","href":"/api-reference/contracts/add-contract-to-project"},{"title":"Rename contract","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/contract/{networkId}/{address}/rename","href":"/api-reference/contracts/rename-contract"},{"title":"Encode state overrides","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/contracts/encode-states","href":"/api-reference/contracts/encode-state-overrides"},{"title":"Add tag to mutiple contracts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/tag","href":"/api-reference/contracts/add-tag-to-mutiple-contracts"}]},{"group":"Wallets","public":true,"pages":[{"title":"Get wallet in project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/wallet/{address}/network/{networkId}","href":"/api-reference/wallets/get-wallet-in-project"},{"title":"Add wallet to project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/wallet","href":"/api-reference/wallets/add-wallet-to-project"},{"title":"Add wallets to a project in bulk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v2/accounts/{accountSlug}/projects/{projectSlug}/wallets","href":"/api-reference/wallets/add-wallets-to-a-project-in-bulk"}]},{"group":"Other","public":true,"pages":[{"title":"Check supported networks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/supported-networks","href":"/api-reference/other/check-supported-networks"}]}]},{"tab":"Troubleshooting","pages":[{"title":"Troubleshooting","href":"/zh/troubleshooting/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/zh/changelog/overview"}]}]},{"language":"hi","tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/hi/introduction"}]},{"tab":"Supported Networks","pages":[{"title":"Supported Networks","href":"/hi/platform/supported-networks"}]},{"tab":"API Reference","groups":[{"group":"Projects","public":true,"pages":[{"title":"List projects","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/projects","href":"/api-reference/projects/list-projects"},{"title":"Create a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project","href":"/api-reference/projects/create-a-project"},{"title":"Get a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}","href":"/api-reference/projects/get-a-project"},{"title":"Update a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}","href":"/api-reference/projects/update-a-project"},{"title":"Delete a project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}","href":"/api-reference/projects/delete-a-project"}]},{"group":"Simulator","public":true,"pages":[{"title":"Fetch all simulated transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/simulations","href":"/api-reference/simulator/fetch-all-simulated-transactions"},{"title":"Get quick simulated transaction details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}/info","href":"/api-reference/simulator/get-quick-simulated-transaction-details"},{"title":"Simulate transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulate","href":"/api-reference/simulator/simulate-transaction"},{"title":"Simulate bundled transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulate-bundle","href":"/api-reference/simulator/simulate-bundled-transactions"},{"title":"Get full simulated transaction details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}","href":"/api-reference/simulator/get-full-simulated-transaction-details"},{"title":"Enable simulation sharing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}/share","href":"/api-reference/simulator/enable-simulation-sharing"},{"title":"Disable simulation sharing","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/simulations/{simulationId}/unshare","href":"/api-reference/simulator/disable-simulation-sharing"},{"title":"Get a simulation draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v2/account/{accountSlug}/project/{projectSlug}/simulation-drafts/{draftId}","href":"/api-reference/simulator/get-a-simulation-draft"},{"title":"Create a simulation draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v2/account/{accountSlug}/project/{projectSlug}/simulation-drafts","href":"/api-reference/simulator/create-a-simulation-draft"}]},{"group":"Virtual Environments","public":true,"pages":[{"title":"Batch Delete Environments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /public/v1/account/{accountSlug}/project/{projectSlug}/environments","href":"/api-reference/virtual-environments/batch-delete-environments"},{"title":"List Environments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments","href":"/api-reference/virtual-environments/list-environments"},{"title":"Create Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /public/v1/account/{accountSlug}/project/{projectSlug}/environments","href":"/api-reference/virtual-environments/create-environment"},{"title":"Delete Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}","href":"/api-reference/virtual-environments/delete-environment"},{"title":"Get Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}","href":"/api-reference/virtual-environments/get-environment"},{"title":"Get Environment Instance Transactions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/transactions","href":"/api-reference/virtual-environments/get-environment-instance-transactions"},{"title":"Get Environment Instance Transaction","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/transactions/{txHash}","href":"/api-reference/virtual-environments/get-environment-instance-transaction"},{"title":"Send Transaction on Environment Virtual Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/vnet/{vnetId}/transactions","href":"/api-reference/virtual-environments/send-transaction-on-environment-virtual-environment"},{"title":"Simulate Transaction on Environment Virtual Environment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /public/v1/account/{accountSlug}/project/{projectSlug}/environments/{environmentId}/instance/{instanceId}/vnet/{vnetId}/transactions/simulate","href":"/api-reference/virtual-environments/simulate-transaction-on-environment-virtual-environment"}]},{"group":"Alerts","public":true,"pages":[{"title":"Delete Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/alert/{alertId}","href":"/api-reference/alerts/delete-alert"},{"title":"Get Alert History","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/alert-history","href":"/api-reference/alerts/get-alert-history"},{"title":"List Alerts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/alerts","href":"/api-reference/alerts/list-alerts"},{"title":"Update Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/account/{accountSlug}/project/{projectSlug}/alert/{alertId}","href":"/api-reference/alerts/update-alert"},{"title":"Create Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/alert","href":"/api-reference/alerts/create-alert"},{"title":"Send test Alert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/test-alerts","href":"/api-reference/alerts/send-test-alert"}]},{"group":"Actions","public":true,"pages":[{"title":"Delete Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}","href":"/api-reference/actions/delete-web3-action"},{"title":"Get details for all Web3 Actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions","href":"/api-reference/actions/get-details-for-all-web3-actions"},{"title":"Get Web3 Action details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}","href":"/api-reference/actions/get-web3-action-details"},{"title":"Get execution history for single Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/calls","href":"/api-reference/actions/get-execution-history-for-single-web3-action"},{"title":"Get details for single Web3 Action execution","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/calls/call/{executionId}","href":"/api-reference/actions/get-details-for-single-web3-action-execution"},{"title":"Resume specific Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/resume","href":"/api-reference/actions/resume-specific-web3-action"},{"title":"Stop specific Web3 Action","description":"Stop a single Web3 Action by its ID so its trigger no longer executes the function. Resume it later with the resume endpoint.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/action/{actionId}/stop","href":"/api-reference/actions/stop-specific-web3-action"},{"title":"Create Web3 Action","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/publishFile","href":"/api-reference/actions/create-web3-action"},{"title":"Resume all Web3 Actions","description":"Resume every stopped Web3 Action in a Tenderly project in one request, so their triggers start executing the functions again.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/resume","href":"/api-reference/actions/resume-all-web3-actions"},{"title":"Stop all Web3 Actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/actions/stop","href":"/api-reference/actions/stop-all-web3-actions"}]},{"group":"Delivery Channels","public":true,"pages":[{"title":"List Delivery Channels","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/delivery-channels","href":"/api-reference/delivery-channels/list-delivery-channels"},{"title":"List Delivery Channels for project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/delivery-channels","href":"/api-reference/delivery-channels/list-delivery-channels-for-project"}]},{"group":"Contracts","public":true,"pages":[{"title":"Delete contract from project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/contract/{networkId}/{address}","href":"/api-reference/contracts/delete-contract-from-project"},{"title":"Delete contract tag","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/account/{accountSlug}/project/{projectSlug}/contract/{networkId}/{address}/tag","href":"/api-reference/contracts/delete-contract-tag"},{"title":"Get all contracts in project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/contracts","href":"/api-reference/contracts/get-all-contracts-in-project"},{"title":"Add contract to project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/address","href":"/api-reference/contracts/add-contract-to-project"},{"title":"Rename contract","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/contract/{networkId}/{address}/rename","href":"/api-reference/contracts/rename-contract"},{"title":"Encode state overrides","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/contracts/encode-states","href":"/api-reference/contracts/encode-state-overrides"},{"title":"Add tag to mutiple contracts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/tag","href":"/api-reference/contracts/add-tag-to-mutiple-contracts"}]},{"group":"Wallets","public":true,"pages":[{"title":"Get wallet in project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/account/{accountSlug}/project/{projectSlug}/wallet/{address}/network/{networkId}","href":"/api-reference/wallets/get-wallet-in-project"},{"title":"Add wallet to project","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/account/{accountSlug}/project/{projectSlug}/wallet","href":"/api-reference/wallets/add-wallet-to-project"},{"title":"Add wallets to a project in bulk","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v2/accounts/{accountSlug}/projects/{projectSlug}/wallets","href":"/api-reference/wallets/add-wallets-to-a-project-in-bulk"}]},{"group":"Other","public":true,"pages":[{"title":"Check supported networks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/supported-networks","href":"/api-reference/other/check-supported-networks"}]}]},{"tab":"Troubleshooting","pages":[{"title":"Troubleshooting","href":"/hi/troubleshooting/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/hi/changelog/overview"}]}]}]},"title":"Create Web3 Action - Tenderly","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}