Use Tenderly Github action to set up Continuous Integration and Continuous Deployment (CI/CD) to test and stage Solidity smart contracts with Hardhat
Learn how to configure a GitHub Action to set up a Continuous Integration and Continuous Deployment pipeline (CI/CD) with Hardhat on Tenderly Virtual Environments.Use the Tenderly Virtual Environment Setup to enable automated builds that test and deploy your contracts across multiple networks. After successful testing, you can stage them for the rest of your team by deploying them to provisioned Virtual Environments.In this guide, you need to complete two stages:
Local setup: Set up Hardhat and create and test the workflow file.
Github setup: Set up a GitHub Action, configure GitHub secrets and variables, and test the build.
For reference, use this example project:
CI/CD setup with hardhat-ignition
This guide demonstrates a CI setup that relies on Hardhat-ignition. For hardhat-verify setup, the process and configuration are similar.
Continuous integration (CI) and continous deployment (CD) with Virtual Environments
{"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":"6ad9f49a8f23b90832223f02","collectionId":"c7187a0f-3ad3-4aa8-9025-a93ff3bd5c62","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad9f49a8f23b90832223f02"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"}},"buildId":"6ad9f5238b3d16364f9809f3","clientVersion":"0.0.3926","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}},"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"editor-nav-generations","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":"vite-origin","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":"editor-agent-model-picker","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}],"privacy":{"consentBanner":{"enabled":true}},"isAtlas":false,"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":"virtual-environments/ci-cd/github-actions-hardhat","slug":"/virtual-environments/ci-cd/github-actions-hardhat","pageMetadata":{"title":"Hardhat and Github Actions","description":"Use Tenderly Github action to set up Continuous Integration and Continuous Deployment (CI/CD) to test and stage Solidity smart contracts with Hardhat","href":"/virtual-environments/ci-cd/github-actions-hardhat"},"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: \"Use Tenderly Github action to set up Continuous Integration and Continuous Deployment (CI/CD) to test and stage Solidity smart contracts with Hardhat\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CodeBlock,Frame,Heading,Note,OptimizedImage,Steps,Table}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Learn how to configure a GitHub Action to set up a Continuous Integration and Continuous Deployment pipeline (CI/CD) with Hardhat on Tenderly Virtual Environments.`}),`\n`,_jsxs(_components.p,{children:[`Use the `,_jsx(_components.a,{href:`https://github.com/marketplace/actions/tenderly-virtual-testnet-setup`,children:`Tenderly Virtual Environment Setup`}),` to enable automated builds that test and deploy your contracts across multiple networks. After successful testing, you can stage them for the rest of your team by deploying them to provisioned Virtual Environments.`]}),`\n`,_jsx(_components.p,{children:`In this guide, you need to complete two stages:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Local setup: Set up Hardhat and create and test the workflow file.`}),`\n`,_jsx(_components.li,{children:`Github setup: Set up a GitHub Action, configure GitHub secrets and variables, and test the build.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`For reference, use this example project:`}),`\n`,_jsx(Card,{title:`CI/CD setup with hardhat-ignition`,href:``}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`This guide demonstrates a CI setup that relies on Hardhat-ignition. For `,_jsx(_components.code,{children:`hardhat-verify`}),` setup, the process and configuration are similar.`]})}),`\n`,_jsx(Frame,{caption:`Continuous integration (CI) and continous deployment (CD) with Virtual Environments`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/testnets/ci.png?fit=max\u0026auto=format\u0026n=XsEZlaGXYskrtN68\u0026q=85\u0026s=2feac85321ea229193ae44bdbc1c1c38`,alt:`Continuous integration (CI) and continous deployment (CD) with Virtual Environments`,\"data-og-width\":`1920`,width:`1920`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`images/testnets/ci.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/testnets/ci.png?w=280\u0026fit=max\u0026auto=format\u0026n=XsEZlaGXYskrtN68\u0026q=85\u0026s=32d6c319eb06ccaffafccb56d44a77ef 280w, https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/testnets/ci.png?w=560\u0026fit=max\u0026auto=format\u0026n=XsEZlaGXYskrtN68\u0026q=85\u0026s=32db099d85af0cdcdd8e1499c0cb20be 560w, https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/testnets/ci.png?w=840\u0026fit=max\u0026auto=format\u0026n=XsEZlaGXYskrtN68\u0026q=85\u0026s=3ac330a76fd7c9b01ada12a8520f653f 840w, https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/testnets/ci.png?w=1100\u0026fit=max\u0026auto=format\u0026n=XsEZlaGXYskrtN68\u0026q=85\u0026s=d9fe281c219464238dddf1ff8f952116 1100w, https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/testnets/ci.png?w=1650\u0026fit=max\u0026auto=format\u0026n=XsEZlaGXYskrtN68\u0026q=85\u0026s=5970f9ca00bc639fc26498c1059f02e9 1650w, https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/testnets/ci.png?w=2500\u0026fit=max\u0026auto=format\u0026n=XsEZlaGXYskrtN68\u0026q=85\u0026s=58df0e877ccf94c9ff8c64cd1d39ae77 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`stage-1-local-setup`,children:`Stage 1: Local setup`}),`\n`,_jsx(_components.p,{children:`First, we’ll install necessary dependencies and create a workflow file.`}),`\n`,_jsxs(Steps,{children:[_jsx(Heading,{level:`3`,id:`install-dependencies`,children:`Install dependencies`}),_jsx(_components.p,{children:`Make sure you have the following packages installed:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-latte catppuccin-mocha`,style:{backgroundColor:`#eff1f5`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#4c4f69`,\"--shiki-dark\":`#cdd6f4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`npm`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` install`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` --save-dev`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` @tenderly/hardhat-tenderly`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` @nomicfoundation/hardhat-ignition`})]}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`create-the-workflow-file`,children:`Create the workflow file`}),_jsx(_components.p,{children:`To set up the GitHub Action, create a new workflow:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-latte catppuccin-mocha`,style:{backgroundColor:`#eff1f5`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#4c4f69`,\"--shiki-dark\":`#cdd6f4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`mkdir`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` -p`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` .github/workflows`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`touch`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` ci-cd.yaml`})]}),`\n`]})})}),_jsx(_components.p,{children:`Next, paste the following yaml file that configures two jobs:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`test`})}),` job to run hardhat tests using a single network for testing`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`deploy`})}),` job to deploy contracts to multiple networks (Mainnet and Base) after successful testing`]}),`\n`]}),_jsxs(Note,{children:[_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`mode`}),` argument takes values `,_jsx(_components.code,{children:`CI`}),` and `,_jsx(_components.code,{children:`CD`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`CD`}),` mode keeps the Virtual Environment active and you can work with deployed contracts.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`CI`}),` mode pauses the Virtual Environment after the step completes. You’ll be able to inspect transactions but won’t be able to send further RPC requests.`]}),`\n`]})]}),_jsx(CodeBlock,{filename:`ci-cd.yaml`,numberOfLines:`82`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-latte catppuccin-mocha`,style:{backgroundColor:`#eff1f5`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#4c4f69`,\"--shiki-dark\":`#cdd6f4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`82`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:`name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` Hardhat CI/CD Multichain`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`on`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` [`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:`push`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` pull_request`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:` ## Needed available as env variables for hardhat.config.js`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` TENDERLY_PROJECT_NAME`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\" ${{ vars.TENDERLY_PROJECT_NAME }}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` TENDERLY_ACCOUNT_NAME`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\" ${{ vars.TENDERLY_ACCOUNT_NAME }}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:`jobs`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` test`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` runs-on`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` ubuntu-latest`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` steps`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` -`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` uses`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` actions/checkout@v4`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` -`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` Setup Node.js`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` uses`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` actions/setup-node@v4`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` with`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` node-version`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` '20'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` cache`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` 'npm'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` -`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` Setup Virtual Environment`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` uses`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` tenderly/vnet-github-action@v1.0.14`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` with`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` mode`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` CI`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:` # pauses the Virtual Environment after deployment`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` access_key`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\" ${{ secrets.TENDERLY_ACCESS_KEY }}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` project_name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\" ${{ vars.TENDERLY_PROJECT_NAME }}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` account_name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\" ${{ vars.TENDERLY_ACCOUNT_NAME }}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` testnet_name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` \"Testing\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` network_id`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:` 1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` chain_id_prefix`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:` 7357`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` public_explorer`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:` true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` verification_visibility`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` 'src'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` push_on_complete`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:` true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` -`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` Install dependencies`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` run`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` npm install`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` working-directory`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` examples/hardhat-ignition`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` -`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` Run Tests`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` run`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` npm run test:1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` working-directory`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` examples/hardhat-ignition`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` deploy`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` needs`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` test`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` runs-on`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` ubuntu-latest`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` permissions`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` contents`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` write`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` steps`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` -`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` uses`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` actions/checkout@v4`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` -`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` Setup Node.js`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` uses`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` actions/setup-node@v4`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` with`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` node-version`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` '20'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` cache`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` 'npm'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` -`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` Setup Virtual Environment`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` uses`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` tenderly/vnet-github-action@v1.0.14`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` with`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` mode`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` CD`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` access_key`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\" ${{ secrets.TENDERLY_ACCESS_KEY }}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` project_name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\" ${{ vars.TENDERLY_PROJECT_NAME }}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` account_name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\" ${{ vars.TENDERLY_ACCOUNT_NAME }}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` testnet_name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` \"Staging\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` network_id`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#8839EF`,\"--shiki-dark\":`#CBA6F7`},children:` |`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` 1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` 8453`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` chain_id_prefix`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` \"\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` public_explorer`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:` true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` verification_visibility`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` 'src'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` push_on_complete`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:` true`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` -`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` Install dependencies`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` run`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` npm install`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` working-directory`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` examples/hardhat-ignition`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` -`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` Deploy Contracts Mainnet`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` run`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\" npm run deploy:1 -- --deployment-id deploy-1-${BUILD_SLUG}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` working-directory`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` examples/hardhat-ignition`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` -`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` name`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` Deploy Contracts Base`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` run`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\" npm run deploy:8453 -- --deployment-id deploy-8453-${BUILD_SLUG}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:` working-directory`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` examples/hardhat-ignition`})]}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`prepare-environment-variables`,children:`Prepare environment variables`}),_jsxs(_components.p,{children:[`For local testing, set up an `,_jsx(_components.code,{children:`.env`}),` file using this template:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`dotenv`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-latte catppuccin-mocha`,style:{backgroundColor:`#eff1f5`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#4c4f69`,\"--shiki-dark\":`#cdd6f4`},language:`dotenv`,children:_jsxs(_components.code,{language:`dotenv`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`## Access parameters`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`TENDERLY_ACCESS_KEY`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`...`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`TENDERLY_PROJECT_NAME`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`...`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`TENDERLY_ACCOUNT_NAME`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`...`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`## Network-specific parameters (populated by the action in CI/CD)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`TENDERLY_ADMIN_RPC_URL_1`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`... `}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`# Mainnet RPC`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`TENDERLY_ADMIN_RPC_URL_8453`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`... `}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`# Base RPC`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`TENDERLY_CHAIN_ID_1`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`... `}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`# Mainnet chain ID`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`TENDERLY_CHAIN_ID_8453`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`... `}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`# Base chain ID`})]}),`\n`]})})}),_jsx(_components.p,{children:`Required variables:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TENDERLY_ACCESS_KEY`}),`: Learn how to `,_jsx(_components.a,{href:`/platform/account/projects/api-tokens`,children:`get your access key`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TENDERLY_ACCOUNT_NAME`}),` and `,_jsx(_components.code,{children:`TENDERLY_PROJECT_NAME`}),`: Follow steps to `,_jsx(_components.a,{href:`/platform/account/projects/api-tokens`,children:`get your account and project name`})]}),`\n`]}),_jsx(Heading,{level:`3`,id:`configure-hardhat`,children:`Configure Hardhat`}),_jsxs(_components.p,{children:[`Add the Virtual Environment configuration to `,_jsx(_components.code,{children:`hardhat.config.ts`}),`:`]}),_jsx(CodeBlock,{filename:`hardhat.config.ts`,numberOfLines:`50`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-latte catppuccin-mocha`,style:{backgroundColor:`#eff1f5`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#4c4f69`,\"--shiki-dark\":`#cdd6f4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`50`,children:[_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`dotenv`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`config`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`()`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8839EF`,\"--shiki-dark\":`#CBA6F7`},children:`const`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` config`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#DF8E1D`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F9E2AF`,\"--shiki-dark-font-style\":`italic`},children:` HardhatUserConfig `}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` solidity`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` \"0.8.27\"`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` networks`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` mainnet`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` url`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_ADMIN_RPC_URL_1`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` chainId`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` parseInt`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`(process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_CHAIN_ID_1`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:` ||`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` \"1\"`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` base`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` url`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_ADMIN_RPC_URL_8453`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` chainId`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` parseInt`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`(process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_CHAIN_ID_8453`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:` ||`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` \"8453\"`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` etherscan`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` apiKey`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` mainnet`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_ACCESS_KEY`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`!`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` base`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_ACCESS_KEY`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`!`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` customChains`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` network`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` \"mainnet\"`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` chainId`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` parseInt`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`(process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_CHAIN_ID_1`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`!`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`)`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` urls`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` apiURL`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\" `\"}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:\"${\"}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_ADMIN_RPC_URL_1`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`}`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\"/verify`\"}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` browserURL`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_ADMIN_RPC_URL_1`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`!`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` network`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` \"base\"`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` chainId`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:` parseInt`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`(process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_CHAIN_ID_8453`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`!`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`)`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` urls`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` apiURL`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\" `\"}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:\"${\"}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_ADMIN_RPC_URL_8453`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`}`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:\"/verify`\"}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` browserURL`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_ADMIN_RPC_URL_8453`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`!`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` tenderly`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` project`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_PROJECT_NAME`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`!`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` username`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_ACCOUNT_NAME`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`!`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` accessKey`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` process`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:`env`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`.`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:`TENDERLY_ACCESS_KEY`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`!`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` sourcify`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` enabled`}),_jsx(_components.span,{style:{color:`#179299`,\"--shiki-dark\":`#94E2D5`},children:`:`}),_jsx(_components.span,{style:{color:`#FE640B`,\"--shiki-dark\":`#FAB387`},children:` false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8839EF`,\"--shiki-dark\":`#CBA6F7`},children:`export`}),_jsx(_components.span,{style:{color:`#8839EF`,\"--shiki-dark\":`#CBA6F7`},children:` default`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:` config`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`;`})]}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`add-test-and-deploy-scripts`,children:`Add test and deploy scripts`}),_jsxs(_components.p,{children:[`Add the following scripts to your `,_jsx(_components.code,{children:`package.json`}),` for multi-network testing and deployment:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-latte catppuccin-mocha`,style:{backgroundColor:`#eff1f5`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#4c4f69`,\"--shiki-dark\":`#cdd6f4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` \"`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:`scripts`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`\"`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` \"`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:`deploy:1`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`\"`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` \"npx hardhat ignition deploy ./ignition/modules/Counter.js --network mainnet\"`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` \"`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:`deploy:8453`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`\"`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` \"npx hardhat ignition deploy ./ignition/modules/Counter.js --network base\"`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` \"`}),_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-dark\":`#89B4FA`},children:`test:1`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`\"`}),_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` \"npx hardhat test --network mainnet\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-dark\":`#9399B2`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:`The deploy commands use the BUILD_SLUG environment variable (provided by the action) to create unique deployment identifiers.`}),_jsx(Heading,{level:`3`,id:`test-the-build-locally`,children:`Test the build locally`}),_jsx(_components.p,{children:`To test the build locally, run the following commands:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-latte catppuccin-mocha`,style:{backgroundColor:`#eff1f5`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#4c4f69`,\"--shiki-dark\":`#cdd6f4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`# Test on mainnet fork`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`npx`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` hardhat`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` test:1`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`# Deploy to mainnet fork`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`npx`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` hardhat`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` deploy:1`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#7C7F93`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`# Deploy to Base fork`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`npx`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` hardhat`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` deploy:8453`})]}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`test-the-github-action-locally`,children:`Test the Github Action locally`}),_jsxs(_components.p,{children:[`To test your action locally, you can use `,_jsx(_components.a,{href:`https://github.com/nektos/act`,children:`Act`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-latte catppuccin-mocha`,style:{backgroundColor:`#eff1f5`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#4c4f69`,\"--shiki-dark\":`#cdd6f4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`act`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` --secret-file`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` .env`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` --var-file`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` .env`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`stage-2-github-setup`,children:`Stage 2: Github Setup`}),`\n`,_jsx(_components.p,{children:`After successful local setup, proceed by configuring Github with environment variables and necessary secrets.`}),`\n`,_jsxs(Steps,{children:[_jsx(Heading,{level:`3`,id:`configure-secrets-and-environment-variables-in-github`,children:`Configure secrets and environment variables in GitHub`}),_jsx(_components.p,{children:`You must configure the following Github variables and secret:`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Variables:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`TENDERLY_PROJECT_NAME`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`TENDERLY_ACCOUNT_NAME`})}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Secrets:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`TENDERLY_ACCESS_KEY`})}),`\n`]}),_jsxs(_components.p,{children:[`You can configure these via the `,_jsx(_components.a,{href:`https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/use-variables#creating-configuration-variables-for-a-repository`,children:`GitHub UI`}),` or using the `,_jsx(_components.code,{children:`gh`}),` command line:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-latte catppuccin-mocha`,style:{backgroundColor:`#eff1f5`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#4c4f69`,\"--shiki-dark\":`#cdd6f4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D20F39`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F38BA8`,\"--shiki-dark-font-style\":`italic`},children:`source`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` .env`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`gh`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` variable`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` set`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` TENDERLY_PROJECT_NAME`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` --body`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:\" ${TENDERLY_PROJECT_NAME}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`gh`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` variable`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` set`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` TENDERLY_ACCOUNT_NAME`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` --body`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:\" ${TENDERLY_ACCOUNT_NAME}\"})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`gh`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` secret`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` set`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` TENDERLY_ACCESS_KEY`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` --body`}),_jsx(_components.span,{style:{color:`#4C4F69`,\"--shiki-dark\":`#CDD6F4`},children:\" ${TENDERLY_ACCESS_KEY}\"})]}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`push-the-updates`,children:`Push the updates`}),_jsx(_components.p,{children:`To trigger the GitHub Action, push your changes:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes catppuccin-latte catppuccin-mocha`,style:{backgroundColor:`#eff1f5`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#4c4f69`,\"--shiki-dark\":`#cdd6f4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`git`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` add`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` .`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`git`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` commit`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` -m`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` \"Add CI/CD workflow for multichain deployment\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E66F5`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#89B4FA`,\"--shiki-dark-font-style\":`italic`},children:`git`}),_jsx(_components.span,{style:{color:`#40A02B`,\"--shiki-dark\":`#A6E3A1`},children:` push`})]}),`\n`]})})}),_jsx(Heading,{level:`3`,id:`check-your-action`,children:`Check your action`}),_jsx(_components.p,{children:`Go to your Github repository and check the Actions tab. You should see:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Test job running against the mainnet fork`}),`\n`,_jsx(_components.li,{children:`Deploy job creating two Virtual Environments (mainnet and Base)`}),`\n`,_jsx(_components.li,{children:`Deployment artifacts being pushed to the repository`}),`\n`]}),_jsx(Heading,{level:`3`,id:`get-the-rpc-links`,children:`Get the RPC links`}),_jsx(_components.p,{children:`To get the RPC links for your deployed contracts:`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Tenderly dashboard > Virtual Environments`})]}),`\n`,_jsx(_components.li,{children:`Find your CD Virtual Environments (one for mainnet fork, one for Base fork)`}),`\n`,_jsx(_components.li,{children:`Click on each to get their respective RPC URLs`}),`\n`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`environment-variables-reference`,children:`Environment Variables Reference`}),`\n`,_jsx(_components.p,{children:`The GitHub Action exposes the following network-specific variables:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`TENDERLY_TESTNET_ID_{network_id}`})}),_jsx(_components.td,{children:`Virtual Environment UUID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`TENDERLY_ADMIN_RPC_URL_{network_id}`})}),_jsx(_components.td,{children:`Admin RPC endpoint with cheatcode methods`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`TENDERLY_PUBLIC_RPC_URL_{network_id}`})}),_jsx(_components.td,{children:`Public RPC endpoint`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`TENDERLY_CHAIN_ID_{network_id}`})}),_jsx(_components.td,{children:`Chain ID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`TENDERLY_TESTNET_SLUG_{network_id}`})}),_jsx(_components.td,{children:`Unique Virtual Environment slug`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BUILD_SLUG`})}),_jsx(_components.td,{children:`Unique identifier for the current build`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next steps`}),`\n`,_jsx(_components.p,{children:`Explore other examples:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://github.com/Tenderly/vnet-github-action/tree/main/examples/hardhat`,children:`Hardhat with ethers-v6`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://github.com/Tenderly/vnet-github-action/tree/main/examples/foundry`,children:`Foundry setup`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://github.com/Tenderly/vnet-github-action/tree/main/examples/advanced`,children:`Advanced deployment patterns`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}},"config":{},"pageMetadata":{"title":"Hardhat and Github Actions","description":"Use Tenderly Github action to set up Continuous Integration and Continuous Deployment (CI/CD) to test and stage Solidity smart contracts with Hardhat","href":"/virtual-environments/ci-cd/github-actions-hardhat"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Stage 1: Local setup","slug":"stage-1-local-setup","depth":2,"children":[{"title":"Install dependencies","slug":"install-dependencies","depth":3,"children":[]},{"title":"Create the workflow file","slug":"create-the-workflow-file","depth":3,"children":[]},{"title":"Prepare environment variables","slug":"prepare-environment-variables","depth":3,"children":[]},{"title":"Configure Hardhat","slug":"configure-hardhat","depth":3,"children":[]},{"title":"Add test and deploy scripts","slug":"add-test-and-deploy-scripts","depth":3,"children":[]},{"title":"Test the build locally","slug":"test-the-build-locally","depth":3,"children":[]},{"title":"Test the Github Action locally","slug":"test-the-github-action-locally","depth":3,"children":[]}]},{"title":"Stage 2: Github Setup","slug":"stage-2-github-setup","depth":2,"children":[{"title":"Configure secrets and environment variables in GitHub","slug":"configure-secrets-and-environment-variables-in-github","depth":3,"children":[]},{"title":"Push the updates","slug":"push-the-updates","depth":3,"children":[]},{"title":"Check your action","slug":"check-your-action","depth":3,"children":[]},{"title":"Get the RPC links","slug":"get-the-rpc-links","depth":3,"children":[]}]},{"title":"Environment Variables Reference","slug":"environment-variables-reference","depth":2,"children":[]},{"title":"Next steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/tenderly/1739df5cc0e07d0b/node-rpc/rpc-explorer.js","/_mintlify/custom/tenderly/1addc19f7236008b/platform/supported-networks.js","/_mintlify/custom/tenderly/896485a8a0369426/seo-schema.js","/_mintlify/custom/tenderly/072d16806bddf995/matomo.js"],"subdomain":"tenderly","siteName":"Tenderly","title":"Hardhat and Github Actions - Tenderly","contextualStarterQuestions":[{"_id":"6a6a043db86208ad1a84c8ea","deploymentId":"6a01e29b70901983f3805261","questionText":"What are the setup stages needed?","status":"active","generatedBy":"contextual","path":"virtual-environments/ci-cd/github-actions-hardhat","createdAt":"2026-07-29T13:46:37.377Z","updatedAt":"2026-07-29T13:46:37.377Z","__v":0},{"_id":"6a6a043db86208ad1a84c8eb","deploymentId":"6a01e29b70901983f3805261","questionText":"How do I deploy to Virtual Environments?","status":"active","generatedBy":"contextual","path":"virtual-environments/ci-cd/github-actions-hardhat","createdAt":"2026-07-29T13:46:37.377Z","updatedAt":"2026-07-29T13:46:37.377Z","__v":0},{"_id":"6a6a043db86208ad1a84c8e9","deploymentId":"6a01e29b70901983f3805261","questionText":"How do I set up Hardhat CI/CD?","status":"active","generatedBy":"contextual","path":"virtual-environments/ci-cd/github-actions-hardhat","createdAt":"2026-07-29T13:46:37.377Z","updatedAt":"2026-07-29T13:46:37.377Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/virtual-environments/ci-cd/github-actions-hardhat","matchLevel":0},"ru":{"href":"/ru/virtual-environments/ci-cd/github-actions-hardhat","matchLevel":1},"zh":{"href":"/zh/virtual-environments/ci-cd/github-actions-hardhat","matchLevel":1},"hi":{"href":"/hi/virtual-environments/ci-cd/github-actions-hardhat","matchLevel":1}}},"lastModified":"2026-06-19T15:33:00.419Z","originalFileLocation":"virtual-environments/ci-cd/github-actions-hardhat.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=\"Use Tenderly Github action to set up Continuous Integration and Continuous Deployment (CI/CD) to test and stage Solidity smart contracts with Hardhat\">\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=\"Hardhat and Github Actions - Tenderly\">\u003cmeta data-mint-head property=\"og:description\" content=\"Use Tenderly Github action to set up Continuous Integration and Continuous Deployment (CI/CD) to test and stage Solidity smart contracts with Hardhat\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tenderly\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tenderly.co/virtual-environments/ci-cd/github-actions-hardhat\">\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=CI%2FCD+%26+staging\u0026amp;title=Hardhat+and+Github+Actions\u0026amp;description=Use+Tenderly+Github+action+to+set+up+Continuous+Integration+and+Continuous+Deployment+%28CI%2FCD%29+to+test+and+stage+Solidity+smart+contracts+with+Hardhat\u0026amp;theme=9310d4144b9d3c109a12dda2\u0026amp;signature=64b8254e3a53d74e145813fdc928a39502cf694e2ef7c7ac956348a6fc0247c3\">\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=\"Hardhat and Github Actions - Tenderly\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Use Tenderly Github action to set up Continuous Integration and Continuous Deployment (CI/CD) to test and stage Solidity smart contracts with Hardhat\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tenderly.mintlify.app/_mintlify/api/og/v2?division=CI%2FCD+%26+staging\u0026amp;title=Hardhat+and+Github+Actions\u0026amp;description=Use+Tenderly+Github+action+to+set+up+Continuous+Integration+and+Continuous+Deployment+%28CI%2FCD%29+to+test+and+stage+Solidity+smart+contracts+with+Hardhat\u0026amp;theme=9310d4144b9d3c109a12dda2\u0026amp;signature=64b8254e3a53d74e145813fdc928a39502cf694e2ef7c7ac956348a6fc0247c3\">\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/virtual-environments/ci-cd/github-actions-hardhat\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/virtual-environments/ci-cd/github-actions-hardhat.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.tenderly.co/virtual-environments/ci-cd/github-actions-hardhat\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://docs.tenderly.co/ru/virtual-environments/ci-cd/github-actions-hardhat\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.tenderly.co/zh/virtual-environments/ci-cd/github-actions-hardhat\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"hi\" href=\"https://docs.tenderly.co/hi/virtual-environments/ci-cd/github-actions-hardhat\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.tenderly.co/virtual-environments/ci-cd/github-actions-hardhat\">\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/virtual-environments/ci-cd/github-actions-hardhat#webpage\",\"url\":\"https://docs.tenderly.co/virtual-environments/ci-cd/github-actions-hardhat\",\"name\":\"Hardhat and Github Actions\",\"description\":\"Use Tenderly Github action to set up Continuous Integration and Continuous Deployment (CI/CD) to test and stage Solidity smart contracts with Hardhat\",\"dateModified\":\"2026-06-19T15:33:00.419Z\",\"isPartOf\":{\"@id\":\"https://docs.tenderly.co#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tenderly.co/virtual-environments/ci-cd/github-actions-hardhat#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tenderly.co/virtual-environments/ci-cd/github-actions-hardhat#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Simulator\",\"item\":\"https://docs.tenderly.co/virtual-environments/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Virtual Environments\",\"item\":\"https://docs.tenderly.co/virtual-environments/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How-to guides\",\"item\":\"https://docs.tenderly.co/virtual-environments/interact/add-to-wallet\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Hardhat and Github Actions\",\"item\":\"https://docs.tenderly.co/virtual-environments/ci-cd/github-actions-hardhat\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.tenderly.co/virtual-environments/ci-cd/github-actions-hardhat#article\",\"headline\":\"Hardhat and Github Actions\",\"name\":\"Hardhat and Github Actions\",\"description\":\"Use Tenderly Github action to set up Continuous Integration and Continuous Deployment (CI/CD) to test and stage Solidity smart contracts with Hardhat\",\"url\":\"https://docs.tenderly.co/virtual-environments/ci-cd/github-actions-hardhat\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tenderly.co/virtual-environments/ci-cd/github-actions-hardhat#webpage\"},\"dateModified\":\"2026-06-19T15:33:00.419Z\",\"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","groups":[{"group":"Getting Started","public":true,"pages":[{"title":"Tenderly Docs: Simulate, Debug, and Monitor Onchain","sidebarTitle":"What is Tenderly?","href":"/introduction"},{"title":"What you get","href":"/what-you-get"}]},{"group":"Simulator","public":true,"pages":[{"group":"Virtual Environments","public":true,"pages":[{"title":"Virtual Environments","href":"/virtual-environments/overview"},{"group":"Get started","public":true,"pages":[{"title":"Virtual Environment quickstart","href":"/virtual-environments/quickstart"},{"title":"Multichain quickstart","href":"/virtual-environments/multichain/quickstart"}]},{"group":"How-to guides","public":true,"pages":[{"group":"Setup \u0026 connections","public":true,"pages":[{"title":"Adding Virtual Environments to Wallets","href":"/virtual-environments/interact/add-to-wallet"},{"title":"Connect to a WebSocket on Virtual Environments","href":"/virtual-environments/interact/websockets"},{"title":"Virtual Environment Integration Guides","href":"/virtual-environments/integrations"},{"group":"Libraries","public":true,"pages":[{"title":"Ethers.js","href":"/virtual-environments/libraries/ethers"},{"title":"Viem","href":"/virtual-environments/libraries/viem"}]},{"group":"Wallet UIs","public":true,"pages":[{"title":"Wagmi","href":"/virtual-environments/dapp-ui/wagmi"},{"title":"Reown AppKit","href":"/virtual-environments/dapp-ui/reown"},{"title":"ConnectKit","href":"/virtual-environments/dapp-ui/connectkit"},{"title":"Dynamic","href":"/virtual-environments/dapp-ui/dynamic"},{"title":"RainbowKit","href":"/virtual-environments/dapp-ui/rainbowkit"}]}]},{"group":"Network \u0026 state","public":true,"pages":[{"title":"Fork a Virtual Environment","href":"/virtual-environments/develop/fork-testnet"},{"title":"Revert Virtual Environment state","href":"/virtual-environments/develop/revert-state"},{"title":"Working with timestamps on Virtual Environments","href":"/virtual-environments/develop/timestamps"},{"title":"Backtest a token position by replaying historical blocks","href":"/virtual-environments/network-mirror-backtest"}]},{"group":"Transactions \u0026 debugging","public":true,"pages":[{"title":"Sending Transactions to Virtual Environments","href":"/virtual-environments/interact/send-transactions"},{"title":"Simulate Transactions in Virtual Environments","href":"/virtual-environments/interact/simulate-transactions"},{"title":"Debugging Transactions","href":"/virtual-environments/develop/debug-transactions"}]},{"group":"Smart contracts","public":true,"pages":[{"title":"Deploy and verify contracts","href":"/virtual-environments/develop/deploy-contracts"},{"title":"Verify proxy contracts with Foundry","href":"/virtual-environments/develop/verify-proxy-contracts"},{"title":"Bytecode deployment cheatcode","href":"/virtual-environments/develop/bytecode-deployment"},{"title":"Foundry Cheatcode Tutorial","href":"/virtual-environments/develop/solidity-cheatcodes"},{"title":"Index a Virtual Environment with The Graph","description":"Run a local Graph Node against a Virtual Environment RPC, deploy a subgraph for contracts on the fork, and keep it in sync after evm_revert.","href":"/virtual-environments/develop/thegraph"}]},{"group":"CI/CD \u0026 staging","public":true,"pages":[{"title":"Hardhat and Github Actions","href":"/virtual-environments/ci-cd/github-actions-hardhat"},{"title":"Foundry and Github Actions","description":"Set up a CI/CD pipeline on Virtual Environments with the Tenderly GitHub Action to test and stage Solidity smart contracts using Foundry.","href":"/virtual-environments/ci-cd/github-actions-foundry"},{"title":"Staging Contracts","href":"/virtual-environments/ci-cd/stage-contracts"},{"title":"Connect Dapp UI to Virtual Environment","href":"/virtual-environments/ci-cd/stage-dapps"},{"title":"Create Virtual Environments via API","href":"/virtual-environments/develop/create-virtual-environment-via-api"}]}]},{"group":"Concepts","public":true,"pages":[{"title":"Virtual Environment Explorer","href":"/virtual-environments/explorer"},{"title":"Unlimited Faucet","href":"/virtual-environments/unlimited-faucet"},{"title":"State Sync","href":"/virtual-environments/state-sync"},{"title":"Network Mirror Mode","href":"/virtual-environments/network-mirror-mode"},{"title":"Named RPC URLs","href":"/virtual-environments/named-rpc-urls"},{"group":"Multichain","public":true,"pages":[{"title":"Multichain Virtual Environments","href":"/virtual-environments/multichain/overview"},{"title":"Bridges","href":"/virtual-environments/multichain/bridges"}]}]},{"group":"Reference","public":true,"pages":[{"title":"Virtual Environment dashboard reference","sidebarTitle":"Dashboard reference","href":"/virtual-environments/dashboard"},{"title":"Custom RPC Methods","href":"/virtual-environments/admin-rpc"},{"title":"Solidity Cheatcodes","href":"/virtual-environments/precompiles"},{"title":"REST API","href":"/virtual-environments/rest-api"}]}]},{"group":"Simulator UI Builder","public":true,"pages":[{"group":"Simulator UI","public":true,"pages":[{"title":"Simulator UI","sidebarTitle":"Overview","href":"/simulator-ui/overview"},{"title":"Simulation with State Overrides","href":"/simulator-ui/state-overrides"},{"title":"Share a Simulator draft link","href":"/simulator-ui/draft-links"},{"title":"Share a simulation with a public link","sidebarTitle":"Share a simulation","href":"/simulator-ui/share-simulation"}]},{"group":"Simulation Bundles","public":true,"pages":[{"title":"Simulation Bundles","sidebarTitle":"Overview","href":"/simulator-ui/simulation-bundles"},{"title":"Simulate a Token Mint, Approve, and TransferFrom Bundle","href":"/simulations/guides/mint-approve-transfer-bundle"}]},{"title":"Simulation Parameters","href":"/simulator-ui/parameters"},{"title":"Editing Contract Source","href":"/simulator-ui/editing-contract-source"}]},{"group":"Simulation API","public":true,"pages":[{"title":"Simulations Overview","href":"/simulations/overview"},{"title":"Simulations Quickstart","href":"/simulations/quickstart"},{"group":"Features","public":true,"pages":[{"title":"Single Simulations","href":"/simulations/single-simulations"},{"title":"Bundled Simulations","href":"/simulations/bundled-simulations"}]},{"group":"Use Cases","public":true,"pages":[{"title":"Transaction Preview","href":"/simulations/transaction-preview"},{"title":"Asset and Balance Changes","href":"/simulations/asset-balance-changes"},{"title":"Simulation API With State Overrides","href":"/simulations/state-overrides"},{"title":"Gas Estimation","href":"/simulations/gas-estimation"}]},{"title":"Simulation Modes","href":"/simulations/simulation-modes"},{"title":"Tenderly TX Preview Snap","href":"/platform/tx-preview-snap"},{"group":"Guides","public":true,"pages":[{"title":"Dry-Run User Transactions","href":"/simulations/guides/dry-run-user-transactions"},{"title":"MetaMask Snap Transaction Preview","href":"/simulations/guides/metamask-snap"},{"title":"Rabby Wallet Transaction Preview","href":"/simulations/guides/rabby-wallet"},{"title":"Simulate Safe{Wallet} transactions in your Tenderly project","sidebarTitle":"Safe{Wallet} simulations","href":"/simulations/guides/safe-wallet"},{"title":"Using Simulation RPC in Dapp UI","href":"/simulations/guides/simulation-rpc-dapp-ui"}]}]},{"group":"Simulation Mode","public":true,"pages":[{"title":"Simulation Mode","href":"/simulator-ui/simulation-mode"}]},{"group":"Tenderly SDK","public":true,"pages":[{"title":"Intro to Tenderly SDK","href":"/platform/sdk/introduction"},{"title":"Basic Concepts \u0026 FAQs","href":"/platform/sdk/concepts"},{"title":"Simulating Transactions","href":"/platform/sdk/simulating-transactions"},{"title":"Managing Contracts","href":"/platform/sdk/managing-contracts"},{"title":"Managing Wallets","href":"/platform/sdk/managing-wallets"},{"title":"Practical Examples","href":"/platform/sdk/examples"},{"group":"Tutorials","public":true,"pages":[{"title":"Simulate Transactions via SDK","href":"/platform/sdk/tutorials/simulate-transactions"},{"title":"Simulation Bundles with SDK","href":"/platform/sdk/tutorials/simulation-bundles"}]}]}]},{"group":"Console","public":true,"pages":[{"group":"Explorer","public":true,"pages":[{"title":"Developer Explorer","href":"/developer-explorer/overview"},{"title":"Project Home dashboard","sidebarTitle":"Project Home","href":"/developer-explorer/project-home"},{"title":"Transaction Listing","href":"/developer-explorer/transaction-listing"},{"group":"Inspect Transaction","public":true,"pages":[{"title":"Inspect transaction call traces and state changes","sidebarTitle":"Transactions","href":"/developer-explorer/inspect-transaction/overview"},{"title":"Fund Flow","href":"/developer-explorer/inspect-transaction/fund-flow"}]},{"title":"Smart Contracts","href":"/developer-explorer/contracts"},{"title":"Add and track wallets in a Tenderly project","sidebarTitle":"Wallets","href":"/developer-explorer/wallets"},{"title":"Simulation Mode in the Explorer","href":"/developer-explorer/simulation-mode"}]},{"group":"DeFi Modules","public":true,"pages":[{"title":"DeFi Modules: protocol-native UI surfaces","sidebarTitle":"DeFi Modules","href":"/defi-modules/overview"},{"title":"Aave V3","href":"/defi-modules/aave"},{"title":"Uniswap V3","href":"/defi-modules/uniswap"},{"title":"Morpho","href":"/defi-modules/morpho"},{"title":"Chainlink and Chronicle price feeds","sidebarTitle":"Oracle price feeds","href":"/defi-modules/oracle-price-feeds"}]},{"group":"Debugger","public":true,"pages":[{"title":"How to Use Tenderly Debugger","href":"/debugger/overview"},{"title":"Execution Overview","href":"/debugger/execution-overview"},{"title":"Commenting \u0026 Prioritizing Traces","href":"/debugger/commenting"},{"title":"Gas Profiler","href":"/debugger/gas-profiler"},{"title":"Evaluate Expressions with Advanced Debugger","href":"/debugger/evaluate-expression"},{"title":"War Room Aid Kit","href":"/debugger/war-room-aid-kit"},{"title":"Dev Toolkit Browser Extension","href":"/debugger/dev-toolkit"},{"group":"Guides","public":true,"pages":[{"title":"Investigating a Failed Transaction","href":"/debugger/guides/failed-transaction"},{"title":"Investigating a Hack (Cover Protocol)","href":"/debugger/guides/hack-investigation"}]}]},{"group":"Contract Verification","public":true,"pages":[{"title":"Smart Contract Verification","href":"/contract-verification/overview"},{"title":"Verify Contracts via Dashboard","href":"/contract-verification/dashboard"},{"title":"Smart Contract Verification Using Foundry","href":"/contract-verification/foundry"},{"title":"Smart Contract Verification Using Hardhat","href":"/contract-verification/hardhat"},{"title":"Verifying Proxy Contracts","href":"/contract-verification/hardhat-proxy"}]}]},{"group":"Monitor","public":true,"pages":[{"group":"Alerts","public":true,"pages":[{"title":"Intro to Alerts","href":"/monitoring/alerts/introduction"},{"title":"Alert Types, Targets, and Parameters","href":"/monitoring/alerts/types"},{"title":"Using Alerts API","href":"/monitoring/alerts/api"},{"group":"Destinations","public":true,"pages":[{"title":"Alert Destinations","href":"/monitoring/alerts/destinations/overview"},{"title":"Project-Scoped","href":"/monitoring/alerts/destinations/project-scoped"},{"title":"Account-Scoped","href":"/monitoring/alerts/destinations/account-scoped"},{"title":"Setting Up Alerts as Triggers for Web3Actions","href":"/monitoring/alerts/destinations/web3-action"}]},{"group":"Tutorials","public":true,"pages":[{"title":"Alerting Quickstart Guide","href":"/monitoring/alerts/tutorials/quickstart"},{"title":"How to Use Webhooks for Alerting","href":"/monitoring/alerts/tutorials/webhooks"}]}]},{"group":"Web3 Actions","public":true,"pages":[{"title":"Intro to Web3 Actions","href":"/monitoring/web3-actions/introduction"},{"title":"Usage Rate Limits","href":"/monitoring/web3-actions/usage-rate-limits"},{"group":"Tutorials","public":true,"pages":[{"title":"Deploy Web3 Actions via Dashboard","href":"/monitoring/web3-actions/tutorials/deploy-via-dashboard"},{"title":"Deploy Web3 Action via CLI","href":"/monitoring/web3-actions/tutorials/deploy-via-cli"},{"title":"How to Handle On-Chain Events","href":"/monitoring/web3-actions/tutorials/on-chain-events"},{"title":"How to Access Node RPC from Web3 Actions","href":"/monitoring/web3-actions/tutorials/node-rpc-access"},{"title":"How to Build a Custom Oracle","href":"/monitoring/web3-actions/tutorials/custom-oracle"},{"title":"Discord Alerts for New Uniswap Pools","href":"/monitoring/web3-actions/tutorials/discord-uniswap-pools"},{"title":"Monitor UniswapV3 Pool Creation","href":"/monitoring/web3-actions/tutorials/monitor-uniswap-v3-pools"},{"title":"Lido Validator Exit Notifications","href":"/monitoring/web3-actions/tutorials/validators-exits"},{"title":"Modular Monitoring with Web3Actions","href":"/monitoring/web3-actions/tutorials/modular-actions"}]},{"group":"References","public":true,"pages":[{"title":"Node RPC Access","href":"/monitoring/web3-actions/references/node-rpc-access"},{"title":"Action Functions, Events, and Triggers","href":"/monitoring/web3-actions/references/functions-events-triggers"},{"title":"Context: Gateway, Storage, Secrets","href":"/monitoring/web3-actions/references/context"},{"title":"Action Execution","href":"/monitoring/web3-actions/references/execution"},{"title":"Project Structure","href":"/monitoring/web3-actions/references/project-structure"},{"title":"CLI Cheatsheet","href":"/monitoring/web3-actions/references/cli-cheatsheet"},{"title":"Local Development and Testing","href":"/monitoring/web3-actions/references/local-development"},{"title":"Web3 Action failure notifications","sidebarTitle":"Notifications","href":"/monitoring/web3-actions/references/notifications"},{"title":"Manage Web3 Actions Lifecycle","href":"/monitoring/web3-actions/references/lifecycle"},{"title":"Error Reporting","href":"/monitoring/web3-actions/references/error-reporting"}]}]}]},{"group":"Node RPC","public":true,"pages":[{"title":"Node RPC","href":"/node-rpc/overview"},{"title":"Monitor Node RPC Usage, Errors, and Rate Limits","href":"/node-rpc/usage-and-errors"},{"group":"Simulations \u0026 Gas Estimation","public":true,"pages":[{"title":"Simulate Transactions with JSON-RPC Methods","href":"/node-rpc/guides/simulate-json-rpc"},{"title":"Simulate Bundles","href":"/node-rpc/guides/simulate-bundle-json-rpc"},{"title":"Simulate Blocks with eth_simulateV1","href":"/node-rpc/guides/eth-simulatev1"},{"title":"Trace Transactions","href":"/node-rpc/guides/trace-json-rpc"}]},{"group":"Integrations","public":true,"pages":[{"title":"Integration Guides","href":"/node-rpc/integrations"},{"group":"Libraries","public":true,"pages":[{"title":"Connect Ethers.js v6 and v5 to Tenderly Node RPC","href":"/node-rpc/libraries/ethers"},{"title":"Connect viem clients to Tenderly Node RPC endpoints","href":"/node-rpc/libraries/viem"},{"title":"Connect Go apps to Tenderly Node RPC with go-ethereum","href":"/node-rpc/libraries/go"},{"title":"Connect Web3.py Python apps to Tenderly Node RPC","href":"/node-rpc/libraries/web3-py"}]},{"group":"Frameworks","public":true,"pages":[{"title":"Deploy smart contracts with Foundry via Tenderly Node RPC","href":"/node-rpc/frameworks/foundry"},{"title":"Deploy and test Hardhat projects with Tenderly Node RPC","href":"/node-rpc/frameworks/hardhat"}]},{"group":"Wallet UIs","public":true,"pages":[{"title":"Configure wagmi transports with Tenderly Node RPC","href":"/node-rpc/dapp-ui/wagmi"},{"title":"Set up Reown AppKit with Tenderly Node RPC transports","href":"/node-rpc/dapp-ui/reown"},{"title":"Connect ConnectKit wallet components to Tenderly Node RPC","href":"/node-rpc/dapp-ui/connectkit"},{"title":"Use Tenderly Node RPC with Dynamic Web3 authentication","href":"/node-rpc/dapp-ui/dynamic"},{"title":"Configure RainbowKit with Tenderly Node RPC transports","href":"/node-rpc/dapp-ui/rainbowkit"}]},{"group":"Indexers","public":true,"pages":[{"title":"Run Graph Node on Tenderly Node RPC","href":"/node-rpc/indexers/graph-node"}]}]},{"group":"Reference","public":true,"pages":[{"title":"JSON-RPC Reference","href":"/node-rpc/rpc-reference"}]},{"title":"Node RPC Pricing","href":"/node-rpc/pricing"}]},{"group":"AI Tools","public":true,"pages":[{"title":"Tenderly MCP Server for Claude and AI assistants","href":"/ai-tools/overview"},{"title":"Tenderly MCP Server quickstart for Claude clients","href":"/ai-tools/quickstart"},{"title":"Tenderly MCP Server tools reference","href":"/ai-tools/tools"},{"title":"Tenderly MCP Server examples with Claude","href":"/ai-tools/examples"}]},{"group":"Account \u0026 Settings","public":true,"pages":[{"group":"Account Management","public":true,"pages":[{"title":"Account Management","href":"/platform/account/overview"},{"title":"Manage Security Email Notifications","sidebarTitle":"Email Notifications","href":"/platform/account/email-notifications"},{"group":"Projects","public":true,"pages":[{"title":"Create a Tenderly Project","href":"/platform/account/projects/overview"},{"title":"Restrict Project Access to Invited Members","href":"/platform/account/projects/restricted-projects"},{"title":"Project Settings","href":"/platform/account/projects/settings"},{"title":"Project Slug and Account Slug","href":"/platform/account/projects/slug"},{"title":"Generate and Manage API Access Tokens","href":"/platform/account/projects/api-tokens"}]},{"group":"Organizations","public":true,"pages":[{"title":"Organizations and Team Members","href":"/platform/account/organizations/overview"},{"title":"Add Member","href":"/platform/account/organizations/members"},{"title":"Activity Logs","href":"/platform/account/organizations/activity-logs"}]}]},{"group":"Billing \u0026 Usage","public":true,"pages":[{"title":"Manage Your Plan, Seats, and Billing","href":"/platform/account/billing/overview"},{"title":"Track Usage and Tenderly Units (TUs)","href":"/platform/account/billing/usage"},{"title":"Usage Limits, Rate Limits, and Write Limits: Which One Did I Hit?","href":"/platform/account/billing/limits"},{"title":"Plan Features, Limits, and Restricted Access","href":"/platform/account/billing/plan-restrictions"}]}]}]},{"tab":"Supported Networks","pages":[{"title":"Supported Networks","href":"/platform/supported-networks"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/projects/list-projects"}]},{"tab":"Troubleshooting","pages":[{"title":"Troubleshooting","href":"/troubleshooting/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/overview"}]}]},{"language":"ru","pages":[{"title":"ru","href":"/ru/virtual-environments/ci-cd/github-actions-hardhat"}]},{"language":"zh","pages":[{"title":"zh","href":"/zh/virtual-environments/ci-cd/github-actions-hardhat"}]},{"language":"hi","pages":[{"title":"hi","href":"/hi/virtual-environments/ci-cd/github-actions-hardhat"}]}]},"title":"Hardhat and Github Actions - Tenderly","buildId":"dpl_9DauxEjb9gzCtcuhPQFbquJvx7FJ","deploymentId":"dpl_9DauxEjb9gzCtcuhPQFbquJvx7FJ","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DpBmNN95.js","DynamicMarkdown-BY_qDhTn.js","zoom-image-lightbox-D4WcYaf4.js","PlusIcon-CwhPVjTe.js","lightbox-handle-r17bVUz3.js"]}