go-ethereum/Getting started with Geth _ go-ethereum.html
2025-05-21 08:00:03 -04:00

291 lines
No EOL
193 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- saved from url=(0046)https://geth.ethereum.org/docs/getting-started -->
<html lang="en" data-bybit-channel-name="Ud8LXOuMd5Qr4AtX5Z5dd" data-theme="dark" style="color-scheme: dark;" class="js-focus-visible" data-js-focus-visible="" data-bybit-is-default-wallet="true"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Getting started with Geth | go-ethereum</title><meta name="application-name" content="go-ethereum"><meta name="image" content="https://geth.ethereum.org/images/metadata-gopher.png"><meta property="og:type" content="website"><meta property="og:site_name" content="go-ethereum"><meta property="og:image" content="https://geth.ethereum.org/images/metadata-gopher.png"><meta property="og:image:url" content="https://geth.ethereum.org/images/metadata-gopher.png"><meta property="og:image:secure_url" content="https://geth.ethereum.org/images/metadata-gopher.png"><meta property="og:image:alt" content="go-ethereum"><meta property="og:image:type" content="image/png"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:creator" content="@go_ethereum"><meta name="twitter:site" content="@go_ethereum"><meta name="twitter:image" content="https://geth.ethereum.org/images/metadata-gopher.png/#"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" type="image/x-icon" href="https://geth.ethereum.org/favicon.ico"><meta name="title" content="Getting started with Geth | go-ethereum"><meta name="description" content="Guide to getting up and running with Geth using Clef."><meta property="og:title" content="Getting started with Geth | go-ethereum"><meta property="og:description" content="Guide to getting up and running with Geth using Clef."><meta property="og:url" content="https://geth.ethereum.org/docs/getting-started"><meta property="twitter:url" content="https://geth.ethereum.org/docs/getting-started"><meta name="twitter:title" content="Getting started with Geth | go-ethereum"><meta name="twitter:description" content="Guide to getting up and running with Geth using Clef."><meta name="next-head-count" content="25"><link rel="preconnect" href="https://fonts.googleapis.com/"><link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin="true"><link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin=""><link rel="preload" href="./Getting started with Geth _ go-ethereum_files/06540f71db0c83d7.css" as="style"><link rel="stylesheet" href="./Getting started with Geth _ go-ethereum_files/06540f71db0c83d7.css" data-n-g=""><noscript data-n-css=""></noscript><script type="text/javascript" async="" defer="" src="./Getting started with Geth _ go-ethereum_files/matomo.js.download"></script><script defer="" nomodule="" src="./Getting started with Geth _ go-ethereum_files/polyfills-78c92fac7aa8fdd8.js.download"></script><script src="./Getting started with Geth _ go-ethereum_files/webpack-62c02dad1a6a4cb4.js.download" defer=""></script><script src="./Getting started with Geth _ go-ethereum_files/framework-ecc4130bc7a58a64.js.download" defer=""></script><script src="./Getting started with Geth _ go-ethereum_files/main-22c448dfb58825f6.js.download" defer=""></script><script src="./Getting started with Geth _ go-ethereum_files/_app-0677b8eaec92c4a1.js.download" defer=""></script><script src="./Getting started with Geth _ go-ethereum_files/42-5f9991663a11cd7a.js.download" defer=""></script><script src="./Getting started with Geth _ go-ethereum_files/886-c5efa5c2ecd00b8c.js.download" defer=""></script><script src="./Getting started with Geth _ go-ethereum_files/[...slug]-8181c6f606195428.js.download" defer=""></script><script src="./Getting started with Geth _ go-ethereum_files/_buildManifest.js.download" defer=""></script><script src="./Getting started with Geth _ go-ethereum_files/_ssgManifest.js.download" defer=""></script><style data-href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&amp;display=swap">@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxjPg.woff) format('woff')}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8-qxjPg.woff) format('woff')}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8L6tjPg.woff) format('woff')}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwgknk-6nFg.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwgknk-6nFg.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwgknk-4.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwgknk-6nFg.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwgknk-6nFg.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwgknk-4.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwgknk-6nFg.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwgknk-6nFg.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v20/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwgknk-4.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}</style><style data-href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&amp;display=swap">@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfMZs.woff) format('woff')}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYMZs.woff) format('woff')}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v18/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}</style><style data-emotion="css-global" data-s="">:host,:root,[data-theme]{--chakra-ring-inset:var(--chakra-empty,/*!*/ /*!*/);--chakra-ring-offset-width:0px;--chakra-ring-offset-color:#fff;--chakra-ring-color:rgba(66, 153, 225, 0.6);--chakra-ring-offset-shadow:0 0 #0000;--chakra-ring-shadow:0 0 #0000;--chakra-space-x-reverse:0;--chakra-space-y-reverse:0;--chakra-colors-transparent:transparent;--chakra-colors-current:currentColor;--chakra-colors-black:#000000;--chakra-colors-white:#FFFFFF;--chakra-colors-whiteAlpha-50:rgba(255, 255, 255, 0.04);--chakra-colors-whiteAlpha-100:rgba(255, 255, 255, 0.06);--chakra-colors-whiteAlpha-200:rgba(255, 255, 255, 0.08);--chakra-colors-whiteAlpha-300:rgba(255, 255, 255, 0.16);--chakra-colors-whiteAlpha-400:rgba(255, 255, 255, 0.24);--chakra-colors-whiteAlpha-500:rgba(255, 255, 255, 0.36);--chakra-colors-whiteAlpha-600:rgba(255, 255, 255, 0.48);--chakra-colors-whiteAlpha-700:rgba(255, 255, 255, 0.64);--chakra-colors-whiteAlpha-800:rgba(255, 255, 255, 0.80);--chakra-colors-whiteAlpha-900:rgba(255, 255, 255, 0.92);--chakra-colors-blackAlpha-50:rgba(0, 0, 0, 0.04);--chakra-colors-blackAlpha-100:rgba(0, 0, 0, 0.06);--chakra-colors-blackAlpha-200:rgba(0, 0, 0, 0.08);--chakra-colors-blackAlpha-300:rgba(0, 0, 0, 0.16);--chakra-colors-blackAlpha-400:rgba(0, 0, 0, 0.24);--chakra-colors-blackAlpha-500:rgba(0, 0, 0, 0.36);--chakra-colors-blackAlpha-600:rgba(0, 0, 0, 0.48);--chakra-colors-blackAlpha-700:rgba(0, 0, 0, 0.64);--chakra-colors-blackAlpha-800:rgba(0, 0, 0, 0.80);--chakra-colors-blackAlpha-900:rgba(0, 0, 0, 0.92);--chakra-colors-gray-50:#F7FAFC;--chakra-colors-gray-100:#EDF2F7;--chakra-colors-gray-200:#E2E8F0;--chakra-colors-gray-300:#CBD5E0;--chakra-colors-gray-400:#A0AEC0;--chakra-colors-gray-500:#718096;--chakra-colors-gray-600:#4A5568;--chakra-colors-gray-700:#2D3748;--chakra-colors-gray-800:#1d242c;--chakra-colors-gray-900:#171923;--chakra-colors-red-50:#FFF5F5;--chakra-colors-red-100:#FED7D7;--chakra-colors-red-200:#FEB2B2;--chakra-colors-red-300:#FC8181;--chakra-colors-red-400:#F56565;--chakra-colors-red-500:#E53E3E;--chakra-colors-red-600:#C53030;--chakra-colors-red-700:#9B2C2C;--chakra-colors-red-800:#822727;--chakra-colors-red-900:#63171B;--chakra-colors-orange-50:#FFFAF0;--chakra-colors-orange-100:#FEEBC8;--chakra-colors-orange-200:#FBD38D;--chakra-colors-orange-300:#F6AD55;--chakra-colors-orange-400:#ED8936;--chakra-colors-orange-500:#DD6B20;--chakra-colors-orange-600:#C05621;--chakra-colors-orange-700:#9C4221;--chakra-colors-orange-800:#7B341E;--chakra-colors-orange-900:#652B19;--chakra-colors-yellow-50:#FBFDEF;--chakra-colors-yellow-100:#FEFCBF;--chakra-colors-yellow-200:#FAF089;--chakra-colors-yellow-300:#F6E05E;--chakra-colors-yellow-400:#ECC94B;--chakra-colors-yellow-500:#D69E2E;--chakra-colors-yellow-600:#B7791F;--chakra-colors-yellow-700:#975A16;--chakra-colors-yellow-800:#744210;--chakra-colors-yellow-900:#5F370E;--chakra-colors-green-50:#d7f5ef;--chakra-colors-green-100:#98FFEB;--chakra-colors-green-200:#06fece;--chakra-colors-green-300:#23EDC5;--chakra-colors-green-400:#1FD3B0;--chakra-colors-green-500:#2EBDA1;--chakra-colors-green-600:#11866f;--chakra-colors-green-700:#25534A;--chakra-colors-green-800:#173C35;--chakra-colors-green-900:#01100D;--chakra-colors-teal-50:#E6FFFA;--chakra-colors-teal-100:#B2F5EA;--chakra-colors-teal-200:#81E6D9;--chakra-colors-teal-300:#4FD1C5;--chakra-colors-teal-400:#38B2AC;--chakra-colors-teal-500:#319795;--chakra-colors-teal-600:#2C7A7B;--chakra-colors-teal-700:#285E61;--chakra-colors-teal-800:#234E52;--chakra-colors-teal-900:#1D4044;--chakra-colors-blue-50:#ebf8ff;--chakra-colors-blue-100:#bee3f8;--chakra-colors-blue-200:#90cdf4;--chakra-colors-blue-300:#63b3ed;--chakra-colors-blue-400:#4299e1;--chakra-colors-blue-500:#3182ce;--chakra-colors-blue-600:#2b6cb0;--chakra-colors-blue-700:#2c5282;--chakra-colors-blue-800:#2a4365;--chakra-colors-blue-900:#1A365D;--chakra-colors-cyan-50:#EDFDFD;--chakra-colors-cyan-100:#C4F1F9;--chakra-colors-cyan-200:#9DECF9;--chakra-colors-cyan-300:#76E4F7;--chakra-colors-cyan-400:#0BC5EA;--chakra-colors-cyan-500:#00B5D8;--chakra-colors-cyan-600:#00A3C4;--chakra-colors-cyan-700:#0987A0;--chakra-colors-cyan-800:#086F83;--chakra-colors-cyan-900:#065666;--chakra-colors-purple-50:#FAF5FF;--chakra-colors-purple-100:#E9D8FD;--chakra-colors-purple-200:#D6BCFA;--chakra-colors-purple-300:#B794F4;--chakra-colors-purple-400:#9F7AEA;--chakra-colors-purple-500:#805AD5;--chakra-colors-purple-600:#6B46C1;--chakra-colors-purple-700:#553C9A;--chakra-colors-purple-800:#44337A;--chakra-colors-purple-900:#322659;--chakra-colors-pink-50:#FFF5F7;--chakra-colors-pink-100:#FED7E2;--chakra-colors-pink-200:#FBB6CE;--chakra-colors-pink-300:#F687B3;--chakra-colors-pink-400:#ED64A6;--chakra-colors-pink-500:#D53F8C;--chakra-colors-pink-600:#B83280;--chakra-colors-pink-700:#97266D;--chakra-colors-pink-800:#702459;--chakra-colors-pink-900:#521B41;--chakra-colors-linkedin-50:#E8F4F9;--chakra-colors-linkedin-100:#CFEDFB;--chakra-colors-linkedin-200:#9BDAF3;--chakra-colors-linkedin-300:#68C7EC;--chakra-colors-linkedin-400:#34B3E4;--chakra-colors-linkedin-500:#00A0DC;--chakra-colors-linkedin-600:#008CC9;--chakra-colors-linkedin-700:#0077B5;--chakra-colors-linkedin-800:#005E93;--chakra-colors-linkedin-900:#004471;--chakra-colors-facebook-50:#E8F4F9;--chakra-colors-facebook-100:#D9DEE9;--chakra-colors-facebook-200:#B7C2DA;--chakra-colors-facebook-300:#6482C0;--chakra-colors-facebook-400:#4267B2;--chakra-colors-facebook-500:#385898;--chakra-colors-facebook-600:#314E89;--chakra-colors-facebook-700:#29487D;--chakra-colors-facebook-800:#223B67;--chakra-colors-facebook-900:#1E355B;--chakra-colors-messenger-50:#D0E6FF;--chakra-colors-messenger-100:#B9DAFF;--chakra-colors-messenger-200:#A2CDFF;--chakra-colors-messenger-300:#7AB8FF;--chakra-colors-messenger-400:#2E90FF;--chakra-colors-messenger-500:#0078FF;--chakra-colors-messenger-600:#0063D1;--chakra-colors-messenger-700:#0052AC;--chakra-colors-messenger-800:#003C7E;--chakra-colors-messenger-900:#002C5C;--chakra-colors-whatsapp-50:#dffeec;--chakra-colors-whatsapp-100:#b9f5d0;--chakra-colors-whatsapp-200:#90edb3;--chakra-colors-whatsapp-300:#65e495;--chakra-colors-whatsapp-400:#3cdd78;--chakra-colors-whatsapp-500:#22c35e;--chakra-colors-whatsapp-600:#179848;--chakra-colors-whatsapp-700:#0c6c33;--chakra-colors-whatsapp-800:#01421c;--chakra-colors-whatsapp-900:#001803;--chakra-colors-twitter-50:#E5F4FD;--chakra-colors-twitter-100:#C8E9FB;--chakra-colors-twitter-200:#A8DCFA;--chakra-colors-twitter-300:#83CDF7;--chakra-colors-twitter-400:#57BBF5;--chakra-colors-twitter-500:#1DA1F2;--chakra-colors-twitter-600:#1A94DA;--chakra-colors-twitter-700:#1681BF;--chakra-colors-twitter-800:#136B9E;--chakra-colors-twitter-900:#0D4D71;--chakra-colors-telegram-50:#E3F2F9;--chakra-colors-telegram-100:#C5E4F3;--chakra-colors-telegram-200:#A2D4EC;--chakra-colors-telegram-300:#7AC1E4;--chakra-colors-telegram-400:#47A9DA;--chakra-colors-telegram-500:#0088CC;--chakra-colors-telegram-600:#007AB8;--chakra-colors-telegram-700:#006BA1;--chakra-colors-telegram-800:#005885;--chakra-colors-telegram-900:#003F5E;--chakra-borders-none:0;--chakra-borders-1px:1px solid;--chakra-borders-2px:2px solid;--chakra-borders-4px:4px solid;--chakra-borders-8px:8px solid;--chakra-fonts-heading:"JetBrains Mono",monospace;--chakra-fonts-body:"Inter",sans-serif;--chakra-fonts-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--chakra-fonts-button:"JetBrains Mono",monospace;--chakra-fonts-code:"JetBrains Mono",monospace;--chakra-fontSizes-3xs:0.45rem;--chakra-fontSizes-2xs:0.625rem;--chakra-fontSizes-xs:0.75rem;--chakra-fontSizes-sm:0.875rem;--chakra-fontSizes-md:1rem;--chakra-fontSizes-lg:1.125rem;--chakra-fontSizes-xl:1.25rem;--chakra-fontSizes-2xl:1.5rem;--chakra-fontSizes-3xl:1.875rem;--chakra-fontSizes-4xl:2.25rem;--chakra-fontSizes-5xl:3rem;--chakra-fontSizes-6xl:3.75rem;--chakra-fontSizes-7xl:4.5rem;--chakra-fontSizes-8xl:6rem;--chakra-fontSizes-9xl:8rem;--chakra-fontWeights-hairline:100;--chakra-fontWeights-thin:200;--chakra-fontWeights-light:300;--chakra-fontWeights-normal:400;--chakra-fontWeights-medium:500;--chakra-fontWeights-semibold:600;--chakra-fontWeights-bold:700;--chakra-fontWeights-extrabold:800;--chakra-fontWeights-black:900;--chakra-letterSpacings-tighter:-0.05em;--chakra-letterSpacings-tight:-0.025em;--chakra-letterSpacings-normal:0;--chakra-letterSpacings-wide:0.025em;--chakra-letterSpacings-wider:0.05em;--chakra-letterSpacings-widest:0.1em;--chakra-lineHeights-3:.75rem;--chakra-lineHeights-4:1rem;--chakra-lineHeights-5:1.25rem;--chakra-lineHeights-6:1.5rem;--chakra-lineHeights-7:1.75rem;--chakra-lineHeights-8:2rem;--chakra-lineHeights-9:2.25rem;--chakra-lineHeights-10:2.5rem;--chakra-lineHeights-normal:normal;--chakra-lineHeights-none:1;--chakra-lineHeights-shorter:1.25;--chakra-lineHeights-short:1.375;--chakra-lineHeights-base:1.5;--chakra-lineHeights-tall:1.625;--chakra-lineHeights-taller:2;--chakra-radii-none:0;--chakra-radii-sm:0.125rem;--chakra-radii-base:0.25rem;--chakra-radii-md:0.375rem;--chakra-radii-lg:0.5rem;--chakra-radii-xl:0.75rem;--chakra-radii-2xl:1rem;--chakra-radii-3xl:1.5rem;--chakra-radii-full:9999px;--chakra-space-1:0.25rem;--chakra-space-2:0.5rem;--chakra-space-3:0.75rem;--chakra-space-4:1rem;--chakra-space-5:1.25rem;--chakra-space-6:1.5rem;--chakra-space-7:1.75rem;--chakra-space-8:2rem;--chakra-space-9:2.25rem;--chakra-space-10:2.5rem;--chakra-space-12:3rem;--chakra-space-14:3.5rem;--chakra-space-16:4rem;--chakra-space-20:5rem;--chakra-space-24:6rem;--chakra-space-28:7rem;--chakra-space-32:8rem;--chakra-space-36:9rem;--chakra-space-40:10rem;--chakra-space-44:11rem;--chakra-space-48:12rem;--chakra-space-52:13rem;--chakra-space-56:14rem;--chakra-space-60:15rem;--chakra-space-64:16rem;--chakra-space-72:18rem;--chakra-space-80:20rem;--chakra-space-96:24rem;--chakra-space-px:1px;--chakra-space-0-5:0.125rem;--chakra-space-1-5:0.375rem;--chakra-space-2-5:0.625rem;--chakra-space-3-5:0.875rem;--chakra-shadows-xs:0 0 0 1px rgba(0, 0, 0, 0.05);--chakra-shadows-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);--chakra-shadows-base:0 1px 3px 0 rgba(0, 0, 0, 0.1),0 1px 2px 0 rgba(0, 0, 0, 0.06);--chakra-shadows-md:0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);--chakra-shadows-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);--chakra-shadows-xl:0 20px 25px -5px rgba(0, 0, 0, 0.1),0 10px 10px -5px rgba(0, 0, 0, 0.04);--chakra-shadows-2xl:0 25px 50px -12px rgba(0, 0, 0, 0.25);--chakra-shadows-outline:0 0 0 3px rgba(66, 153, 225, 0.6);--chakra-shadows-inner:inset 0 2px 4px 0 rgba(0,0,0,0.06);--chakra-shadows-none:none;--chakra-shadows-dark-lg:rgba(0, 0, 0, 0.1) 0px 0px 0px 1px,rgba(0, 0, 0, 0.2) 0px 5px 10px,rgba(0, 0, 0, 0.4) 0px 15px 40px;--chakra-shadows-linkBoxShadow:0 0 0 1px #11866f!important;--chakra-sizes-1:0.25rem;--chakra-sizes-2:0.5rem;--chakra-sizes-3:0.75rem;--chakra-sizes-4:1rem;--chakra-sizes-5:1.25rem;--chakra-sizes-6:1.5rem;--chakra-sizes-7:1.75rem;--chakra-sizes-8:2rem;--chakra-sizes-9:2.25rem;--chakra-sizes-10:2.5rem;--chakra-sizes-12:3rem;--chakra-sizes-14:3.5rem;--chakra-sizes-16:4rem;--chakra-sizes-20:5rem;--chakra-sizes-24:6rem;--chakra-sizes-28:7rem;--chakra-sizes-32:8rem;--chakra-sizes-36:9rem;--chakra-sizes-40:10rem;--chakra-sizes-44:11rem;--chakra-sizes-48:12rem;--chakra-sizes-52:13rem;--chakra-sizes-56:14rem;--chakra-sizes-60:15rem;--chakra-sizes-64:16rem;--chakra-sizes-72:18rem;--chakra-sizes-80:20rem;--chakra-sizes-96:24rem;--chakra-sizes-px:1px;--chakra-sizes-0-5:0.125rem;--chakra-sizes-1-5:0.375rem;--chakra-sizes-2-5:0.625rem;--chakra-sizes-3-5:0.875rem;--chakra-sizes-max:max-content;--chakra-sizes-min:min-content;--chakra-sizes-full:100%;--chakra-sizes-3xs:14rem;--chakra-sizes-2xs:16rem;--chakra-sizes-xs:20rem;--chakra-sizes-sm:24rem;--chakra-sizes-md:28rem;--chakra-sizes-lg:32rem;--chakra-sizes-xl:36rem;--chakra-sizes-2xl:42rem;--chakra-sizes-3xl:48rem;--chakra-sizes-4xl:56rem;--chakra-sizes-5xl:64rem;--chakra-sizes-6xl:72rem;--chakra-sizes-7xl:80rem;--chakra-sizes-8xl:90rem;--chakra-sizes-prose:60ch;--chakra-sizes-container-sm:480px;--chakra-sizes-container-md:768px;--chakra-sizes-container-lg:1096px;--chakra-sizes-container-xl:1200px;--chakra-sizes-container-2xl:1536px;--chakra-zIndices-hide:-1;--chakra-zIndices-auto:auto;--chakra-zIndices-base:0;--chakra-zIndices-docked:10;--chakra-zIndices-dropdown:1000;--chakra-zIndices-sticky:1100;--chakra-zIndices-banner:1200;--chakra-zIndices-overlay:1300;--chakra-zIndices-modal:1400;--chakra-zIndices-popover:1500;--chakra-zIndices-skipLink:1600;--chakra-zIndices-toast:1700;--chakra-zIndices-tooltip:1800;--chakra-transition-property-common:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;--chakra-transition-property-colors:background-color,border-color,color,fill,stroke;--chakra-transition-property-dimensions:width,height;--chakra-transition-property-position:left,right,top,bottom;--chakra-transition-property-background:background-color,background-image,background-position;--chakra-transition-easing-ease-in:cubic-bezier(0.4, 0, 1, 1);--chakra-transition-easing-ease-out:cubic-bezier(0, 0, 0.2, 1);--chakra-transition-easing-ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--chakra-transition-duration-ultra-fast:50ms;--chakra-transition-duration-faster:100ms;--chakra-transition-duration-fast:150ms;--chakra-transition-duration-normal:200ms;--chakra-transition-duration-slow:300ms;--chakra-transition-duration-slower:400ms;--chakra-transition-duration-ultra-slow:500ms;--chakra-blur-none:0;--chakra-blur-sm:4px;--chakra-blur-base:8px;--chakra-blur-md:12px;--chakra-blur-lg:16px;--chakra-blur-xl:24px;--chakra-blur-2xl:40px;--chakra-blur-3xl:64px;}.chakra-ui-light :host:not([data-theme]),.chakra-ui-light :root:not([data-theme]),.chakra-ui-light [data-theme]:not([data-theme]),[data-theme=light] :host:not([data-theme]),[data-theme=light] :root:not([data-theme]),[data-theme=light] [data-theme]:not([data-theme]),:host[data-theme=light],:root[data-theme=light],[data-theme][data-theme=light]{--chakra-colors-chakra-body-text:var(--chakra-colors-gray-800);--chakra-colors-chakra-body-bg:var(--chakra-colors-white);--chakra-colors-chakra-border-color:var(--chakra-colors-gray-200);--chakra-colors-chakra-placeholder-color:var(--chakra-colors-gray-500);--chakra-colors-primary:var(--chakra-colors-green-700);--chakra-colors-secondary:var(--chakra-colors-green-800);--chakra-colors-button-bg:var(--chakra-colors-green-50);--chakra-colors-body:var(--chakra-colors-gray-800);--chakra-colors-code-bg:var(--chakra-colors-gray-200);--chakra-colors-terminal-bg:var(--chakra-colors-gray-800);--chakra-colors-terminal-text:var(--chakra-colors-green-50);--chakra-colors-bg:var(--chakra-colors-yellow-50);}.chakra-ui-dark :host:not([data-theme]),.chakra-ui-dark :root:not([data-theme]),.chakra-ui-dark [data-theme]:not([data-theme]),[data-theme=dark] :host:not([data-theme]),[data-theme=dark] :root:not([data-theme]),[data-theme=dark] [data-theme]:not([data-theme]),:host[data-theme=dark],:root[data-theme=dark],[data-theme][data-theme=dark]{--chakra-colors-chakra-body-text:var(--chakra-colors-whiteAlpha-900);--chakra-colors-chakra-body-bg:var(--chakra-colors-gray-800);--chakra-colors-chakra-border-color:var(--chakra-colors-whiteAlpha-300);--chakra-colors-chakra-placeholder-color:var(--chakra-colors-whiteAlpha-400);--chakra-colors-primary:var(--chakra-colors-green-200);--chakra-colors-secondary:var(--chakra-colors-green-600);--chakra-colors-button-bg:var(--chakra-colors-green-900);--chakra-colors-body:var(--chakra-colors-yellow-50);--chakra-colors-code-bg:var(--chakra-colors-gray-900);--chakra-colors-terminal-bg:var(--chakra-colors-gray-900);--chakra-colors-terminal-text:var(--chakra-colors-green-200);--chakra-colors-bg:var(--chakra-colors-gray-800);}</style><style data-emotion="css-global" data-s="">html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;}body{position:relative;min-height:100%;font-feature-settings:'kern';}*,*::before,*::after{border-width:0;border-style:solid;box-sizing:border-box;}main{display:block;}hr{border-top-width:1px;box-sizing:content-box;height:0;overflow:visible;}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1em;}a{background-color:transparent;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bold;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}fieldset{padding:0.35em 0.75em 0.625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none!important;}input[type="number"]{-moz-appearance:textfield;}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none!important;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}template{display:none;}[hidden]{display:none!important;}body,blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0;}button{background:transparent;padding:0;}fieldset{margin:0;padding:0;}ol,ul{margin:0;padding:0;}textarea{resize:vertical;}button,[role="button"]{cursor:pointer;}button::-moz-focus-inner{border:0!important;}table{border-collapse:collapse;}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit;}img,svg,video,canvas,audio,iframe,embed,object{display:block;}img,video{max-width:100%;height:auto;}[data-js-focus-visible] :focus:not([data-focus-visible-added]):not([data-focus-visible-disabled]){outline:none;box-shadow:none;}select::-ms-expand{display:none;}:root{--chakra-vh:100vh;}@supports (height: -webkit-fill-available){:root{--chakra-vh:-webkit-fill-available;}}@supports (height: -moz-fill-available){:root{--chakra-vh:-moz-fill-available;}}@supports (height: 100lvh){:root{--chakra-vh:100lvh;}}</style><style data-emotion="css-global" data-s="">body{font-family:var(--chakra-fonts-body);color:var(--chakra-colors-chakra-body-text);background:var(--chakra-colors-bg);transition-property:background-color;transition-duration:var(--chakra-transition-duration-normal);line-height:var(--chakra-lineHeights-base);-webkit-transition:all 200ms linear!important;transition:all 200ms linear!important;}*::-webkit-input-placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*::-moz-placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*:-ms-input-placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*::placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*,*::before,::after{border-color:var(--chakra-colors-chakra-border-color);word-wrap:break-word;}code{font-family:var(--chakra-fonts-code)!important;}</style><style data-emotion="css 1yblbv" data-s="">.css-1yblbv{width:100%;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;max-width:var(--chakra-sizes-full);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);margin-top:var(--chakra-space-4);margin-bottom:var(--chakra-space-4);}@media screen and (min-width: 48em){.css-1yblbv{max-width:var(--chakra-sizes-container-2xl);margin-top:var(--chakra-space-7);margin-bottom:var(--chakra-space-7);}}</style><style data-emotion="css am1ly6" data-s="">.css-am1ly6{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;min-height:calc(100vh - 3.5rem);}</style><style data-emotion="css ho6z57" data-s="">.css-ho6z57{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-bottom:var(--chakra-space-4);border:var(--chakra-borders-2px);border-color:var(--chakra-colors-primary);position:relative;}@media screen and (min-width: 62em){.css-ho6z57{margin-bottom:var(--chakra-space-8);}}</style><style data-emotion="css 3nmjhd" data-s="">.css-3nmjhd{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;padding:var(--chakra-space-4);border-right:var(--chakra-borders-2px);border-color:var(--chakra-colors-primary);-webkit-flex:1;-ms-flex:1;flex:1;gap:var(--chakra-space-6);}</style><style data-emotion="css 13jvj27" data-s="">.css-13jvj27{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none;text-decoration:none;outline:2px solid transparent;outline-offset:2px;color:inherit;}.css-13jvj27:hover,.css-13jvj27[data-hover]{-webkit-text-decoration:none;text-decoration:none;}.css-13jvj27:focus-visible,.css-13jvj27[data-focus-visible]{box-shadow:var(--chakra-shadows-outline);}</style><style data-emotion="css 1mzyz4r" data-s="">.css-1mzyz4r{font-family:var(--chakra-fonts-heading);font-weight:700;letter-spacing:0.04rem;font-size:0.86rem;color:var(--chakra-colors-body);white-space:nowrap;}@media screen and (min-width: 30em){.css-1mzyz4r{font-size:1rem;}}</style><style data-emotion="css 1cbmkwm" data-s="">.css-1cbmkwm{pointer-events:none;width:0px;opacity:0;-webkit-transition:opacity 200ms ease-in-out;transition:opacity 200ms ease-in-out;}.css-1cbmkwm:focus,.css-1cbmkwm[data-focus]{opacity:1;width:auto;-webkit-transition:opacity 200ms ease-in-out;transition:opacity 200ms ease-in-out;}</style><style data-emotion="css e31zx4" data-s="">.css-e31zx4{font-family:var(--chakra-fonts-heading);font-weight:700;letter-spacing:0.04rem;color:var(--chakra-colors-body);white-space:nowrap;font-size:var(--chakra-fontSizes-xs);}</style><style data-emotion="css k008qs" data-s="">.css-k008qs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}</style><style data-emotion="css 1lj7dtf" data-s="">.css-1lj7dtf{display:none;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1lj7dtf>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}@media screen and (min-width: 48em){.css-1lj7dtf{display:block;}}</style><style data-emotion="css 1g7zkn" data-s="">.css-1g7zkn{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}@media screen and (min-width: 48em){.css-1g7zkn{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}}</style><style data-emotion="css 2h6j0j" data-s="">.css-2h6j0j{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:var(--chakra-space-8);border-bottom:var(--chakra-borders-2px);border-right:var(--chakra-borders-none);border-color:var(--chakra-colors-bg);color:var(--chakra-colors-bg);}.css-2h6j0j>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}.css-2h6j0j:hover,.css-2h6j0j[data-hover]{-webkit-text-decoration:none;text-decoration:none;background:var(--chakra-colors-primary);color:var(--chakra-colors-bg)!important;}@media screen and (min-width: 48em){.css-2h6j0j{padding:var(--chakra-space-4);border-bottom:var(--chakra-borders-none);border-right:var(--chakra-borders-2px);border-color:var(--chakra-colors-primary);color:var(--chakra-colors-primary);}}</style><style data-emotion="css 5bp4bq" data-s="">.css-5bp4bq{font-family:var(--chakra-fonts-heading);text-transform:uppercase;font-size:var(--chakra-fontSizes-2xl);}@media screen and (min-width: 48em){.css-5bp4bq{font-family:var(--chakra-fonts-heading);font-weight:700;font-size:0.86rem;}@media screen and (min-width: 30em){.css-5bp4bq{font-size:1rem;}}}</style><style data-emotion="css xnjnw4" data-s="">.css-xnjnw4{display:none;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;border-right:var(--chakra-borders-2px);border-color:var(--chakra-colors-primary);}.css-xnjnw4>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}@media screen and (min-width: 48em){.css-xnjnw4{display:block;}}</style><style data-emotion="css 14dbxni" data-s="">.css-14dbxni{padding:var(--chakra-space-4);border-right:var(--chakra-borders-2px);border-color:var(--chakra-colors-primary);}.css-14dbxni:hover,.css-14dbxni[data-hover]{background:var(--chakra-colors-primary);}.css-14dbxni:hover svg,.css-14dbxni[data-hover] svg{color:var(--chakra-colors-bg);}@media screen and (min-width: 48em){.css-14dbxni{border-right:var(--chakra-borders-none);}}</style><style data-emotion="css 1hm38nr" data-s="">.css-1hm38nr{width:1em;height:1em;display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:var(--chakra-colors-primary);vertical-align:middle;}</style><style data-emotion="css go7c78" data-s="">.css-go7c78{padding:var(--chakra-space-4);display:block;color:var(--chakra-colors-primary);}.css-go7c78:hover,.css-go7c78[data-hover]{background:var(--chakra-colors-primary);color:var(--chakra-colors-bg);}@media screen and (min-width: 48em){.css-go7c78{display:none;}}</style><style data-emotion="css onkibi" data-s="">.css-onkibi{width:1em;height:1em;display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:currentColor;vertical-align:middle;}</style><style data-emotion="css pyiqap" data-s="">.css-pyiqap{display:grid;grid-gap:var(--chakra-space-4);grid-template-columns:repeat(1, 1fr);}@media screen and (min-width: 62em){.css-pyiqap{grid-gap:var(--chakra-space-8);grid-template-columns:288px 1fr;}}</style><style data-emotion="css n21gh5" data-s="">.css-n21gh5{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-n21gh5>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}</style><style data-emotion="css xjbhn7" data-s="">.css-xjbhn7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;}.css-xjbhn7>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}@media screen and (min-width: 62em){.css-xjbhn7{width:var(--chakra-sizes-72);}}</style><style data-emotion="css c230cv" data-s="">.css-c230cv{display:none;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-c230cv>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}@media screen and (min-width: 62em){.css-c230cv{display:block;}}</style><style data-emotion="css 1kxf1mu" data-s="">.css-1kxf1mu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;border:var(--chakra-borders-2px);border-color:var(--chakra-colors-primary);}.css-1kxf1mu>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}</style><style data-emotion="css t9xfd" data-s="">.css-t9xfd{margin-top:0!important;}</style><style data-emotion="css 1t7rcca" data-s="">.css-1t7rcca{border-top-width:1px;border-color:inherit;overflow-anchor:none;border:var(--chakra-borders-none);}.css-1t7rcca:last-of-type{border-bottom-width:1px;}</style><style data-emotion="css 5jn0s9" data-s="">.css-5jn0s9{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;outline:2px solid transparent;outline-offset:2px;transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-normal);font-size:var(--chakra-fontSizes-md);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);padding-top:var(--chakra-space-2);padding-bottom:var(--chakra-space-2);border-bottom:var(--chakra-borders-2px);padding:0px;border-color:var(--chakra-colors-primary);-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;place-content:flex-end;background:var(--chakra-colors-button-bg);}.css-5jn0s9:focus-visible,.css-5jn0s9[data-focus-visible]{box-shadow:var(--chakra-shadows-outline);}.css-5jn0s9:hover,.css-5jn0s9[data-hover]{background:var(--chakra-colors-blackAlpha-50);}.css-5jn0s9[disabled],.css-5jn0s9[aria-disabled=true],.css-5jn0s9[data-disabled]{opacity:0.4;cursor:not-allowed;}</style><style data-emotion="css 1bpr9l5" data-s="">.css-1bpr9l5{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:var(--chakra-space-4);border-right:var(--chakra-borders-2px);border-color:var(--chakra-colors-primary);width:100%;background:var(--chakra-colors-bg);color:var(--chakra-colors-primary);}.css-1bpr9l5>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}[role=group]:hover .css-1bpr9l5,[role=group][data-hover] .css-1bpr9l5,[data-group]:hover .css-1bpr9l5,[data-group][data-hover] .css-1bpr9l5,.group:hover .css-1bpr9l5,.group[data-hover] .css-1bpr9l5{background:var(--chakra-colors-primary);color:var(--chakra-colors-bg);-webkit-text-decoration:none;text-decoration:none;}</style><style data-emotion="css vqdvr5" data-s="">.css-vqdvr5{font-family:var(--chakra-fonts-heading);font-weight:700;font-size:0.875rem;line-height:18.48px;letter-spacing:4%;text-align:left;}</style><style data-emotion="css 1dcaofd" data-s="">.css-1dcaofd{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;min-width:61px;}.css-1dcaofd>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}</style><style data-emotion="css gmuwbf" data-s="">.css-gmuwbf{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}</style><style data-emotion="css ge2v0f" data-s="">.css-ge2v0f{width:24px;height:24px;display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:var(--chakra-colors-primary);vertical-align:middle;}</style><style data-emotion="css llreyz" data-s="">.css-llreyz{padding-top:var(--chakra-space-4);-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-bottom:var(--chakra-space-4);border-bottom:2px solid;border-color:var(--chakra-colors-primary);}</style><style data-emotion="css 1gkslkv" data-s="">.css-1gkslkv{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);}.css-1gkslkv>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}</style><style data-emotion="css 1ymdxof" data-s="">.css-1ymdxof{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-bottom:0px;}.css-1ymdxof>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}.css-1ymdxof:hover,.css-1ymdxof[data-hover]{background:var(--chakra-colors-primary);color:var(--chakra-colors-bg);}</style><style data-emotion="css k943rb" data-s="">.css-k943rb{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none!important;text-decoration:none!important;outline:2px solid transparent;outline-offset:2px;color:inherit;}.css-k943rb:hover,.css-k943rb[data-hover]{-webkit-text-decoration:underline;text-decoration:underline;}.css-k943rb:focus-visible,.css-k943rb[data-focus-visible]{box-shadow:var(--chakra-shadows-outline);}</style><style data-emotion="css 1f8x31h" data-s="">.css-1f8x31h{font-family:var(--chakra-fonts-heading);weight:400px;font-size:0.875rem;line-height:var(--chakra-lineHeights-6);letter-spacing:0.01em;color:var(--chakra-colors-body);}.css-1f8x31h::before{content:"■";vertical-align:-1.25px;-webkit-margin-end:var(--chakra-space-2);margin-inline-end:var(--chakra-space-2);font-size:var(--chakra-fontSizes-lg);display:none;}[role=group]:hover .css-1f8x31h,[role=group][data-hover] .css-1f8x31h,[data-group]:hover .css-1f8x31h,[data-group][data-hover] .css-1f8x31h,.group:hover .css-1f8x31h,.group[data-hover] .css-1f8x31h{color:var(--chakra-colors-bg);box-shadow:0 0 0 var(--chakra-space-2) var(--chakra-colors-primary);}</style><style data-emotion="css 6x9ys0" data-s="">.css-6x9ys0{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-bottom:var(--chakra-space-6);}.css-6x9ys0>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}</style><style data-emotion="css u22t7j" data-s="">.css-u22t7j{font-family:var(--chakra-fonts-heading);weight:400px;font-size:0.875rem;line-height:var(--chakra-lineHeights-6);letter-spacing:0.01em;color:var(--chakra-colors-primary);}</style><style data-emotion="css f9zxfy" data-s="">.css-f9zxfy{font-family:var(--chakra-fonts-heading);weight:400px;font-size:0.875rem;line-height:var(--chakra-lineHeights-6);letter-spacing:0.01em;color:var(--chakra-colors-primary);}.css-f9zxfy::before{content:"■";vertical-align:-1.25px;-webkit-margin-end:var(--chakra-space-2);margin-inline-end:var(--chakra-space-2);font-size:var(--chakra-fontSizes-lg);display:-webkit-box;display:-webkit-unset;display:-ms-unsetbox;display:unset;}[role=group]:hover .css-f9zxfy,[role=group][data-hover] .css-f9zxfy,[data-group]:hover .css-f9zxfy,[data-group][data-hover] .css-f9zxfy,.group:hover .css-f9zxfy,.group[data-hover] .css-f9zxfy{color:var(--chakra-colors-bg);box-shadow:0 0 0 var(--chakra-space-2) var(--chakra-colors-primary);}</style><style data-emotion="css 10829se" data-s="">.css-10829se{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:var(--chakra-space-4);border-right:var(--chakra-borders-none);border-color:var(--chakra-colors-primary);width:100%;background:var(--chakra-colors-bg);color:var(--chakra-colors-primary);}.css-10829se>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}[role=group]:hover .css-10829se,[role=group][data-hover] .css-10829se,[data-group]:hover .css-10829se,[data-group][data-hover] .css-10829se,.group:hover .css-10829se,.group[data-hover] .css-10829se{background:var(--chakra-colors-primary);color:var(--chakra-colors-bg);-webkit-text-decoration:none;text-decoration:none;}</style><style data-emotion="css k1a737" data-s="">.css-k1a737{font-family:var(--chakra-fonts-heading);font-weight:700;font-size:0.875rem;line-height:18.48px;letter-spacing:4%;text-align:left;color:unset;}.css-k1a737::before{content:"■";vertical-align:-1.25px;-webkit-margin-end:var(--chakra-space-2);margin-inline-end:var(--chakra-space-2);font-size:var(--chakra-fontSizes-lg);display:none;}[role=group]:hover .css-k1a737,[role=group][data-hover] .css-k1a737,[data-group]:hover .css-k1a737,[data-group][data-hover] .css-k1a737,.group:hover .css-k1a737,.group[data-hover] .css-k1a737{color:var(--chakra-colors-bg);}</style><style data-emotion="css 5fthjt" data-s="">.css-5fthjt{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;outline:2px solid transparent;outline-offset:2px;transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-normal);font-size:var(--chakra-fontSizes-md);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);padding-top:var(--chakra-space-2);padding-bottom:var(--chakra-space-2);border-bottom:var(--chakra-borders-none);padding:0px;border-color:var(--chakra-colors-primary);-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;place-content:flex-end;background:var(--chakra-colors-button-bg);}.css-5fthjt:focus-visible,.css-5fthjt[data-focus-visible]{box-shadow:var(--chakra-shadows-outline);}.css-5fthjt:hover,.css-5fthjt[data-hover]{background:var(--chakra-colors-blackAlpha-50);}.css-5fthjt[disabled],.css-5fthjt[aria-disabled=true],.css-5fthjt[data-disabled]{opacity:0.4;cursor:not-allowed;}</style><style data-emotion="css 12wi7kw" data-s="">.css-12wi7kw{display:block;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-12wi7kw>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}@media screen and (min-width: 62em){.css-12wi7kw{display:none;}}</style><style data-emotion="css 18nbkvo" data-s="">.css-18nbkvo{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;outline:2px solid transparent;outline-offset:2px;transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-normal);font-size:var(--chakra-fontSizes-md);-webkit-padding-start:var(--chakra-space-8);padding-inline-start:var(--chakra-space-8);-webkit-padding-end:var(--chakra-space-8);padding-inline-end:var(--chakra-space-8);padding-top:var(--chakra-space-4);padding-bottom:var(--chakra-space-4);border:var(--chakra-borders-2px);border-color:var(--chakra-colors-primary);place-content:space-between;background:var(--chakra-colors-button-bg);}.css-18nbkvo:focus-visible,.css-18nbkvo[data-focus-visible]{box-shadow:var(--chakra-shadows-outline);}.css-18nbkvo:hover,.css-18nbkvo[data-hover]{background:var(--chakra-colors-primary);color:var(--chakra-colors-bg);}.css-18nbkvo[disabled],.css-18nbkvo[aria-disabled=true],.css-18nbkvo[data-disabled]{opacity:0.4;cursor:not-allowed;}.css-18nbkvo[aria-expanded=true],.css-18nbkvo[data-expanded]{background:var(--chakra-colors-primary);color:var(--chakra-colors-bg);}</style><style data-emotion="css 186l2rg" data-s="">.css-186l2rg{width:1em;height:1em;display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:currentColor;opacity:1;-webkit-transition:-webkit-transform 0.2s;transition:transform 0.2s;transform-origin:center;font-size:1.25em;vertical-align:middle;}</style><style data-emotion="css 1inji5u" data-s="">.css-1inji5u{padding-top:var(--chakra-space-2);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);padding-bottom:var(--chakra-space-5);padding:0px;}</style><style data-emotion="css o9nb3l" data-s="">.css-o9nb3l{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-bottom:var(--chakra-space-4);width:100%;}.css-o9nb3l>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}</style><style data-emotion="css exc07u" data-s="">.css-exc07u{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-bottom:var(--chakra-space-16);}.css-exc07u>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}</style><style data-emotion="css 18biwo" data-s="">.css-18biwo{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><style data-emotion="css c1mx6c" data-s="">.css-c1mx6c{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none;text-decoration:none;outline:2px solid transparent;outline-offset:2px;color:var(--chakra-colors-primary);}.css-c1mx6c:hover,.css-c1mx6c[data-hover]{-webkit-text-decoration:underline;text-decoration:underline;}.css-c1mx6c:focus-visible,.css-c1mx6c[data-focus-visible]{box-shadow:var(--chakra-shadows-outline);}</style><style data-emotion="css t4q1nq" data-s="">.css-t4q1nq{-webkit-margin-start:0.5rem;margin-inline-start:0.5rem;-webkit-margin-end:0.5rem;margin-inline-end:0.5rem;}</style><style data-emotion="css 1k55cy8" data-s="">.css-1k55cy8{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none;text-decoration:none;outline:2px solid transparent;outline-offset:2px;color:var(--chakra-colors-body);}.css-1k55cy8:hover,.css-1k55cy8[data-hover]{-webkit-text-decoration:underline;text-decoration:underline;}.css-1k55cy8:focus-visible,.css-1k55cy8[data-focus-visible]{box-shadow:var(--chakra-shadows-outline);}</style><style data-emotion="css 1iyc2qo" data-s="">.css-1iyc2qo{font-family:var(--chakra-fonts-heading);font-weight:700;font-size:2.175rem;line-height:3.375rem;margin-top:var(--chakra-space-4)!important;margin-bottom:0px;letter-spacing:0.03rem;color:var(--chakra-colors-body);}@media screen and (min-width: 48em){.css-1iyc2qo{font-size:2.875rem;letter-spacing:0.04rem;}}</style><style data-emotion="css d93cna" data-s="">.css-d93cna{display:grid;grid-gap:var(--chakra-space-4);grid-template-columns:repeat(1, 1fr);}@media screen and (min-width: 62em){.css-d93cna{grid-gap:var(--chakra-space-8);}}@media screen and (min-width: 80em){.css-d93cna{grid-template-columns:1fr 192px;}}</style><style data-emotion="css 11igjs4" data-s="">.css-11igjs4{width:min(100%, 768px);overflow:auto;}.css-11igjs4 *:first-of-type{margin-top:0!important;}</style><style data-emotion="css 145zvrm" data-s="">.css-145zvrm{margin-bottom:var(--chakra-space-7)!important;line-height:1.6;}</style><style data-emotion="css 1r2ydld" data-s="">.css-1r2ydld{font-family:var(--chakra-fonts-heading);font-weight:700;font-size:1.5rem;line-height:var(--chakra-lineHeights-normal);text-align:start;margin-top:var(--chakra-space-12)!important;margin-bottom:var(--chakra-space-4)!important;letter-spacing:0.03rem;color:var(--chakra-colors-body);}@media screen and (min-width: 48em){.css-1r2ydld{font-size:1.75rem;margin-top:var(--chakra-space-16)!important;letter-spacing:0.04rem;}}</style><style data-emotion="css z5s8m1" data-s="">.css-z5s8m1{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline;outline:2px solid transparent;outline-offset:2px;color:var(--chakra-colors-primary);}.css-z5s8m1:hover,.css-z5s8m1[data-hover]{-webkit-text-decoration:underline;text-decoration:underline;color:var(--chakra-colors-body);text-decoration-color:var(--chakra-colors-secondary);}.css-z5s8m1:focus-visible,.css-z5s8m1[data-focus-visible]{box-shadow:var(--chakra-shadows-outline);}.css-z5s8m1:focus,.css-z5s8m1[data-focus]{color:var(--chakra-colors-primary);box-shadow:0 0 0 1px var(--chakra-colors-primary)!important;-webkit-text-decoration:none;text-decoration:none;}.css-z5s8m1:active,.css-z5s8m1[data-active]{color:var(--chakra-colors-secondary);text-decoration-color:var(--chakra-colors-secondary);}</style><style data-emotion="css bfhy37" data-s="">.css-bfhy37{list-style-type:initial;-webkit-margin-start:1em;margin-inline-start:1em;margin-bottom:var(--chakra-space-7);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);}.css-bfhy37 ul,.css-bfhy37 ol{margin-bottom:0px;}</style><style data-emotion="css 1j2vlym" data-s="">.css-1j2vlym{-webkit-padding-start:var(--chakra-space-1);padding-inline-start:var(--chakra-space-1);-webkit-padding-end:var(--chakra-space-1);padding-inline-end:var(--chakra-space-1);color:var(--chakra-colors-primary);background:var(--chakra-colors-code-bg);border-radius:0.25em;font-family:var(--chakra-fonts-heading);font-weight:400;font-size:var(--chakra-fontSizes-md);line-height:var(--chakra-lineHeights-4);letter-spacing:0.01rem;}</style><style data-emotion="css s3mn9m" data-s="">.css-s3mn9m{display:none;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-s3mn9m>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}@media screen and (min-width: 80em){.css-s3mn9m{display:block;}}</style><style data-emotion="css 14zsnda" data-s="">.css-14zsnda{position:-webkit-sticky;position:sticky;height:calc(100vh - 3rem);overflow-y:auto;top:var(--chakra-space-4);}</style><style data-emotion="css ttz5vl" data-s="">.css-ttz5vl{font-family:var(--chakra-fonts-heading);font-weight:400;font-size:var(--chakra-fontSizes-md);line-height:21.12px;letter-spacing:2%;}</style><style data-emotion="css 1dyio1o" data-s="">.css-1dyio1o{opacity:0.6;border:0;border-color:var(--chakra-colors-primary);border-style:solid;border-bottom-width:1px;width:100%;margin-top:var(--chakra-space-4)!important;margin-bottom:var(--chakra-space-4)!important;}</style><style data-emotion="css 17yxwq0" data-s="">.css-17yxwq0{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none!important;text-decoration:none!important;outline:2px solid transparent;outline-offset:2px;color:inherit;margin:0px;}.css-17yxwq0:hover,.css-17yxwq0[data-hover]{-webkit-text-decoration:underline;text-decoration:underline;}.css-17yxwq0:focus-visible,.css-17yxwq0[data-focus-visible]{box-shadow:var(--chakra-shadows-outline);}</style><style data-emotion="css 1ayucz7" data-s="">.css-1ayucz7{color:var(--chakra-colors-primary);font-family:var(--chakra-fonts-body);font-weight:400;font-size:13px;line-height:var(--chakra-lineHeights-5);letter-spacing:1%;margin-bottom:var(--chakra-space-3-5);}.css-1ayucz7:hover,.css-1ayucz7[data-hover]{background:var(--chakra-colors-primary);box-shadow:0 0 0 6px var(--chakra-colors-primary);color:var(--chakra-colors-bg);}.css-1ayucz7:focus,.css-1ayucz7[data-focus]{background:var(--chakra-colors-primary);box-shadow:0 0 0 6px var(--chakra-colors-primary)!important;color:var(--chakra-colors-bg);outline:2px solid var(--chakra-colors-secondary)!important;outline-offset:4px;}.css-1ayucz7:active,.css-1ayucz7[data-active]{background:var(--chakra-colors-secondary);box-shadow:0 0 0 6px var(--chakra-colors-secondary);color:var(--chakra-colors-bg);}</style><style data-emotion="css 1t07u9w" data-s="">.css-1t07u9w{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-top:auto;}.css-1t07u9w>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}</style><style data-emotion="css 1orfpdo" data-s="">.css-1orfpdo{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-top:var(--chakra-space-4);}@media screen and (min-width: 62em){.css-1orfpdo{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;margin-top:var(--chakra-space-8);}}</style><style data-emotion="css 8jxpye" data-s="">.css-8jxpye{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;border:2px solid;border-color:var(--chakra-colors-primary);}@media screen and (min-width: 48em){.css-8jxpye{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}}</style><style data-emotion="css ak2pxb" data-s="">.css-ak2pxb{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-bottom:2px solid;border-color:var(--chakra-colors-primary);margin-top:-2px!important;}@media screen and (min-width: 48em){.css-ak2pxb{border-bottom:var(--chakra-borders-none);}}</style><style data-emotion="css 1cxkbxx" data-s="">.css-1cxkbxx{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex:1;-ms-flex:1;flex:1;color:var(--chakra-colors-primary);border-right:2px solid;border-color:var(--chakra-colors-primary);}.css-1cxkbxx:hover,.css-1cxkbxx[data-hover]{-webkit-text-decoration:none;text-decoration:none;background:var(--chakra-colors-primary);color:var(--chakra-colors-bg)!important;}</style><style data-emotion="css xl4mt7" data-s="">.css-xl4mt7{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none;text-decoration:none;outline:2px solid transparent;outline-offset:2px;color:inherit;padding:var(--chakra-space-4);}.css-xl4mt7:hover,.css-xl4mt7[data-hover]{-webkit-text-decoration:none;text-decoration:none;}.css-xl4mt7:focus-visible,.css-xl4mt7[data-focus-visible]{box-shadow:var(--chakra-shadows-outline);}</style><style data-emotion="css 4ii8xl" data-s="">.css-4ii8xl{font-family:var(--chakra-fonts-heading);font-weight:700;text-transform:uppercase;line-height:21.12px;letter-spacing:0.02rem;}</style><style data-emotion="css 1jqxip7" data-s="">.css-1jqxip7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex:1;-ms-flex:1;flex:1;color:var(--chakra-colors-primary);border-right:var(--chakra-borders-none);border-color:var(--chakra-colors-primary);}.css-1jqxip7:hover,.css-1jqxip7[data-hover]{-webkit-text-decoration:none;text-decoration:none;background:var(--chakra-colors-primary);color:var(--chakra-colors-bg)!important;}@media screen and (min-width: 48em){.css-1jqxip7{border-right:2px solid;}}</style><style data-emotion="css kh7np0" data-s="">.css-kh7np0{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-top:0!important;}</style><style data-emotion="css 16mojw" data-s="">.css-16mojw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex:1;-ms-flex:1;flex:1;border-left:var(--chakra-borders-none);border-color:var(--chakra-colors-primary)!important;}.css-16mojw:hover,.css-16mojw[data-hover]{-webkit-text-decoration:none;text-decoration:none;background:var(--chakra-colors-primary);color:var(--chakra-colors-bg)!important;}@media screen and (min-width: 48em){.css-16mojw{border-left:2px solid;}}@media screen and (min-width: 62em){.css-16mojw{border-left:var(--chakra-borders-none);}}</style><style data-emotion="css 1eicro" data-s="">.css-1eicro{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none;text-decoration:none;outline:2px solid transparent;outline-offset:2px;color:inherit;padding:var(--chakra-space-4);}.css-1eicro:hover,.css-1eicro[data-hover]{-webkit-text-decoration:underline;text-decoration:underline;}.css-1eicro:focus-visible,.css-1eicro[data-focus-visible]{box-shadow:var(--chakra-shadows-outline);}</style><style data-emotion="css 1wn9b4n" data-s="">.css-1wn9b4n{width:var(--chakra-sizes-8);height:22px;display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:var(--chakra-colors-primary);vertical-align:middle;}[role=group]:hover .css-1wn9b4n,[role=group][data-hover] .css-1wn9b4n,[data-group]:hover .css-1wn9b4n,[data-group][data-hover] .css-1wn9b4n,.group:hover .css-1wn9b4n,.group[data-hover] .css-1wn9b4n{color:var(--chakra-colors-bg);}</style><style data-emotion="css ci7dzc" data-s="">.css-ci7dzc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex:1;-ms-flex:1;flex:1;border-width:2px;border-style:none solid;border-color:var(--chakra-colors-primary);}.css-ci7dzc:hover,.css-ci7dzc[data-hover]{-webkit-text-decoration:none;text-decoration:none;background:var(--chakra-colors-primary);color:var(--chakra-colors-bg)!important;}</style><style data-emotion="css 1ukw5o8" data-s="">.css-1ukw5o8{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex:1;-ms-flex:1;flex:1;}.css-1ukw5o8:hover,.css-1ukw5o8[data-hover]{-webkit-text-decoration:none;text-decoration:none;background:var(--chakra-colors-primary);color:var(--chakra-colors-bg)!important;}</style><style data-emotion="css 100o4eg" data-s="">.css-100o4eg{width:var(--chakra-sizes-7);height:22px;display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:var(--chakra-colors-primary);vertical-align:middle;}[role=group]:hover .css-100o4eg,[role=group][data-hover] .css-100o4eg,[data-group]:hover .css-100o4eg,[data-group][data-hover] .css-100o4eg,.group:hover .css-100o4eg,.group[data-hover] .css-100o4eg{color:var(--chakra-colors-bg);}</style><style data-emotion="css s1d1j7" data-s="">.css-s1d1j7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:var(--chakra-space-4);border-width:2px;border-style:none solid solid solid;border-color:var(--chakra-colors-primary);-webkit-flex:1;-ms-flex:1;flex:1;}@media screen and (min-width: 62em){.css-s1d1j7{border-style:solid solid solid none;}}</style><style data-emotion="css 1sfg7rt" data-s="">.css-1sfg7rt{font-family:var(--chakra-fonts-body);line-height:22px;font-weight:400;font-size:12px;color:var(--chakra-colors-body);}</style><style data-emotion="css" data-s=""></style><link as="script" rel="prefetch" href="./Getting started with Geth _ go-ethereum_files/index-3f8cc70fa936f559.js.download"><link as="script" rel="prefetch" href="./Getting started with Geth _ go-ethereum_files/106-3cc2c634385c6636.js.download"><link as="script" rel="prefetch" href="./Getting started with Geth _ go-ethereum_files/downloads-cbdcb5f2a012f7c1.js.download"></head><body class="chakra-ui-dark"><script id="chakra-script">!(function(){try{var a=function(c){var v="(prefers-color-scheme: dark)",h=window.matchMedia(v).matches?"dark":"light",r=c==="system"?h:c,o=document.documentElement,s=document.body,l="chakra-ui-light",d="chakra-ui-dark",i=r==="dark";return s.classList.add(i?d:l),s.classList.remove(i?l:d),o.style.colorScheme=r,o.dataset.theme=r,r},n=a,m="system",e="chakra-ui-color-mode",t=localStorage.getItem(e);t?a(t):localStorage.setItem(e,a(m))}catch(a){}})();</script><div id="__next"><div class="chakra-container css-1yblbv"><div class="css-am1ly6"><div class="css-ho6z57"><div class="css-3nmjhd"><a class="chakra-link css-13jvj27" href="https://geth.ethereum.org/"><p class="chakra-text css-1mzyz4r">go-ethereum</p></a><a href="https://geth.ethereum.org/docs/getting-started#main-content" class="css-1cbmkwm"><p class="chakra-text css-e31zx4">skip to content</p></a></div><div class="css-k008qs"><div class="chakra-stack css-1lj7dtf"><div class="css-1g7zkn"><a class="chakra-link css-13jvj27" href="https://geth.ethereum.org/downloads"><div class="chakra-stack css-2h6j0j"><p class="chakra-text css-5bp4bq">downloads</p></div></a><a class="chakra-link css-13jvj27" href="https://geth.ethereum.org/docs"><div class="chakra-stack css-2h6j0j"><p class="chakra-text css-5bp4bq">documentation</p></div></a></div></div><div class="chakra-stack css-xnjnw4"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"><svg width="15" height="15" class="DocSearch-Control-Key-Icon"><path d="M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953" stroke-width="1.2" stroke="currentColor" fill="none" stroke-linecap="square"></path></svg></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><button aria-label="Toggle light mode" class="css-14dbxni"><svg viewBox="0 0 44 44" focusable="false" class="chakra-icon css-1hm38nr"><path fill="currentColor" d="M21 0h2v12h-2V0zM0 23v-2h12v2H0zM44 21H32v2h12v-2zM21 32h2v12h-2V32zM7.15 5.736 5.738 7.151l8.485 8.485 1.414-1.414-8.485-8.486zM36.85 5.736l1.413 1.414-8.485 8.486-1.414-1.414 8.485-8.486zM29.778 28.364l-1.414 1.415 8.485 8.485 1.415-1.415-8.486-8.485zM14.222 28.364l1.414 1.414-8.485 8.486-1.414-1.415 8.485-8.485zM30 22a8 8 0 1 1-16 0 8 8 0 0 1 16 0z"></path></svg></button></div><button aria-label="Open mobile menu" class="css-go7c78"><svg viewBox="0 0 22 14" focusable="false" class="chakra-icon css-onkibi"><path fill="currentColor" d="M0 .5h22v.97H0V.5zm0 6.017h22v.97H0v-.97zm22 6.013H0v.97h22v-.97z"></path></svg></button></div><main><div class="css-pyiqap"><div class="chakra-stack css-n21gh5"><aside class="chakra-stack css-xjbhn7"><div class="chakra-stack css-c230cv"><div class="chakra-stack css-1kxf1mu"><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:R23cr6l9f6:" aria-expanded="true" aria-controls="accordion-panel-:R23cr6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-1bgq4yr"><p class="chakra-text css-vqdvr5">Getting started</p></div><div class="chakra-stack css-1dcaofd"><div class="css-gmuwbf"><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-ge2v0f"><path fill="currentColor" d="M2 11h20v2H2z"></path></svg></div></div></button><div class="chakra-collapse" style="overflow: hidden; display: block; opacity: 1; height: auto;"><div role="region" id="accordion-panel-:R23cr6l9f6:" aria-labelledby="accordion-button-:R23cr6l9f6:" class="chakra-accordion__panel css-llreyz"><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/getting-started"><p class="chakra-text css-f9zxfy">Introduction</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/getting-started/hardware-requirements"><p class="chakra-text css-1f8x31h">Hardware requirements</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/getting-started/installing-geth"><p class="chakra-text css-1f8x31h">Installing Geth</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/getting-started/consensus-clients"><p class="chakra-text css-1f8x31h">Consensus clients</p></a></div></div></div></div></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:R25cr6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:R25cr6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-1bpr9l5"><p class="chakra-text css-vqdvr5">Fundamentals</p></div><div class="chakra-stack css-1dcaofd"><div class="css-gmuwbf"><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-ge2v0f"><g fill="currentColor"><path d="M2 11h20v2H2z"></path><path d="M11 2h2v20h-2z"></path></g></svg></div></div></button><div class="chakra-collapse" style="overflow:hidden;display:none;opacity:0;height:0px"><div role="region" id="accordion-panel-:R25cr6l9f6:" aria-labelledby="accordion-button-:R25cr6l9f6:" class="chakra-accordion__panel css-llreyz"><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals"><p class="chakra-text css-1f8x31h">Introduction</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/node-architecture"><p class="chakra-text css-1f8x31h">Node architecture</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/command-line-options"><p class="chakra-text css-1f8x31h">Command-line options</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/security"><p class="chakra-text css-1f8x31h">Security</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/sync-modes"><p class="chakra-text css-1f8x31h">Sync-modes</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/blsync"><p class="chakra-text css-1f8x31h">Beacon light sync</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/account-management"><p class="chakra-text css-1f8x31h">Account management</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/databases"><p class="chakra-text css-1f8x31h">Databases</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/backup-restore"><p class="chakra-text css-1f8x31h">Backup &amp; restore</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/logs"><p class="chakra-text css-1f8x31h">Logs</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/peer-to-peer"><p class="chakra-text css-1f8x31h">Connecting to peers</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/pruning"><p class="chakra-text css-1f8x31h">Pruning</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/kurtosis"><p class="chakra-text css-1f8x31h">Private networks via Kurtosis</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/private-network"><p class="chakra-text css-1f8x31h">Private networks</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/config-files"><p class="chakra-text css-1f8x31h">Config files</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/mining"><p class="chakra-text css-1f8x31h">Mining</p></a></div></div></div></div></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:R27cr6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:R27cr6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-1bpr9l5"><p class="chakra-text css-vqdvr5">Interacting with Geth</p></div><div class="chakra-stack css-1dcaofd"><div class="css-gmuwbf"><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-ge2v0f"><g fill="currentColor"><path d="M2 11h20v2H2z"></path><path d="M11 2h2v20h-2z"></path></g></svg></div></div></button><div class="chakra-collapse" style="overflow:hidden;display:none;opacity:0;height:0px"><div role="region" id="accordion-panel-:R27cr6l9f6:" aria-labelledby="accordion-button-:R27cr6l9f6:" class="chakra-accordion__panel css-llreyz"><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-6x9ys0"><p class="chakra-text css-u22t7j">JSON-RPC Server</p><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc"><p class="chakra-text css-1f8x31h">Introduction</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/batch"><p class="chakra-text css-1f8x31h">Batch requests</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub"><p class="chakra-text css-1f8x31h">Real-time Events</p></a></div></div></div><div class="chakra-stack css-6x9ys0"><p class="chakra-text css-u22t7j">JSON-RPC Namespaces</p><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-admin"><p class="chakra-text css-1f8x31h">admin</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-clique"><p class="chakra-text css-1f8x31h">clique</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug"><p class="chakra-text css-1f8x31h">debug</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-eth"><p class="chakra-text css-1f8x31h">eth</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-les"><p class="chakra-text css-1f8x31h">les</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-miner"><p class="chakra-text css-1f8x31h">miner (deprecated)</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-net"><p class="chakra-text css-1f8x31h">net</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-personal"><p class="chakra-text css-1f8x31h">personal (deprecated)</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool"><p class="chakra-text css-1f8x31h">txpool</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/objects"><p class="chakra-text css-1f8x31h">objects</p></a></div></div></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/javascript-console"><p class="chakra-text css-1f8x31h">JS Console</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/javascript-console-contracts"><p class="chakra-text css-1f8x31h">JS Console 2: Contracts</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/graphql"><p class="chakra-text css-1f8x31h">GraphQL server</p></a></div></div></div></div></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:R29cr6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:R29cr6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-1bpr9l5"><p class="chakra-text css-vqdvr5">Developers</p></div><div class="chakra-stack css-1dcaofd"><div class="css-gmuwbf"><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-ge2v0f"><g fill="currentColor"><path d="M2 11h20v2H2z"></path><path d="M11 2h2v20h-2z"></path></g></svg></div></div></button><div class="chakra-collapse" style="overflow: hidden; display: none; opacity: 0; height: 0px;"><div role="region" id="accordion-panel-:R29cr6l9f6:" aria-labelledby="accordion-button-:R29cr6l9f6:" class="chakra-accordion__panel css-llreyz"><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers"><p class="chakra-text css-1f8x31h">Introduction</p></a></div><div class="chakra-stack css-6x9ys0"><p class="chakra-text css-u22t7j">Dapp developers</p><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/dapp-developer/dev-mode"><p class="chakra-text css-1f8x31h">Dev mode</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/dapp-developer/native"><p class="chakra-text css-1f8x31h">Go API</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/dapp-developer/native-accounts"><p class="chakra-text css-1f8x31h">Go Account Management</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/dapp-developer/native-bindings"><p class="chakra-text css-1f8x31h">Go Contract Bindings</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/dapp-developer/native-bindings-v2"><p class="chakra-text css-1f8x31h">Go Contract Bindings (v2)</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/dapp-developer/mobile"><p class="chakra-text css-1f8x31h">Geth for Mobile</p></a></div></div></div><div class="chakra-stack css-6x9ys0"><p class="chakra-text css-u22t7j">EVM tracing</p><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/evm-tracing"><p class="chakra-text css-1f8x31h">Introduction</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/evm-tracing/basic-traces"><p class="chakra-text css-1f8x31h">Basic traces</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/evm-tracing/built-in-tracers"><p class="chakra-text css-1f8x31h">Built-in tracers</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/evm-tracing/custom-tracer"><p class="chakra-text css-1f8x31h">Custom EVM tracer</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/evm-tracing/live-tracing"><p class="chakra-text css-1f8x31h">Live tracing</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/evm-tracing/javascript-tutorial"><p class="chakra-text css-1f8x31h">Tutorial for Javascript tracing</p></a></div></div></div><div class="chakra-stack css-6x9ys0"><p class="chakra-text css-u22t7j">Geth developer</p><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/geth-developer/dev-guide"><p class="chakra-text css-1f8x31h">Developer guide</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/geth-developer/disclosures"><p class="chakra-text css-1f8x31h">Disclosures</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/geth-developer/dns-discovery-setup"><p class="chakra-text css-1f8x31h">DNS discovery setup guide</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/geth-developer/code-review-guidelines"><p class="chakra-text css-1f8x31h">Code review guidelines</p></a></div></div></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/geth-developer/contributing"><p class="chakra-text css-1f8x31h">Contributing</p></a></div></div></div></div></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:R2bcr6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:R2bcr6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-1bpr9l5"><p class="chakra-text css-vqdvr5">Monitoring</p></div><div class="chakra-stack css-1dcaofd"><div class="css-gmuwbf"><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-ge2v0f"><g fill="currentColor"><path d="M2 11h20v2H2z"></path><path d="M11 2h2v20h-2z"></path></g></svg></div></div></button><div class="chakra-collapse" style="overflow:hidden;display:none;opacity:0;height:0px"><div role="region" id="accordion-panel-:R2bcr6l9f6:" aria-labelledby="accordion-button-:R2bcr6l9f6:" class="chakra-accordion__panel css-llreyz"><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/monitoring/dashboards"><p class="chakra-text css-1f8x31h">Creating Dashboards</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/monitoring/understanding-dashboards"><p class="chakra-text css-1f8x31h">Understanding Dashboards</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/monitoring/ethstats"><p class="chakra-text css-1f8x31h">Ethstats</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/monitoring/metrics"><p class="chakra-text css-1f8x31h">Metrics</p></a></div></div></div></div></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:R2dcr6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:R2dcr6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-1bpr9l5"><p class="chakra-text css-vqdvr5">Tools</p></div><div class="chakra-stack css-1dcaofd"><div class="css-gmuwbf"><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-ge2v0f"><g fill="currentColor"><path d="M2 11h20v2H2z"></path><path d="M11 2h2v20h-2z"></path></g></svg></div></div></button><div class="chakra-collapse" style="overflow:hidden;display:none;opacity:0;height:0px"><div role="region" id="accordion-panel-:R2dcr6l9f6:" aria-labelledby="accordion-button-:R2dcr6l9f6:" class="chakra-accordion__panel css-llreyz"><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-6x9ys0"><p class="chakra-text css-u22t7j">Clef</p><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/introduction"><p class="chakra-text css-1f8x31h">Introduction</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/apis"><p class="chakra-text css-1f8x31h">APIs</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/rules"><p class="chakra-text css-1f8x31h">Rules</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/setup"><p class="chakra-text css-1f8x31h">Setup</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/datatypes"><p class="chakra-text css-1f8x31h">Datatypes</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/tutorial"><p class="chakra-text css-1f8x31h">Tutorial</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/clique-signing"><p class="chakra-text css-1f8x31h">Clique-signing</p></a></div></div></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/abigen"><p class="chakra-text css-1f8x31h">abigen</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/devp2p"><p class="chakra-text css-1f8x31h">devp2p</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/puppeth"><p class="chakra-text css-1f8x31h">puppeth</p></a></div></div></div></div></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:R2fcr6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:R2fcr6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-10829se"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/faq"><p class="chakra-text css-k1a737">FAQs</p></a></div></button></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:R2hcr6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:R2hcr6l9f6:" class="chakra-accordion__button css-5fthjt" data-index="0"><div class="chakra-stack css-10829se"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/resources"><p class="chakra-text css-k1a737">Resources</p></a></div></button></div></div></div></div><div class="chakra-stack css-12wi7kw"><div class="chakra-accordion css-0"><div class="chakra-accordion__item css-1t7rcca"><button type="button" id="accordion-button-:R1db6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:R1db6l9f6:" class="chakra-accordion__button css-18nbkvo" data-index="0"><p class="chakra-text css-vqdvr5">Documentation</p><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon chakra-accordion__icon css-186l2rg" aria-hidden="true"><path fill="currentColor" d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"></path></svg></button><div class="chakra-collapse" style="overflow: hidden; display: none; opacity: 0; height: 0px;"><div role="region" id="accordion-panel-:R1db6l9f6:" aria-labelledby="accordion-button-:R1db6l9f6:" class="chakra-accordion__panel css-1inji5u"><div class="chakra-stack css-1kxf1mu"><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:Rgqnbdb6l9f6:" aria-expanded="true" aria-controls="accordion-panel-:Rgqnbdb6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-1bgq4yr"><p class="chakra-text css-vqdvr5">Getting started</p></div><div class="chakra-stack css-1dcaofd"><div class="css-gmuwbf"><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-ge2v0f"><path fill="currentColor" d="M2 11h20v2H2z"></path></svg></div></div></button><div class="chakra-collapse" style="overflow: hidden; display: block; opacity: 1; height: auto;"><div role="region" id="accordion-panel-:Rgqnbdb6l9f6:" aria-labelledby="accordion-button-:Rgqnbdb6l9f6:" class="chakra-accordion__panel css-llreyz"><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/getting-started"><p class="chakra-text css-f9zxfy">Introduction</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/getting-started/hardware-requirements"><p class="chakra-text css-1f8x31h">Hardware requirements</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/getting-started/installing-geth"><p class="chakra-text css-1f8x31h">Installing Geth</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/getting-started/consensus-clients"><p class="chakra-text css-1f8x31h">Consensus clients</p></a></div></div></div></div></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:Rhanbdb6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:Rhanbdb6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-1bpr9l5"><p class="chakra-text css-vqdvr5">Fundamentals</p></div><div class="chakra-stack css-1dcaofd"><div class="css-gmuwbf"><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-ge2v0f"><g fill="currentColor"><path d="M2 11h20v2H2z"></path><path d="M11 2h2v20h-2z"></path></g></svg></div></div></button><div class="chakra-collapse" style="overflow:hidden;display:none;opacity:0;height:0px"><div role="region" id="accordion-panel-:Rhanbdb6l9f6:" aria-labelledby="accordion-button-:Rhanbdb6l9f6:" class="chakra-accordion__panel css-llreyz"><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals"><p class="chakra-text css-1f8x31h">Introduction</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/node-architecture"><p class="chakra-text css-1f8x31h">Node architecture</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/command-line-options"><p class="chakra-text css-1f8x31h">Command-line options</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/security"><p class="chakra-text css-1f8x31h">Security</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/sync-modes"><p class="chakra-text css-1f8x31h">Sync-modes</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/blsync"><p class="chakra-text css-1f8x31h">Beacon light sync</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/account-management"><p class="chakra-text css-1f8x31h">Account management</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/databases"><p class="chakra-text css-1f8x31h">Databases</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/backup-restore"><p class="chakra-text css-1f8x31h">Backup &amp; restore</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/logs"><p class="chakra-text css-1f8x31h">Logs</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/peer-to-peer"><p class="chakra-text css-1f8x31h">Connecting to peers</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/pruning"><p class="chakra-text css-1f8x31h">Pruning</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/kurtosis"><p class="chakra-text css-1f8x31h">Private networks via Kurtosis</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/private-network"><p class="chakra-text css-1f8x31h">Private networks</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/config-files"><p class="chakra-text css-1f8x31h">Config files</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/fundamentals/mining"><p class="chakra-text css-1f8x31h">Mining</p></a></div></div></div></div></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:Rhqnbdb6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:Rhqnbdb6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-1bpr9l5"><p class="chakra-text css-vqdvr5">Interacting with Geth</p></div><div class="chakra-stack css-1dcaofd"><div class="css-gmuwbf"><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-ge2v0f"><g fill="currentColor"><path d="M2 11h20v2H2z"></path><path d="M11 2h2v20h-2z"></path></g></svg></div></div></button><div class="chakra-collapse" style="overflow:hidden;display:none;opacity:0;height:0px"><div role="region" id="accordion-panel-:Rhqnbdb6l9f6:" aria-labelledby="accordion-button-:Rhqnbdb6l9f6:" class="chakra-accordion__panel css-llreyz"><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-6x9ys0"><p class="chakra-text css-u22t7j">JSON-RPC Server</p><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc"><p class="chakra-text css-1f8x31h">Introduction</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/batch"><p class="chakra-text css-1f8x31h">Batch requests</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub"><p class="chakra-text css-1f8x31h">Real-time Events</p></a></div></div></div><div class="chakra-stack css-6x9ys0"><p class="chakra-text css-u22t7j">JSON-RPC Namespaces</p><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-admin"><p class="chakra-text css-1f8x31h">admin</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-clique"><p class="chakra-text css-1f8x31h">clique</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug"><p class="chakra-text css-1f8x31h">debug</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-eth"><p class="chakra-text css-1f8x31h">eth</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-les"><p class="chakra-text css-1f8x31h">les</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-miner"><p class="chakra-text css-1f8x31h">miner (deprecated)</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-net"><p class="chakra-text css-1f8x31h">net</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-personal"><p class="chakra-text css-1f8x31h">personal (deprecated)</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool"><p class="chakra-text css-1f8x31h">txpool</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/objects"><p class="chakra-text css-1f8x31h">objects</p></a></div></div></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/javascript-console"><p class="chakra-text css-1f8x31h">JS Console</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/javascript-console-contracts"><p class="chakra-text css-1f8x31h">JS Console 2: Contracts</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/interacting-with-geth/rpc/graphql"><p class="chakra-text css-1f8x31h">GraphQL server</p></a></div></div></div></div></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:Rianbdb6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:Rianbdb6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-1bpr9l5"><p class="chakra-text css-vqdvr5">Developers</p></div><div class="chakra-stack css-1dcaofd"><div class="css-gmuwbf"><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-ge2v0f"><g fill="currentColor"><path d="M2 11h20v2H2z"></path><path d="M11 2h2v20h-2z"></path></g></svg></div></div></button><div class="chakra-collapse" style="overflow: hidden; display: none; opacity: 0; height: 0px;"><div role="region" id="accordion-panel-:Rianbdb6l9f6:" aria-labelledby="accordion-button-:Rianbdb6l9f6:" class="chakra-accordion__panel css-llreyz"><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers"><p class="chakra-text css-1f8x31h">Introduction</p></a></div><div class="chakra-stack css-6x9ys0"><p class="chakra-text css-u22t7j">Dapp developers</p><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/dapp-developer/dev-mode"><p class="chakra-text css-1f8x31h">Dev mode</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/dapp-developer/native"><p class="chakra-text css-1f8x31h">Go API</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/dapp-developer/native-accounts"><p class="chakra-text css-1f8x31h">Go Account Management</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/dapp-developer/native-bindings"><p class="chakra-text css-1f8x31h">Go Contract Bindings</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/dapp-developer/native-bindings-v2"><p class="chakra-text css-1f8x31h">Go Contract Bindings (v2)</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/dapp-developer/mobile"><p class="chakra-text css-1f8x31h">Geth for Mobile</p></a></div></div></div><div class="chakra-stack css-6x9ys0"><p class="chakra-text css-u22t7j">EVM tracing</p><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/evm-tracing"><p class="chakra-text css-1f8x31h">Introduction</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/evm-tracing/basic-traces"><p class="chakra-text css-1f8x31h">Basic traces</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/evm-tracing/built-in-tracers"><p class="chakra-text css-1f8x31h">Built-in tracers</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/evm-tracing/custom-tracer"><p class="chakra-text css-1f8x31h">Custom EVM tracer</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/evm-tracing/live-tracing"><p class="chakra-text css-1f8x31h">Live tracing</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/evm-tracing/javascript-tutorial"><p class="chakra-text css-1f8x31h">Tutorial for Javascript tracing</p></a></div></div></div><div class="chakra-stack css-6x9ys0"><p class="chakra-text css-u22t7j">Geth developer</p><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/geth-developer/dev-guide"><p class="chakra-text css-1f8x31h">Developer guide</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/geth-developer/disclosures"><p class="chakra-text css-1f8x31h">Disclosures</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/geth-developer/dns-discovery-setup"><p class="chakra-text css-1f8x31h">DNS discovery setup guide</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/geth-developer/code-review-guidelines"><p class="chakra-text css-1f8x31h">Code review guidelines</p></a></div></div></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/developers/geth-developer/contributing"><p class="chakra-text css-1f8x31h">Contributing</p></a></div></div></div></div></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:Riqnbdb6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:Riqnbdb6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-1bpr9l5"><p class="chakra-text css-vqdvr5">Monitoring</p></div><div class="chakra-stack css-1dcaofd"><div class="css-gmuwbf"><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-ge2v0f"><g fill="currentColor"><path d="M2 11h20v2H2z"></path><path d="M11 2h2v20h-2z"></path></g></svg></div></div></button><div class="chakra-collapse" style="overflow:hidden;display:none;opacity:0;height:0px"><div role="region" id="accordion-panel-:Riqnbdb6l9f6:" aria-labelledby="accordion-button-:Riqnbdb6l9f6:" class="chakra-accordion__panel css-llreyz"><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/monitoring/dashboards"><p class="chakra-text css-1f8x31h">Creating Dashboards</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/monitoring/understanding-dashboards"><p class="chakra-text css-1f8x31h">Understanding Dashboards</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/monitoring/ethstats"><p class="chakra-text css-1f8x31h">Ethstats</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/monitoring/metrics"><p class="chakra-text css-1f8x31h">Metrics</p></a></div></div></div></div></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:Rjanbdb6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:Rjanbdb6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-1bpr9l5"><p class="chakra-text css-vqdvr5">Tools</p></div><div class="chakra-stack css-1dcaofd"><div class="css-gmuwbf"><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-ge2v0f"><g fill="currentColor"><path d="M2 11h20v2H2z"></path><path d="M11 2h2v20h-2z"></path></g></svg></div></div></button><div class="chakra-collapse" style="overflow:hidden;display:none;opacity:0;height:0px"><div role="region" id="accordion-panel-:Rjanbdb6l9f6:" aria-labelledby="accordion-button-:Rjanbdb6l9f6:" class="chakra-accordion__panel css-llreyz"><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-6x9ys0"><p class="chakra-text css-u22t7j">Clef</p><div class="chakra-stack css-1gkslkv"><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/introduction"><p class="chakra-text css-1f8x31h">Introduction</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/apis"><p class="chakra-text css-1f8x31h">APIs</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/rules"><p class="chakra-text css-1f8x31h">Rules</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/setup"><p class="chakra-text css-1f8x31h">Setup</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/datatypes"><p class="chakra-text css-1f8x31h">Datatypes</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/tutorial"><p class="chakra-text css-1f8x31h">Tutorial</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/clef/clique-signing"><p class="chakra-text css-1f8x31h">Clique-signing</p></a></div></div></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/abigen"><p class="chakra-text css-1f8x31h">abigen</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/devp2p"><p class="chakra-text css-1f8x31h">devp2p</p></a></div><div class="chakra-stack css-1ymdxof" data-group="true"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/tools/puppeth"><p class="chakra-text css-1f8x31h">puppeth</p></a></div></div></div></div></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:Rjqnbdb6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:Rjqnbdb6l9f6:" class="chakra-accordion__button css-5jn0s9" data-index="0"><div class="chakra-stack css-10829se"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/faq"><p class="chakra-text css-k1a737">FAQs</p></a></div></button></div></div><div class="chakra-accordion css-t9xfd"><div class="chakra-accordion__item css-1t7rcca"><button data-group="true" type="button" id="accordion-button-:Rkanbdb6l9f6:" aria-expanded="false" aria-controls="accordion-panel-:Rkanbdb6l9f6:" class="chakra-accordion__button css-5fthjt" data-index="0"><div class="chakra-stack css-10829se"><a class="chakra-link css-k943rb" href="https://geth.ethereum.org/docs/resources"><p class="chakra-text css-k1a737">Resources</p></a></div></button></div></div></div></div></div></div></div></div></aside></div><div class="chakra-stack css-o9nb3l" id="main-content"><div class="chakra-stack css-exc07u"><nav aria-label="breadcrumb" class="chakra-breadcrumb css-0"><ol class="chakra-breadcrumb__list css-0"><li class="chakra-breadcrumb__list-item css-18biwo"><a href="https://geth.ethereum.org/docs" class="chakra-breadcrumb__link css-c1mx6c">docs</a><span role="presentation" class="css-t4q1nq">/</span></li><li class="chakra-breadcrumb__list-item css-18biwo"><a href="https://geth.ethereum.org/docs/getting-started" class="chakra-breadcrumb__link css-1k55cy8">getting-started</a></li></ol></nav><h1 class="chakra-heading css-1iyc2qo">Getting started with Geth</h1><span class="chakra-text css-t9xfd">Last edited on <!-- -->May 24, 2024</span></div><div class="css-d93cna"><div class="css-11igjs4"><p class="chakra-text css-145zvrm">This page explains how to set up Geth and execute some basic tasks using the command line tools. In order to use Geth, the software must first be installed. There are several ways Geth can be installed depending on the operating system and the user's choice of installation method, for example using a package manager, container or building from source. Instructions for installing Geth can be found on the <a class="chakra-link css-z5s8m1" href="https://geth.ethereum.org/docs/getting-started/installing-geth">"Install and Build"</a> pages.</p>
<p class="chakra-text css-145zvrm">Geth also needs to be connected to a <a class="chakra-link css-z5s8m1" href="https://geth.ethereum.org/docs/getting-started/consensus-clients">consensus client</a> in order to function as an Ethereum node. The tutorial on this page assumes Geth and a consensus client have been installed successfully and that a firewall has been configured to block external traffic to the JSON-RPC port <span class="chakra-text css-1j2vlym">8545</span> see <a class="chakra-link css-z5s8m1" href="https://geth.ethereum.org/docs/fundamentals/security">Security</a>.</p>
<p class="chakra-text css-145zvrm">This page provides step-by-step instructions covering the fundamentals of using Geth. This includes generating accounts, joining an Ethereum network, syncing the blockchain and sending ether between accounts. This tutorial uses <a class="chakra-link css-z5s8m1" href="https://geth.ethereum.org/docs/tools/clef/tutorial">Clef</a>. Clef is an account management tool external to Geth itself that allows users to sign transactions. It is developed and maintained by the Geth team.</p>
<h2 class="chakra-heading css-1r2ydld" id="prerequisites">Prerequisites </h2>
<p class="chakra-text css-145zvrm">In order to get the most value from the tutorials on this page, the following skills are necessary:</p>
<div class="chakra-stack css-n21gh5"><ul role="list" class="css-bfhy37"><li class="css-0">Experience using the command line</li><li class="css-0">Basic knowledge about Ethereum and testnets</li><li class="css-0">Basic knowledge about HTTP and JavaScript</li><li class="css-0">Basic knowledge of node architecture and consensus clients</li></ul></div>
<p class="chakra-text css-145zvrm">Users that need to revisit these fundamentals can find helpful resources relating to the command line <a target="_blank" rel="noopener" class="chakra-link css-z5s8m1" href="https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line">here</a>, Ethereum and its testnets <a target="_blank" rel="noopener" class="chakra-link css-z5s8m1" href="https://ethereum.org/en/developers/tutorials/">here</a>, <a target="_blank" rel="noopener" class="chakra-link css-z5s8m1" href="https://developer.mozilla.org/en-US/docs/Web/HTTP">here</a> and Javascript <a target="_blank" rel="noopener" class="chakra-link css-z5s8m1" href="https://www.javascript.com/learn">here</a>. Information on node architecture can be found <a class="chakra-link css-z5s8m1" href="https://geth.ethereum.org/docs/fundamentals/node-architecture">here</a> and our guide for configuring Geth to connect to a
consensus client is <a class="chakra-link css-z5s8m1" href="https://geth.ethereum.org/docs/getting-started/consensus-clients">here</a>.</p>
<p class="chakra-text css-145zvrm"><div class="chakra-stack css-y7enwn"><h4 class="chakra-text css-dbaocw">Note</h4><p class="chakra-text css-172q6ym">If Geth was installed from source on Linux, <span class="chakra-text css-1j2vlym">make</span> saves the binaries for Geth and the associated tools in <span class="chakra-text css-1j2vlym">/build/bin</span>. To run these programs it is convenient to move them to the top level project directory (e.g. running <span class="chakra-text css-1j2vlym">mv ./build/bin/* ./</span>) from <span class="chakra-text css-1j2vlym">/go-ethereum</span>. Then <span class="chakra-text css-1j2vlym">./</span> must be prepended to the commands in the code snippets in order to execute a particular program, e.g. <span class="chakra-text css-1j2vlym">./geth</span> instead of simply <span class="chakra-text css-1j2vlym">geth</span>. If the executables are not moved then either navigate to the <span class="chakra-text css-1j2vlym">bin</span> directory to run them (e.g. <span class="chakra-text css-1j2vlym">cd ./build/bin</span> and <span class="chakra-text css-1j2vlym">./geth</span>) or provide their path (e.g. <span class="chakra-text css-1j2vlym">./build/bin/geth</span>). These instructions can be ignored for other installations.</p></div></p>
<h2 class="chakra-heading css-1r2ydld" id="background">Background </h2>
<p class="chakra-text css-145zvrm">Geth is an Ethereum client written in Go. This means running Geth turns a computer into an Ethereum node. Ethereum is a peer-to-peer network where information is shared directly between nodes rather than being managed by a central server. Every 12 seconds one node is randomly selected to generate a new block containing a list of transactions that nodes receiving the block should execute. This "block proposer" node sends the new block to its peers. On receiving a new block, each node checks that it is valid and adds it to their database. The sequence of discrete blocks is called a "blockchain".</p>
<p class="chakra-text css-145zvrm">The information provided in each block is used by Geth to update its "state" - the ether balance of each account on Ethereum and the data stored by each smart contract. There are two types of account: externally-owned accounts (EOAs) and contract accounts. Contract accounts execute contract code when they receive transactions. EOAs are accounts that users manage locally in order to sign and submit transactions. Each EOA is a public-private key pair, where the public key is used to derive a unique address for the user and the private key is used to protect the account and securely sign messages. Therefore, in order to use Ethereum, it is first necessary to generate an EOA (hereafter, "account"). This tutorial will guide the user through creating an account, funding it with ether and sending some to another address.</p>
<p class="chakra-text css-145zvrm">Read more about Ethereum accounts <a target="_blank" rel="noopener" class="chakra-link css-z5s8m1" href="https://ethereum.org/en/developers/docs/accounts/">here</a>.</p>
<h2 class="chakra-heading css-1r2ydld" id="generating-accounts">Step 1: Generating accounts </h2>
<p class="chakra-text css-145zvrm">There are several methods for generating accounts in Geth. This tutorial demonstrates how to generate accounts using Clef, as this is considered best practice, largely because it decouples the users' key management from Geth, making it more modular and flexible. It can also be run from secure USB sticks or virtual machines, offering security benefits. For convenience, this tutorial will execute Clef on the same computer that will also run Geth, although more secure options are available (see <a class="chakra-link css-z5s8m1" href="https://geth.ethereum.org/docs/tools/clef/setup">here</a>).</p>
<p class="chakra-text css-145zvrm">An account is a pair of keys (public and private). Clef needs to know where to save these keys to so that they can be retrieved later. This information is passed to Clef as an argument. This is achieved using the following command:</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-sh" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>clef newaccount --keystore geth-tutorial/keystore
</span></code></pre></div>
<p class="chakra-text css-145zvrm">The specific function from Clef that generates new accounts is <span class="chakra-text css-1j2vlym">newaccount</span> and it accepts a parameter, <span class="chakra-text css-1j2vlym">--keystore</span>, that tells it where to store the newly generated keys. In this example the keystore location is a new directory that will be created automatically: <span class="chakra-text css-1j2vlym">geth-tutorial/keystore</span>.
Clef will return the following result in the terminal:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">WARNING!
Clef is an account management tool. It may, like any software, contain bugs.
Please take care to
- backup your keystore files,
- verify that the keystore(s) can be opened with your password.
Clef is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public License for more details.
Enter 'ok' to proceed:
&gt;
</code></div></div>
<p class="chakra-text css-145zvrm">This is important information. The <span class="chakra-text css-1j2vlym">geth-tutorial/keystore</span> directory will soon contain a secret key that can be used to access any funds held in the new account. If it is compromised, the funds can be stolen. If it is lost, there is no way to retrieve the funds. This tutorial will only use dummy funds with no real world value, but when these steps are repeated on Ethereum mainnet is critical that the keystore is kept secure and backed up.</p>
<p class="chakra-text css-145zvrm">Typing <span class="chakra-text css-1j2vlym">ok</span> into the terminal and pressing <span class="chakra-text css-1j2vlym">enter</span> causes Clef to prompt for a password. Clef requires a password that is at least 10 characters long, and best practice would be to use a combination of numbers, characters and special characters. Entering a suitable password and pressing <span class="chakra-text css-1j2vlym">enter</span> returns the following result to the terminal:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">-----------------------
DEBUG[02-10|13:46:46.436] FS scan times list="92.081µs" set="12.629µs" diff="2.129µs"
INFO [02-10|13:46:46.592] Your new key was generated address=0xCe8dBA5e4157c2B284d8853afEEea259344C1653
WARN [02-10|13:46:46.595] Please backup your key file! path=keystore:///.../geth-tutorial/keystore/UTC--2022-02-07T17-19-56.517538000Z--ca57f3b40b42fcce3c37b8d18adbca5260ca72ec
WARN [02-10|13:46:46.595] Please remember your password!
Generated account 0xCe8dBA5e4157c2B284d8853afEEea259344C1653
</code></div></div>
<p class="chakra-text css-145zvrm">It is important to save the account address and the password somewhere secure. They will be used again later in this tutorial. Please note that the account address shown in the code snippets above and later in this tutorials are examples - those generated by followers of this tutorial will be different. The account generated above can be used as the main account throughout the remainder of this tutorial. However in order to demonstrate transactions between accounts it is also necessary to have a second account. A second account can be added to the same keystore by precisely repeating the previous steps, providing the same password.</p>
<h2 class="chakra-heading css-1r2ydld" id="start-clef">Step 2: Start Clef </h2>
<p class="chakra-text css-145zvrm">The previous commands used Clef's <span class="chakra-text css-1j2vlym">newaccount</span> function to add new key pairs to the keystore. Clef uses the private key(s) saved in the keystore to sign transactions. In order to do this, Clef needs to be started and left running while Geth is running simultaneously, so that the two programs can communicate between one another.</p>
<p class="chakra-text css-145zvrm">To start Clef, run the Clef executable passing as arguments the keystore file location, config directory location and a chain ID. The config directory was automatically created inside the <span class="chakra-text css-1j2vlym">geth-tutorial</span> directory during the previous step. The <a target="_blank" rel="noopener" class="chakra-link css-z5s8m1" href="https://chainlist.org/">chain ID</a> is an integer that defines which Ethereum network to connect to. Ethereum mainnet has chain ID 1. In this tutorial Chain ID 11155111 is used which is that of the Sepolia testnet. It is very important that this chain ID parameter is set to 11155111 - Clef uses the chain ID to sign messages so it must be correct. The following command starts Clef on Sepolia:</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-sh" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>clef --keystore geth-tutorial/keystore --configdir geth-tutorial/clef --chainid 11155111
</span></code></pre></div>
<p class="chakra-text css-145zvrm">After running the command above, Clef requests the user to type “ok” to proceed. On typing "ok" and pressing enter, Clef returns the following to the terminal:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">INFO [02-10|13:55:30.812] Using CLI as UI-channel
INFO [02-10|13:55:30.946] Loaded 4byte database embeds=146,841 locals=0 local=./4byte-custom.json
WARN [02-10|13:55:30.947] Failed to open master, rules disabled err="failed stat on geth-tutorial/clef/masterseed.json: stat geth-tutorial/clef/masterseed.json: no such file or directory"
INFO [02-10|13:55:30.947] Starting signer chainid=5 keystore=geth-tutorial/keystore light-kdf=false advanced=false
DEBUG[02-10|13:55:30.948] FS scan times list="133.35µs" set="5.692µs" diff="3.262µs"
DEBUG[02-10|13:55:30.970] Ledger support enabled
DEBUG[02-10|13:55:30.973] Trezor support enabled via HID
DEBUG[02-10|13:55:30.976] Trezor support enabled via WebUSB
INFO [02-10|13:55:30.978] Audit logs configured file=audit.log
DEBUG[02-10|13:55:30.981] IPCs registered namespaces=account
INFO [02-10|13:55:30.984] IPC endpoint opened url=geth-tutorial/clef/clef.ipc
------- Signer info -------
* intapi_version : 7.0.1
* extapi_version : 6.1.0
* extapi_http : n/a
* extapi_ipc : geth-tutorial/clef/clef.ipc
</code></div></div>
<p class="chakra-text css-145zvrm">This result indicates that Clef is running. This terminal should be left running for the duration of this tutorial. If the tutorial is stopped and restarted later Clef must also be restarted by running the previous command.</p>
<h2 class="chakra-heading css-1r2ydld" id="start-geth">Step 3: Start Geth </h2>
<p class="chakra-text css-145zvrm">Geth is the Ethereum client that will connect the computer to the Ethereum network. In this tutorial the network is Sepolia, an Ethereum testnet. Testnets are used to test Ethereum client software and smart contracts in an environment where no real-world value is at risk. To start Geth, run the Geth executable file passing argument that define the data directory (where Geth should save blockchain data), signer (points Geth to Clef), the network ID and the sync mode. For this tutorial, snap sync is recommended (see <a target="_blank" rel="noopener" class="chakra-link css-z5s8m1" href="https://blog.ethereum.org/2021/03/03/geth-v1-10-0/">here</a> for reasons why). The final argument passed to Geth is the <span class="chakra-text css-1j2vlym">--http</span> flag. This enables the http-rpc server that allows external programs to interact with Geth by sending it http requests. By default the http server is only exposed locally using port 8545: <span class="chakra-text css-1j2vlym">localhost:8545</span>. It is also necessary to authorize some traffic for the consensus client which is done using <span class="chakra-text css-1j2vlym">--authrpc</span> and also to set up a JWT secret token in a known location, using <span class="chakra-text css-1j2vlym">--jwt-secret</span>.</p>
<p class="chakra-text css-145zvrm">The following command should be run in a new terminal, separate to the one running Clef:</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-sh" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>geth --sepolia --datadir geth-tutorial --authrpc.addr localhost --authrpc.port 8551 --authrpc.vhosts localhost --authrpc.jwtsecret geth-tutorial/jwtsecret --http --http.api eth,net --signer=geth-tutorial/clef/clef.ipc --http
</span></code></pre></div>
<p class="chakra-text css-145zvrm">Running the above command starts Geth. Geth will not sync the blockchain correctly unless there is also a consensus client that can pass Geth a valid head to sync up to. In a separate terminal, start a consensus client. Once the consensus client gets in sync, Geth will start to sync too.</p>
<p class="chakra-text css-145zvrm">The terminal should rapidly fill with status updates that look similar to those below. To check the meaning of the logs, refer to the <a class="chakra-link css-z5s8m1" href="https://geth.ethereum.org/docs/fundamentals/logs">logs page</a>.</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">INFO [02-10|13:59:06.649] Starting Geth on sepolia testnet...
INFO [02-10|13:59:06.652] Maximum peer count ETH=50 LES=0 total=50
INFO [02-10|13:59:06.655] Using external signer url=geth-tutorial/clef/clef.ipc
INFO [02-10|13:59:06.660] Set global gas cap cap=50,000,000
INFO [02-10|13:59:06.661] Allocated cache and file handles database=/.../geth-tutorial/geth/chaindata cache=64.00MiB handles=5120
INFO [02-10|13:59:06.855] Persisted trie from memory database nodes=361 size=51.17KiB time="643.54µs" gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [02-10|13:59:06.855] Initialised chain configuration config="{ChainID: 11155111 Homestead: 0 DAO: nil DAOSupport: true EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 1561651, Muir Glacier: nil, Berlin: 4460644, London: 5062605, Arrow Glacier: nil, MergeFork: nil, Engine: clique}"
INFO [02-10|13:59:06.862] Added trusted checkpoint block=5,799,935 hash=2de018..c32427
INFO [02-10|13:59:06.863] Loaded most recent local header number=6,340,934 hash=483cf5..858315 td=9,321,576 age=2d9h29m
INFO [02-10|13:59:06.867] Configured checkpoint oracle address=0x18CA0E045F0D772a851BC7e48357Bcaab0a0795D signers=5 threshold=2
INFO [02-10|13:59:06.867] Gasprice oracle is ignoring threshold set threshold=2
WARN [02-10|13:59:06.869] Unclean shutdown detected booted=2022-02-08T04:25:08+0100 age=2d9h33m
INFO [02-10|13:59:06.870] Starting peer-to-peer node instance=Geth/v1.10.15-stable/darwin-amd64/go1.17.5
INFO [02-10|13:59:06.995] New local node record seq=1,644,272,735,880 id=d4ffcd252d322a89 ip=127.0.0.1 udp=30303 tcp=30303
INFO [02-10|13:59:06.996] Started P2P networking self=enode://4b80ebd341b5308f7a6b61d91aa0ea31bd5fc9e0a6a5483e59fd4ea84e0646b13ecd289e31e00821ccedece0bf4b9189c474371af7393093138f546ac23ef93e@127.0.0.1:30303
INFO [02-10|13:59:06.997] IPC endpoint opened url=/.../geth-tutorial/geth.ipc
INFO [02-10|13:59:06.998] HTTP server started endpoint=127.0.0.1:8545 prefix= cors= vhosts=localhost
</code></div></div>
<p class="chakra-text css-145zvrm">By default, Geth uses snap-sync which download blocks sequentially from a relatively recent block, not the genesis block. It saves the data in files in <span class="chakra-text css-1j2vlym">/go-ethereum/geth-tutorial/geth/chaindata/</span>. Once the sequence of headers has been verified, Geth downloads the block bodies and state data before starting the "state healing" phase to update the state for newly arriving data. This is confirmed by the logs printed to the terminal. There should be a rapidly-growing sequence of logs in the terminal with the following syntax:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">INFO [04-29][15:54:09.238] Looking for peers peercount=2 tried=0 static=0
INFO [04-29][15:54:19.393] Imported new block headers count=2 elapsed=1.127ms number=996288 hash=09f1e3..718c47 age=13h9m5s
INFO [04-29][15:54:19:656] Imported new block receipts count=698 elapsed=4.464ms number=994566 hash=56dc44..007c93 age=13h9m9s
</code></div></div>
<p class="chakra-text css-145zvrm">This message will be displayed periodically until state healing has finished:</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-sh" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>INFO [10-20|20:20:09.510] State heal in progress accounts=313,309@17.95MiB slots=363,525@28.77MiB codes=7222@50.73MiB nodes=49,616,912@12.67GiB pending=29805
</span></code></pre></div>
<p class="chakra-text css-145zvrm">When state healing is finished, the node is in sync and ready to use.</p>
<p class="chakra-text css-145zvrm">Sending an empty Curl request to the http server provides a quick way to confirm that this too has been started without any issues. In a third terminal, the following command can be run:</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-sh" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>curl http://localhost:8545
</span></code></pre></div>
<p class="chakra-text css-145zvrm">If there is no error message reported to the terminal, everything is OK. Geth must be running and synced in order for a user to interact with the Ethereum network. If the terminal running Geth is closed down then Geth must be restarted again in a new terminal. Geth can be started and stopped easily, but it must be running for any interaction with Ethereum to take place. To shut down Geth, simply press <span class="chakra-text css-1j2vlym">CTRL+C</span> in the Geth terminal. To start it again, run the previous command <span class="chakra-text css-1j2vlym">geth --datadir &lt;other commands&gt;</span>.</p>
<h2 class="chakra-heading css-1r2ydld" id="get-test-eth">Step 4: Get Testnet Ether </h2>
<p class="chakra-text css-145zvrm">In order to make some transactions, the user must fund their account with ether. On Ethereum mainnet, ether can only be obtained in three ways: 1) by receiving it as a reward for mining/validating; 2) receiving it in a transfer from another Ethereum user or contract; 3) receiving it from an exchange, having paid for it with fiat money. On Ethereum testnets, the ether has no real world value so it 4) can be made freely available via faucets. Faucets allow users to request a transfer of testnet ether to their account.</p>
<p class="chakra-text css-145zvrm">The address generated by Clef in Step 1 can be pasted into the Paradigm Multifaucet faucet <a target="_blank" rel="noopener" class="chakra-link css-z5s8m1" href="https://faucet.sepolia.dev/">here</a>. The faucet adds Sepolia ETH (not real ETH) to the given address. In the next steps Geth will be used to check that the ether has been sent to the given address and send some of it to the second address created earlier.</p>
<h2 class="chakra-heading css-1r2ydld" id="interact-with-geth">Step 5: Interact with Geth </h2>
<p class="chakra-text css-145zvrm">For interacting with the blockchain, Geth provides JSON-RPC APIs. <a target="_blank" rel="noopener" class="chakra-link css-z5s8m1" href="https://ethereum.org/en/developers/docs/apis/json-rpc/">JSON-RPC</a> is a way to execute specific tasks by sending instructions to Geth in the form of <a target="_blank" rel="noopener" class="chakra-link css-z5s8m1" href="https://www.json.org/json-en.html">JSON</a> objects. RPC stands for "Remote Procedure Call" and it refers to the ability to send these JSON-encoded instructions from locations outside of those managed by Geth. It is possible to interact with Geth by sending these JSON encoded instructions directly over Geth's exposed http port using tools like Curl. However, this is somewhat user-unfriendly and error-prone, especially for more complex instructions. For this reason, there are a set of libraries built on top of JSON-RPC that provide a more user-friendly interface for interacting with Geth. One of the most widely used is Web3.js.</p>
<p class="chakra-text css-145zvrm">Geth provides a Javascript console that exposes the Web3.js API. This means that with Geth running in one terminal, a Javascript environment can be opened in another allowing the user to interact with Geth using Web3.js. There are three transport protocols that can be used to connect the Javascript environment to Geth:</p>
<div class="chakra-stack css-n21gh5"><ul role="list" class="css-bfhy37"><li class="css-0">
<p class="chakra-text css-145zvrm">IPC (Inter-Process Communication): Provides unrestricted access to all APIs, but only works when the console is run on the same host as the geth node.</p>
</li><li class="css-0">
<p class="chakra-text css-145zvrm">HTTP: By default provides access to the <span class="chakra-text css-1j2vlym">eth</span>, <span class="chakra-text css-1j2vlym">web3</span> and <span class="chakra-text css-1j2vlym">net</span> method namespaces.</p>
</li><li class="css-0">
<p class="chakra-text css-145zvrm">Websocket: By default provides access to the <span class="chakra-text css-1j2vlym">eth</span>, <span class="chakra-text css-1j2vlym">web3</span> and <span class="chakra-text css-1j2vlym">net</span> method namespaces.</p>
</li></ul></div>
<p class="chakra-text css-145zvrm">This tutorial will use the HTTP option. Note that the terminals running Geth and Clef should both still be active. In a new (third) terminal, the following command can be run to start the console and connect it to Geth using the exposed http port:</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-sh" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>geth attach http://127.0.0.1:8545
</span></code></pre></div>
<p class="chakra-text css-145zvrm">This command causes the terminal to hang because it is waiting for approval from Clef. Approving the request in the terminal running Clef will lead to the following welcome message being displayed in the Javascript console:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">Welcome to the Geth JavaScript console!
instance: Geth/v1.10.15-stable/darwin-amd64/go1.17.5
at block: 6354736 (Thu Feb 10 2022 14:01:46 GMT+0100 (WAT))
modules: eth:1.0 net:1.0 rpc:1.0 web3:1.0
To exit, press ctrl-d or type exit
</code></div></div>
<p class="chakra-text css-145zvrm">The console is now active and connected to Geth. It can now be used to interact with the Ethereum (Sepolia) network.</p>
<h3 class="chakra-heading css-hgv8zu" id="list-accounts">List of accounts </h3>
<p class="chakra-text css-145zvrm">In this tutorial, the accounts are managed using Clef. This means that requesting information about the accounts requires explicit approval in Clef, which should still be running in its own terminal. Earlier in this tutorial, two accounts were created using Clef. The following command will display the addresses of those two accounts and any others that might have been added to the keystore before or since.</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-javascript" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>eth</span><span class="token" style="color: rgb(199, 146, 234);">.</span><span>accounts</span><span class="token" style="color: rgb(199, 146, 234);">;</span><span>
</span></code></pre></div>
<p class="chakra-text css-145zvrm">The console will hang, because Clef is waiting for approval. The following message will be displayed in the Clef terminal:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">-------- List Account request--------------
A request has been made to list all accounts.
You can select which accounts the caller can see
[x] 0xca57F3b40B42FCce3c37B8D18aDBca5260ca72EC
URL: keystore:///.../geth-tutorial/keystore/UTC--2022-02-07T17-19-56.517538000Z--ca57f3b40b42fcce3c37b8d18adbca5260ca72ec
[x] 0xCe8dBA5e4157c2B284d8853afEEea259344C1653
URL: keystore:///.../geth-tutorial/keystore/UTC--2022-02-10T12-46-45.265592000Z--ce8dba5e4157c2b284d8853afeeea259344c1653
-------------------------------------------
Request context:
NA - ipc - NA
Additional HTTP header data, provided by the external caller:
User-Agent: ""
Origin: ""
Approve? [y/N]:
</code></div></div>
<p class="chakra-text css-145zvrm">Entering <span class="chakra-text css-1j2vlym">y</span> approves the request from the console. In the terminal running the Javascript console, the account addresses are now displayed:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">["0xca57f3b40b42fcce3c37b8d18adbca5260ca72ec", "0xce8dba5e4157c2b284d8853afeeea259344c1653"]
</code></div></div>
<p class="chakra-text css-145zvrm">It is also possible for this request to time out if the Clef approval took too long - in this case simply repeat the request and approval. Accounts can also be listed directly from Clef by opening a new terminal and running <span class="chakra-text css-1j2vlym">clef list-accounts --keystore &lt;path-to-keystore&gt;</span>.</p>
<h3 class="chakra-heading css-hgv8zu" id="checking-balances">Checking account balance. </h3>
<p class="chakra-text css-145zvrm">Having confirmed that the two addresses created earlier are indeed in the keystore and accessible through the Javascript console, it is possible to retrieve information about how much ether they own. The Sepolia faucet should have sent 0.05 ETH to the address provided, meaning that the balance of one of the accounts should be at least 0.05 ether and the other should be 0. There are other faucets available that may dispense more ETH per request, and multiple requests can be made to accumulate more ETH. The following command displays the account balance in the console:</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-javascript" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>web3</span><span class="token" style="color: rgb(199, 146, 234);">.</span><span class="token" style="color: rgb(130, 170, 255);">fromWei</span><span class="token" style="color: rgb(199, 146, 234);">(</span><span>eth</span><span class="token" style="color: rgb(199, 146, 234);">.</span><span class="token" style="color: rgb(130, 170, 255);">getBalance</span><span class="token" style="color: rgb(199, 146, 234);">(</span><span class="token" style="color: rgb(173, 219, 103);">'0xca57F3b40B42FCce3c37B8D18aDBca5260ca72EC'</span><span class="token" style="color: rgb(199, 146, 234);">)</span><span class="token" style="color: rgb(199, 146, 234);">,</span><span> </span><span class="token" style="color: rgb(173, 219, 103);">'ether'</span><span class="token" style="color: rgb(199, 146, 234);">)</span><span class="token" style="color: rgb(199, 146, 234);">;</span><span>
</span></code></pre></div>
<p class="chakra-text css-145zvrm">There are actually two instructions sent in the above command. The inner one is the <span class="chakra-text css-1j2vlym">getBalance</span> function from the <span class="chakra-text css-1j2vlym">eth</span> namespace. This takes the account address as its only argument. By default, this returns the account balance in units of Wei. There are 10<sup>18</sup> Wei to one ether. To present the result in units of ether, <span class="chakra-text css-1j2vlym">getBalance</span> is wrapped in the <span class="chakra-text css-1j2vlym">fromWei</span> function from the <span class="chakra-text css-1j2vlym">web3</span> namespace. Running this command should provide the following result, assuming the account balance is 1 ETH:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">1
</code></div></div>
<p class="chakra-text css-145zvrm">Repeating the command for the other (empty) account should yield:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">0
</code></div></div>
<h3 class="chakra-heading css-hgv8zu" id="sending-ether">Send ether to another account </h3>
<p class="chakra-text css-145zvrm">The command <span class="chakra-text css-1j2vlym">eth.sendTransaction</span> can be used to send some ether from one address to another. This command takes three arguments: <span class="chakra-text css-1j2vlym">from</span>, <span class="chakra-text css-1j2vlym">to</span> and <span class="chakra-text css-1j2vlym">value</span>. These define the sender and recipient addresses (as strings) and the amount of Wei to transfer. It is far less error prone to enter the transaction value in units of ether rather than Wei, so the value field can take the return value from the <span class="chakra-text css-1j2vlym">toWei</span> function. The following command, run in the Javascript console, sends 0.1 ether from one of the accounts in the Clef keystore to the other. Note that the addresses here are examples - the user must replace the address in the <span class="chakra-text css-1j2vlym">from</span> field with the address currently owning 1 ether, and the address in the <span class="chakra-text css-1j2vlym">to</span> field with the address currently holding 0 ether.</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-javascript" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>eth</span><span class="token" style="color: rgb(199, 146, 234);">.</span><span class="token" style="color: rgb(130, 170, 255);">sendTransaction</span><span class="token" style="color: rgb(199, 146, 234);">(</span><span class="token" style="color: rgb(199, 146, 234);">{</span><span>
</span><span> </span><span class="token literal-property" style="color: rgb(128, 203, 196);">from</span><span class="token" style="color: rgb(127, 219, 202);">:</span><span> </span><span class="token" style="color: rgb(173, 219, 103);">'0xca57f3b40b42fcce3c37b8d18adbca5260ca72ec'</span><span class="token" style="color: rgb(199, 146, 234);">,</span><span>
</span><span> </span><span class="token literal-property" style="color: rgb(128, 203, 196);">to</span><span class="token" style="color: rgb(127, 219, 202);">:</span><span> </span><span class="token" style="color: rgb(173, 219, 103);">'0xce8dba5e4157c2b284d8853afeeea259344c1653'</span><span class="token" style="color: rgb(199, 146, 234);">,</span><span>
</span><span> </span><span class="token literal-property" style="color: rgb(128, 203, 196);">value</span><span class="token" style="color: rgb(127, 219, 202);">:</span><span> web3</span><span class="token" style="color: rgb(199, 146, 234);">.</span><span class="token" style="color: rgb(130, 170, 255);">toWei</span><span class="token" style="color: rgb(199, 146, 234);">(</span><span class="token" style="color: rgb(247, 140, 108);">0.1</span><span class="token" style="color: rgb(199, 146, 234);">,</span><span> </span><span class="token" style="color: rgb(173, 219, 103);">'ether'</span><span class="token" style="color: rgb(199, 146, 234);">)</span><span>
</span><span></span><span class="token" style="color: rgb(199, 146, 234);">}</span><span class="token" style="color: rgb(199, 146, 234);">)</span><span class="token" style="color: rgb(199, 146, 234);">;</span><span>
</span></code></pre></div>
<p class="chakra-text css-145zvrm">Note that submitting this transaction requires approval in Clef. In the Clef terminal, Clef will prompt for approval and request the account password. If the password is correctly entered, Geth proceeds with the transaction. The transaction request summary is presented by Clef in the Clef terminal. This is an opportunity for the sender to review the details and ensure they are correct.</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">--------- Transaction request-------------
to: 0xCe8dBA5e4157c2B284d8853afEEea259344C1653
from: 0xca57F3b40B42FCce3c37B8D18aDBca5260ca72EC [chksum ok]
value: 10000000000000000 wei
gas: 0x5208 (21000)
maxFeePerGas: 2425000057 wei
maxPriorityFeePerGas: 2424999967 wei
nonce: 0x3 (3)
chainid: 0x5
Accesslist
Request context:
NA - ipc - NA
Additional HTTP header data, provided by the external caller:
User-Agent: ""
Origin: ""
-------------------------------------------
Approve? [y/N]:
Please enter the password for account 0xca57F3b40B42FCce3c37B8D18aDBca5260ca72EC
</code></div></div>
<p class="chakra-text css-145zvrm">After approving the transaction, the following confirmation screen is displayed in the Clef terminal:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">-----------------------
Transaction signed:
{
"type": "0x2",
"nonce": "0x3",
"gasPrice": null,
"maxPriorityFeePerGas": "0x908a901f",
"maxFeePerGas": "0x908a9079",
"gas": "0x5208",
"value": "0x2386f26fc10000",
"input": "0x",
"v": "0x0",
"r": "0x66e5d23ad156e04363e68b986d3a09e879f7fe6c84993cef800bc3b7ba8af072",
"s": "0x647ff82be943ea4738600c831c4a19879f212eb77e32896c05055174045da1bc",
"to": "0xce8dba5e4157c2b284d8853afeeea259344c1653",
"chainId": "0xaa36a7",
"accessList": [],
"hash": "0x99d489d0bd984915fd370b307c2d39320860950666aac3f261921113ae4f95bb"
}
</code></div></div>
<p class="chakra-text css-145zvrm">In the Javascript console, the transaction hash is displayed. This will be used in the next section to retrieve the transaction details.</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">"0x99d489d0bd984915fd370b307c2d39320860950666aac3f261921113ae4f95bb"
</code></div></div>
<p class="chakra-text css-145zvrm">It is also advised to check the account balances using Geth by repeating the instructions from earlier. At this point in the tutorial, the balances of the two accounts in the Clef keystore should have changed by ~0.1 ETH (the sender's balance will have decremented by a little over 0.1 ETH because some small was amount paid in transaction gas).</p>
<h3 class="chakra-heading css-hgv8zu" id="checking-transaction-hash">Checking the transaction hash </h3>
<p class="chakra-text css-145zvrm">The transaction hash is a unique identifier for this specific transaction that can be used later to retrieve the transaction details. For example, the transaction details can be viewed by pasting this hash into the <a target="_blank" rel="noopener" class="chakra-link css-z5s8m1" href="https://sepolia.etherscan.io/">Sepolia block explorer</a>. The same information can also be retrieved directly from the Geth node. The hash returned in the previous step can be provided as an argument to <span class="chakra-text css-1j2vlym">eth.getTransaction</span> to return the transaction information:</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-javascript" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>eth</span><span class="token" style="color: rgb(199, 146, 234);">.</span><span class="token" style="color: rgb(130, 170, 255);">getTransaction</span><span class="token" style="color: rgb(199, 146, 234);">(</span><span class="token" style="color: rgb(173, 219, 103);">'0x99d489d0bd984915fd370b307c2d39320860950666aac3f261921113ae4f95bb'</span><span class="token" style="color: rgb(199, 146, 234);">)</span><span class="token" style="color: rgb(199, 146, 234);">;</span><span>
</span></code></pre></div>
<p class="chakra-text css-145zvrm">This returns the following response (although the actual values for each field will vary because they are specific to each transaction):</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">{
accessList: [],
blockHash: "0x1c5d3f8dd997b302935391b57dc3e4fffd1fa2088ef2836d51f844f993eb39c4",
blockNumber: 6355150,
chainId: "0xaa36a7",
from: "0xca57f3b40b42fcce3c37b8d18adbca5260ca72ec",
gas: 21000,
gasPrice: 2425000023,
hash: "0x99d489d0bd984915fd370b307c2d39320860950666aac3f261921113ae4f95bb",
input: "0x",
maxFeePerGas: 2425000057,
maxPriorityFeePerGas: 2424999967,
nonce: 3,
r: "0x66e5d23ad156e04363e68b986d3a09e879f7fe6c84993cef800bc3b7ba8af072",
s: "0x647ff82be943ea4738600c831c4a19879f212eb77e32896c05055174045da1bc",
to: "0xce8dba5e4157c2b284d8853afeeea259344c1653",
transactionIndex: 630,
type: "0x2",
v: "0x0",
value: 10000000000000000
}
</code></div></div>
<h2 class="chakra-heading css-1r2ydld" id="using-curl">Using Curl </h2>
<p class="chakra-text css-145zvrm">Up to this point this tutorial has interacted with Geth using the convenience library Web3.js. This library enables the user to send instructions to Geth using a more user-friendly interface compared to sending raw JSON objects. However, it is also possible for the user to send these JSON objects directly to Geth's exposed HTTP port. Curl is a command line tool that sends HTTP requests. This part of the tutorial demonstrates how to check account balances and send a transaction using Curl.</p>
<h3 class="chakra-heading css-hgv8zu" id="checking-balance">Checking account balance </h3>
<p class="chakra-text css-145zvrm">The command below returns the balance of the given account. This is an HTTP POST request to the local port 8545. The <span class="chakra-text css-1j2vlym">-H</span> flag is for header information. It is used here to define the format of the incoming payload, which is JSON. The <span class="chakra-text css-1j2vlym">--data</span> flag defines the content of the payload, which is a JSON object. That JSON object contains four fields: <span class="chakra-text css-1j2vlym">jsonrpc</span> defines the spec version for the JSON-RPC API, <span class="chakra-text css-1j2vlym">method</span> is the specific function being invoked, <span class="chakra-text css-1j2vlym">params</span> are the function arguments, and <span class="chakra-text css-1j2vlym">id</span> is used for ordering transactions. The two arguments passed to <span class="chakra-text css-1j2vlym">eth_getBalance</span> are the account address whose balance to check and the block to query (here <span class="chakra-text css-1j2vlym">latest</span> is used to check the balance in the most recently mined block).</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-sh" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>curl -X POST http://127.0.0.1:8545 \
</span> -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0", "method":"eth_getBalance", "params":["0xca57f3b40b42fcce3c37b8d18adbca5260ca72ec","latest"], "id":1}'
</code></pre></div>
<p class="chakra-text css-145zvrm">A successful call will return a response like the one below:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">{"jsonrpc":"2.0","id":1,"result":"0xc7d54951f87f7c0"}
</code></div></div>
<p class="chakra-text css-145zvrm">The balance is in the <span class="chakra-text css-1j2vlym">result</span> field in the returned JSON object. However, it is denominated in Wei and presented as a hexadecimal string. There are many options for converting this value to a decimal in units of ether, for example by opening a Python console and running:</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-python" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span class="token" style="color: rgb(247, 140, 108);">0xc7d54951f87f7c0</span><span> </span><span class="token" style="color: rgb(127, 219, 202);">/</span><span> </span><span class="token" style="color: rgb(247, 140, 108);">1e18</span><span>
</span></code></pre></div>
<p class="chakra-text css-145zvrm">This returns the balance in ether:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">0.8999684999998321
</code></div></div>
<h3 class="chakra-heading css-hgv8zu" id="checking-account-list">Checking the account list </h3>
<p class="chakra-text css-145zvrm">The curl command below returns the list of all accounts.</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-sh" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>curl -X POST http://127.0.0.1:8545 \
</span> -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0", "method":"eth_accounts","params":[], "id":1}'
</code></pre></div>
<p class="chakra-text css-145zvrm">This requires approval in Clef. Once approved, the following information is returned to the terminal:</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">{"jsonrpc":"2.0","id":1,"result":["0xca57f3b40b42fcce3c37b8d18adbca5260ca72ec"]}
</code></div></div>
<h3 class="chakra-heading css-hgv8zu" id="sending-transactions">Sending Transactions </h3>
<p class="chakra-text css-145zvrm">Sending a transaction between accounts can also be achieved using Curl. Notice that the value of the transaction is a hexadecimal string in units of Wei. To transfer 0.1 ether, it is first necessary to convert this to Wei by multiplying by 10<sup>18</sup> then converting to hex. 0.1 ether is <span class="chakra-text css-1j2vlym">"0x16345785d8a0000"</span> in hex. As before, update the <span class="chakra-text css-1j2vlym">to</span> and <span class="chakra-text css-1j2vlym">from</span> fields with the addresses in the Clef keystore.</p>
<div class="chakra-stack css-1dec9ee"><pre style="color: white; font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none; padding: 1rem; margin: 0.5em 0px; overflow: auto; background: rgb(1, 22, 39); border-radius: 0.5rem;"><code class="language-sh" style="color: rgb(214, 222, 235); font-family: Consolas, Monaco, &quot;Andale Mono&quot;, &quot;Ubuntu Mono&quot;, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; overflow-wrap: normal; line-height: 1.5; font-size: 1em; tab-size: 4; hyphens: none;"><span>curl -X POST http://127.0.0.1:8545 \
</span> -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0", "method":"eth_sendTransaction", "params":[{"from": "0xca57f3b40b42fcce3c37b8d18adbca5260ca72ec","to": "0xce8dba5e4157c2b284d8853afeeea259344c1653","value": "0x16345785d8a0000"}], "id":1}'
</code></pre></div>
<p class="chakra-text css-145zvrm">This requires approval in Clef. Once the password for the sender account has been provided, Clef will return a summary of the transaction details and the terminal that made the Curl request will display a response containing the transaction hash.</p>
<div class="chakra-stack css-1dec9ee"><div class="chakra-stack css-n21gh5"><code class="chakra-code css-lccu91">{"jsonrpc":"2.0","id":5,"result":"0xac8b347d70a82805edb85fc136fc2c4e77d31677c2f9e4e7950e0342f0dc7e7c"}
</code></div></div>
<h2 class="chakra-heading css-1r2ydld" id="summary">Summary </h2>
<p class="chakra-text css-145zvrm">This tutorial has demonstrated how to generate accounts using Clef, fund them with testnet ether and use those accounts to interact with Ethereum (Sepolia) through a Geth node. Checking account balances, sending transactions and retrieving transaction details were explained using the web3.js library via the Geth console and using the JSON-RPC directly using Curl. For more detailed information about Clef, please see <a class="chakra-link css-z5s8m1" href="https://geth.ethereum.org/docs/tools/clef/tutorial">the Clef docs</a>.</p></div><div class="chakra-stack css-s3mn9m"><aside class="css-14zsnda"><p class="chakra-text css-ttz5vl">on this page</p><hr aria-orientation="horizontal" class="chakra-divider css-1dyio1o"><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Prerequisites </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Background </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Step 1: Generating accounts </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Step 2: Start Clef </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Step 3: Start Geth </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Step 4: Get Testnet Ether </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Step 5: Interact with Geth </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1v62gy0"> List of accounts </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Checking account balance. </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Send ether to another account </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Checking the transaction hash </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Using Curl </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Checking account balance </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Checking the account list </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Sending Transactions </p></a><a class="chakra-link css-17yxwq0"><p class="chakra-text css-1ayucz7"> Summary </p></a></aside></div></div></div></div></main><div class="chakra-stack css-1t07u9w"><div class="css-1orfpdo"><div class="css-8jxpye"><div class="css-ak2pxb"><div class="css-1cxkbxx"><a class="chakra-link css-xl4mt7" href="https://geth.ethereum.org/downloads"><p class="chakra-text css-4ii8xl">DOWNLOADS</p></a></div><div class="css-1jqxip7"><a class="chakra-link css-xl4mt7" href="https://geth.ethereum.org/docs"><p class="chakra-text css-4ii8xl">DOCUMENTATION</p></a></div></div><div class="css-kh7np0"><div data-group="true" class="css-16mojw"><a target="_blank" rel="noopener" class="chakra-link css-1eicro" href="https://twitter.com/go_ethereum"><svg viewBox="0 0 28 22" focusable="false" class="chakra-icon css-1wn9b4n" aria-label="Twitter"><path fill="currentColor" d="M24.725 5.483c.017.24.017.481.017.722C24.742 13.544 19.174 22 8.997 22A15.6 15.6 0 0 1 .5 19.508c.445.051.874.069 1.336.069a11.06 11.06 0 0 0 6.87-2.372 5.546 5.546 0 0 1-5.174-3.85 6.96 6.96 0 0 0 1.045.086c.497 0 .994-.07 1.457-.19a5.548 5.548 0 0 1-4.438-5.448v-.069a5.56 5.56 0 0 0 2.502.705A5.552 5.552 0 0 1 1.63 3.816c0-1.032.274-1.977.753-2.802a15.712 15.712 0 0 0 11.41 5.81 6.282 6.282 0 0 1-.137-1.272c0-3.06 2.467-5.552 5.534-5.552 1.593 0 3.032.67 4.043 1.753 1.25-.24 2.45-.705 3.512-1.34a5.533 5.533 0 0 1-2.432 3.059c1.113-.12 2.192-.43 3.186-.86a11.917 11.917 0 0 1-2.775 2.87z"></path></svg></a></div><div data-group="true" class="css-ci7dzc"><a target="_blank" rel="noopener" class="chakra-link css-1eicro" href="https://discord.com/invite/nthXNEv"><svg viewBox="0 0 32 24" focusable="false" class="chakra-icon css-1wn9b4n" aria-label="Discord"><path fill="currentColor" d="M26.985 2.027a.08.08 0 0 0-.041-.038A26.099 26.099 0 0 0 20.515.002a.098.098 0 0 0-.104.048c-.294.533-.56 1.08-.8 1.64a24.112 24.112 0 0 0-7.22 0c-.24-.561-.511-1.109-.812-1.64a.101.101 0 0 0-.104-.048c-2.22.381-4.38 1.05-6.427 1.988a.092.092 0 0 0-.043.036C.912 8.124-.209 14.073.341 19.948a.108.108 0 0 0 .041.073 26.216 26.216 0 0 0 7.885 3.975.102.102 0 0 0 .111-.037 18.644 18.644 0 0 0 1.613-2.616.1.1 0 0 0-.054-.139 17.266 17.266 0 0 1-2.464-1.17.101.101 0 0 1-.04-.13.101.101 0 0 1 .03-.038c.166-.124.332-.252.49-.382a.099.099 0 0 1 .102-.014c5.168 2.353 10.763 2.353 15.87 0a.098.098 0 0 1 .103.013c.158.13.324.26.49.383a.102.102 0 0 1 .04.086.1.1 0 0 1-.048.082c-.787.458-1.612.85-2.465 1.17a.1.1 0 0 0-.054.139 20.94 20.94 0 0 0 1.612 2.615.1.1 0 0 0 .111.038 26.126 26.126 0 0 0 7.898-3.975.1.1 0 0 0 .041-.072c.66-6.792-1.102-12.692-4.668-17.922zM10.763 16.37c-1.556 0-2.838-1.424-2.838-3.173 0-1.75 1.257-3.174 2.838-3.174 1.593 0 2.863 1.437 2.838 3.174 0 1.75-1.257 3.173-2.838 3.173zm10.493 0c-1.556 0-2.838-1.424-2.838-3.173 0-1.75 1.258-3.174 2.838-3.174 1.594 0 2.863 1.437 2.838 3.174 0 1.75-1.244 3.173-2.838 3.173z"></path></svg></a></div><div data-group="true" class="css-1ukw5o8"><a target="_blank" rel="noopener" class="chakra-link css-1eicro" href="https://github.com/ethereum/go-ethereum"><svg viewBox="0 0 26 24" focusable="false" class="chakra-icon css-100o4eg" aria-label="GitHub"><path fill="currentColor" d="M8.829 19.325c0 .099-.117.178-.264.178-.168.015-.285-.064-.285-.178 0-.1.117-.179.264-.179.153-.015.285.065.285.179zm-1.58-.224c-.036.1.066.214.218.244.132.05.285 0 .315-.1.03-.099-.066-.213-.218-.258-.132-.034-.28.015-.315.114zm2.245-.084c-.147.035-.249.13-.233.243.015.1.147.164.3.13.147-.035.248-.13.233-.229-.015-.094-.152-.159-.3-.144zM12.837 0C5.791 0 .4 5.226.4 12.109c0 5.504 3.546 10.213 8.612 11.87.65.115.879-.277.879-.6 0-.307-.016-2.005-.016-3.047 0 0-3.556.745-4.303-1.479 0 0-.58-1.444-1.412-1.816 0 0-1.164-.78.081-.764 0 0 1.265.099 1.961 1.28 1.113 1.916 2.977 1.365 3.704 1.037.117-.794.447-1.345.813-1.672-2.84-.308-5.706-.71-5.706-5.484 0-1.365.386-2.05 1.2-2.923-.133-.323-.565-1.653.131-3.37 1.062-.322 3.506 1.34 3.506 1.34a12.203 12.203 0 0 1 3.19-.422c1.083 0 2.175.144 3.191.422 0 0 2.444-1.667 3.506-1.34.696 1.722.264 3.047.132 3.37.813.878 1.31 1.563 1.31 2.923 0 4.79-2.992 5.171-5.832 5.484.468.392.864 1.136.864 2.303 0 1.672-.015 3.741-.015 4.148 0 .323.233.715.879.6 5.08-1.647 8.525-6.356 8.525-11.86C25.6 5.226 19.884 0 12.837 0zM5.338 17.116c-.066.05-.05.164.036.258.081.08.198.115.264.05.066-.05.051-.164-.035-.258-.082-.08-.199-.114-.265-.05zm-.548-.402c-.036.065.015.144.117.194.08.05.182.035.218-.035.036-.064-.015-.144-.117-.193-.101-.03-.183-.015-.218.034zm1.646 1.767c-.081.065-.051.213.066.308.117.114.264.129.33.05.066-.065.036-.214-.066-.308-.112-.114-.264-.13-.33-.05zm-.58-.73c-.08.05-.08.18 0 .293.082.114.22.164.285.114.081-.064.081-.193 0-.307-.071-.114-.203-.164-.284-.1z"></path></svg></a></div></div></div><div class="css-s1d1j7"><p class="chakra-text css-1sfg7rt">© 20132025. The go-ethereum Authors<!-- --> |<!-- --> <a target="_blank" rel="noopener" class="chakra-link css-z5s8m1" href="https://matomo.ethereum.org/index.php?module=CoreAdminHome&amp;action=optOut">Do-not-Track</a></p></div></div></div></div></div><span id="__chakra_env" hidden=""></span></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"frontmatter":{"title":"Contributing","description":"Guidelines for contributing to Geth"},"content":"\nWe welcome contributions from anyone on the internet, and are grateful even for small fixes!\n\n## Contributing to the Geth source code {#contributing-to-source-code}\n\nIf you'd like to contribute to the Geth source code, please fork the [GitHub repository](https://github.com/ethereum/go-ethereum), fix, commit and send a pull request for the maintainers to review and merge into the main code base. If you wish to submit more complex changes though, please check up with the core devs first on our Discord Server to ensure those changes are in line with the general philosophy of the project and/or get some early feedback which can make both your efforts much lighter as well as our review and merge procedures quick and simple.\n\nPlease make sure your contributions adhere to our coding guidelines:\n\n- Code must adhere to the official Go formatting guidelines (i.e. uses gofmt).\n- Code must be documented adhering to the official Go commentary guidelines.\n- Pull requests need to be based on and opened against the master branch.\n- Commit messages should be prefixed with the package(s) they modify.\n E.g. \"eth, rpc: make trace configs optional\"\n\nPull requests generally need to be based on and opened against the `master` branch, unless by explicit agreement because the work is contributing to some more complex feature branch.\n\nAll pull requests will be reviewed according to the [Code Review guidelines](/docs/developers/geth-developer/code-review-guidelines).\n\nWe encourage an early pull request approach, meaning pull requests are created as early as possible even without the completed fix/feature. This will let core devs and other volunteers know you picked up an issue. These early PRs should indicate 'in progress' status.\n\n## Contributing to the Geth website {#contributing-to-website}\n\nThe Geth website is hosted on a separate branch of `go-ethereum` from the source code. To contribute, please check out the website branch and raise pull requests for the maintainers to review and merge. Please note that new pages added to the site must also be added to `/src/data/documentation-links.yaml` in order for it to be included in the navigation sidebar. Additional contribution guidelines are available in the website [README](https://github.com/ethereum/go-ethereum/tree/website#readme).\n\n## License {#license}\n\nThe go-ethereum library (i.e. all code outside of the cmd directory) is licensed under the GNU Lesser General Public License v3.0, also included in our repository in the COPYING.LESSER file.\n\nThe go-ethereum binaries (i.e. all code inside of the cmd directory) is licensed under the GNU General Public License v3.0, also included in our repository in the COPYING file.\n","navLinks":[{"id":"Getting started","items":[{"id":"Introduction","to":"/docs/getting-started"},{"id":"Hardware requirements","to":"/docs/getting-started/hardware-requirements"},{"id":"Installing Geth","to":"/docs/getting-started/installing-geth"},{"id":"Consensus clients","to":"/docs/getting-started/consensus-clients"}]},{"id":"Fundamentals","items":[{"id":"Introduction","to":"/docs/fundamentals"},{"id":"Node architecture","to":"/docs/fundamentals/node-architecture"},{"id":"Command-line options","to":"/docs/fundamentals/command-line-options"},{"id":"Security","to":"/docs/fundamentals/security"},{"id":"Sync-modes","to":"/docs/fundamentals/sync-modes"},{"id":"Beacon light sync","to":"/docs/fundamentals/blsync"},{"id":"Account management","to":"/docs/fundamentals/account-management"},{"id":"Databases","to":"/docs/fundamentals/databases"},{"id":"Backup \u0026 restore","to":"/docs/fundamentals/backup-restore"},{"id":"Logs","to":"/docs/fundamentals/logs"},{"id":"Connecting to peers","to":"/docs/fundamentals/peer-to-peer"},{"id":"Pruning","to":"/docs/fundamentals/pruning"},{"id":"Private networks via Kurtosis","to":"/docs/fundamentals/kurtosis"},{"id":"Private networks","to":"/docs/fundamentals/private-network"},{"id":"Config files","to":"/docs/fundamentals/config-files"},{"id":"Mining","to":"/docs/fundamentals/mining"}]},{"id":"Interacting with Geth","items":[{"id":"JSON-RPC Server","items":[{"id":"Introduction","to":"/docs/interacting-with-geth/rpc"},{"id":"Batch requests","to":"/docs/interacting-with-geth/rpc/batch"},{"id":"Real-time Events","to":"/docs/interacting-with-geth/rpc/pubsub"}]},{"id":"JSON-RPC Namespaces","items":[{"id":"admin","to":"/docs/interacting-with-geth/rpc/ns-admin"},{"id":"clique","to":"/docs/interacting-with-geth/rpc/ns-clique"},{"id":"debug","to":"/docs/interacting-with-geth/rpc/ns-debug"},{"id":"eth","to":"/docs/interacting-with-geth/rpc/ns-eth"},{"id":"les","to":"/docs/interacting-with-geth/rpc/ns-les"},{"id":"miner (deprecated)","to":"/docs/interacting-with-geth/rpc/ns-miner"},{"id":"net","to":"/docs/interacting-with-geth/rpc/ns-net"},{"id":"personal (deprecated)","to":"/docs/interacting-with-geth/rpc/ns-personal"},{"id":"txpool","to":"/docs/interacting-with-geth/rpc/ns-txpool"},{"id":"objects","to":"/docs/interacting-with-geth/rpc/objects"}]},{"id":"JS Console","to":"/docs/interacting-with-geth/javascript-console"},{"id":"JS Console 2: Contracts","to":"/docs/interacting-with-geth/javascript-console-contracts"},{"id":"GraphQL server","to":"/docs/interacting-with-geth/rpc/graphql"}]},{"id":"Developers","items":[{"id":"Introduction","to":"/docs/developers"},{"id":"Dapp developers","items":[{"id":"Dev mode","to":"/docs/developers/dapp-developer/dev-mode"},{"id":"Go API","to":"/docs/developers/dapp-developer/native"},{"id":"Go Account Management","to":"/docs/developers/dapp-developer/native-accounts"},{"id":"Go Contract Bindings","to":"/docs/developers/dapp-developer/native-bindings"},{"id":"Go Contract Bindings (v2)","to":"/docs/developers/dapp-developer/native-bindings-v2"},{"id":"Geth for Mobile","to":"/docs/developers/dapp-developer/mobile"}]},{"id":"EVM tracing","items":[{"id":"Introduction","to":"/docs/developers/evm-tracing"},{"id":"Basic traces","to":"/docs/developers/evm-tracing/basic-traces"},{"id":"Built-in tracers","to":"/docs/developers/evm-tracing/built-in-tracers"},{"id":"Custom EVM tracer","to":"/docs/developers/evm-tracing/custom-tracer"},{"id":"Live tracing","to":"/docs/developers/evm-tracing/live-tracing"},{"id":"Tutorial for Javascript tracing","to":"/docs/developers/evm-tracing/javascript-tutorial"}]},{"id":"Geth developer","items":[{"id":"Developer guide","to":"/docs/developers/geth-developer/dev-guide"},{"id":"Disclosures","to":"/docs/developers/geth-developer/disclosures"},{"id":"DNS discovery setup guide","to":"/docs/developers/geth-developer/dns-discovery-setup"},{"id":"Code review guidelines","to":"/docs/developers/geth-developer/code-review-guidelines"}]},{"id":"Contributing","to":"/docs/developers/geth-developer/contributing"}]},{"id":"Monitoring","items":[{"id":"Creating Dashboards","to":"/docs/monitoring/dashboards"},{"id":"Understanding Dashboards","to":"/docs/monitoring/understanding-dashboards"},{"id":"Ethstats","to":"/docs/monitoring/ethstats"},{"id":"Metrics","to":"/docs/monitoring/metrics"}]},{"id":"Tools","items":[{"id":"Clef","items":[{"id":"Introduction","to":"/docs/tools/clef/introduction"},{"id":"APIs","to":"/docs/tools/clef/apis"},{"id":"Rules","to":"/docs/tools/clef/rules"},{"id":"Setup","to":"/docs/tools/clef/setup"},{"id":"Datatypes","to":"/docs/tools/clef/datatypes"},{"id":"Tutorial","to":"/docs/tools/clef/tutorial"},{"id":"Clique-signing","to":"/docs/tools/clef/clique-signing"}]},{"id":"abigen","to":"/docs/tools/abigen"},{"id":"devp2p","to":"/docs/tools/devp2p"},{"id":"puppeth","to":"/docs/tools/puppeth"}]},{"id":"FAQs","to":"/docs/faq"},{"id":"Resources","to":"/docs/resources"}],"lastModified":"August 23, 2024"},"__N_SSG":true},"page":"/[...slug]","query":{"slug":["docs","developers","geth-developer","contributing"]},"buildId":"nrEqHuiu9sWikFZ_F7WGd","isFallback":false,"gsp":true,"scriptLoader":[]}</script><next-route-announcer><p aria-live="assertive" id="__next-route-announcer__" role="alert" style="border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; top: 0px; width: 1px; white-space: nowrap; overflow-wrap: normal;">Getting started with Geth | go-ethereum</p></next-route-announcer><div class="chakra-portal"><ul role="region" aria-live="polite" id="chakra-toast-manager-top" style="position: fixed; z-index: 5500; pointer-events: none; display: flex; flex-direction: column; margin: 0px auto; top: env(safe-area-inset-top, 0px); right: env(safe-area-inset-right, 0px); left: env(safe-area-inset-left, 0px);"></ul><ul role="region" aria-live="polite" id="chakra-toast-manager-top-left" style="position: fixed; z-index: 5500; pointer-events: none; display: flex; flex-direction: column; top: env(safe-area-inset-top, 0px); left: env(safe-area-inset-left, 0px);"></ul><ul role="region" aria-live="polite" id="chakra-toast-manager-top-right" style="position: fixed; z-index: 5500; pointer-events: none; display: flex; flex-direction: column; top: env(safe-area-inset-top, 0px); right: env(safe-area-inset-right, 0px);"></ul><ul role="region" aria-live="polite" id="chakra-toast-manager-bottom-left" style="position: fixed; z-index: 5500; pointer-events: none; display: flex; flex-direction: column; bottom: env(safe-area-inset-bottom, 0px); left: env(safe-area-inset-left, 0px);"></ul><ul role="region" aria-live="polite" id="chakra-toast-manager-bottom" style="position: fixed; z-index: 5500; pointer-events: none; display: flex; flex-direction: column; margin: 0px auto; bottom: env(safe-area-inset-bottom, 0px); right: env(safe-area-inset-right, 0px); left: env(safe-area-inset-left, 0px);"></ul><ul role="region" aria-live="polite" id="chakra-toast-manager-bottom-right" style="position: fixed; z-index: 5500; pointer-events: none; display: flex; flex-direction: column; bottom: env(safe-area-inset-bottom, 0px); right: env(safe-area-inset-right, 0px);"></ul></div><script src="./Getting started with Geth _ go-ethereum_files/index-3f8cc70fa936f559.js.download"></script><script src="./Getting started with Geth _ go-ethereum_files/106-3cc2c634385c6636.js.download"></script><script src="./Getting started with Geth _ go-ethereum_files/downloads-cbdcb5f2a012f7c1.js.download"></script></body></html>