The following table explores what supernode transactions are reimbursed and by who.
Transaction
Reimbursed By
Description of Transaction
getBounty()
Validator
Called every month by each supernode to request bounty.
nodeExit()
Validator
To remove a supernode from the network due to hardware failure or unmet MSR.
complaint()
Validator
Performed in DKG failure mode when a supernode lodges a general DKG complaint against a malicious supernode who may have failed to send data.
complaintBadData()
Validator
Performed in DKG failure mode when a supernode discovers that malicious data has been sent and requires verification data to validate.
preResponse()
Validator
Performed in DKG failure mode, when a supernode sends a verification vector and secret key shares ahead of the final response() result.
response()
Validator
Performed in DKG failure mode when a supernode sends a response to a complaint() to prove it’s not malicious based on the data it sends in preResponse().
broadcast()
SKALE Chain Owner
Performed during SKALE Chain creation when distributed key generation process begins. Supernodes broadcast their secret key contributions to all other supernodes.
alright()
SKALE Chain Owner
Performed during SKALE Chain creation when distributed key generation is in-process. Supernodes send receipts of secret key contributions.
Self-recharging validator wallets can be replenished in ETH by anyone with the wallet’s contract address and the ValidatorId or sChainId. This functionality allows anyone to ensure the continued ETH funding and operation of validator supernodes and SKALE Chains.If the self-recharging…
validator balance runs out of ETH, then the supernodes’ wallets are first spent until transactions revert.
SKALE Chain Owner balance runs out of ETH, then transactions will revert.
Node wallets connected to the self-recharging validator wallet are replenished automatically at the end of each transaction based on the best estimate of the gas consumed in the transaction.
If the validator self-recharging wallet is out of ETH, then supernode wallets start using their own ETH until the supernode balance is 0. Suppose the validator self-recharging wallet has 0 balance at the same time that the supernode wallet balance is 0. In that case, validators are then responsible for recharging both the validator self-recharging wallet and the supernode wallets with 0 balance.
If a supernode’s getBounty transaction reverts and can’t complete the transaction before the end of the month, the validator-delegators will receive less bounty. Validators must ensure sufficient balance and a working endpoint to connect with Ethereum mainnet.
There is no easy way to know the EVM’s refund counter’s value from inside the EVM. Thus, refunds may offset the transaction’s final net cost, and supernode balances may slightly increase over time. This process will be reviewed and improved over time.
When a new validator is registered, a self-recharging wallet is automatically deployed. The validator’s private key has withdraw access to this wallet. Validators can use this private key to close the self-recharging wallet should the validator leave the network.As a validator links supernodes to their validator ID, these linked supernodes will automatically request reimbursement from the validator’s self-recharging wallet for those transactions. If a supernode is unlinked from the validator, this supernode will no longer request reimbursement from the validator’s self-recharging wallet.Existing validators will automatically be added to the Wallet contract and will start using them once this feature is deployed to mainnet.
Validators can use the CLI to recharge, withdraw funds from, or check the self-recharging wallet’s balance. Anyone can recharge or check the balance by interacting with the Wallet contract on Ethereum.For the CLI
# Validator recharges the self-recharging wallet from their wallet (sk-val wallet info)sk-val srw recharge AMOUNT_IN_ETH [--validator-id VALIDATOR_ID] [--gas-price PRICE_IN_GWEI] [--pk-file PATH_TO_PK]> sk-val srw recharge 0.1 # Recharge using a hardware wallet> sk-val srw recharge 0.1 --validator-id 1 # Recharge validator ID 1 using a hardware wallet> sk-val srw recharge 0.1 --pk-file ./tests/test-pk.txt # Recharge using a software wallet# Validator withdraws an amount from the self-recharging walletsk-val srw withdraw AMOUNT_IN_ETH [--pk-file PATH_TO_PK] [--gas-price PRICE_IN_GWEI]> sk-val srw withdraw 0.1 # Withdraw using a hardware wallet> sk-val srw withdraw 0.1 --pk-file ./tests/test-pk.txt # Withdraw using a software wallet# Returns self-recharging wallet balancesk-val srw balance VALIDATOR_ID [--wei]> sk-val srw balance 1 # Show balance in ETH> sk-val srw balance 1 --wei # Show balance in Wei
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SKALE Documentation","colors":{"primary":"#0000FF","light":"#0000FF","dark":"#0000FF"},"logo":"https://mintcdn.com/skalenetwork/CNy1dxB9bQyHoAIM/logo/logo-docs.webp?fit=max\u0026auto=format\u0026n=CNy1dxB9bQyHoAIM\u0026q=85\u0026s=b6e20657ac126839d6dcf4abb5e8888e","favicon":"https://mintcdn.com/skalenetwork/84PHC1eKphozHsY_/favicon.png?fit=max\u0026auto=format\u0026n=84PHC1eKphozHsY_\u0026q=85\u0026s=4c4776b7c8520bdb689715aa166ee667","appearance":{"default":"light","strict":true},"navbar":{"links":[{"href":"https://discord.com/invite/skale","label":"Support"},{"href":"https://github.com/skalenetwork","label":"GitHub"},{"href":"https://skale.space","label":"Website"},{"href":"https://forum.skale.network","label":"Forum"}],"primary":{"type":"button","label":"SKALE Portal","href":"https://portal.skale.space"}},"footer":{"socials":{"x":"https://x.com/skalenetwork","github":"https://github.com/skalenetwork","discord":"https://discord.gg/skale"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"skalenetwork","hasAudioNarration":false,"actualSubdomain":"skalenetwork","customDomains":["docs.skale.space"],"gitSource":{"type":"github","owner":"skalenetwork","repo":"docs.skale.space","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad0eee7a89d48376115973e","collectionId":"6b762e0b-101e-4d04-a491-caa1e8ce305a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad0eee7a89d48376115973e"},"entitlements":{},"buildId":"6ad0eee7a89d48376115973e","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"Validators","count":41},{"language":"default","tag":"Developers","count":32},{"language":"default","tag":"Cookbook","count":28},{"language":"default","tag":"SKALE Chain","count":24},{"language":"default","tag":"Get Started","count":19},{"language":"default","tag":"SKALE Bridge","count":13},{"language":"default","tag":"Network Releases","count":12},{"language":"default","tag":"Run a SKALE Chain","count":9},{"language":"default","tag":"Facilitators","count":8},{"language":"default","tag":"Resources","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":":root{--sl-color-white:#000000!important}[data-theme=light] a:hover,[data-theme=light] a[aria-current=true],a:hover,a[aria-current=true]{color:#000!important}#sidebar-group a,#sidebar-group a.group.flex.items-center,#sidebar-group a.group.flex.items-center.pr-3,#sidebar-group a.group.flex.items-center.pr-3:hover,#sidebar-group a.group.flex.items-center:hover,#sidebar-group a:hover,#sidebar-group li,#sidebar-group li[id] a,#sidebar-group li[id] a:hover,#sidebar-group li[id].relative.scroll-m-4,ul#sidebar-group a,ul#sidebar-group a:hover,ul#sidebar-group li{width:100%!important;max-width:100%!important}#sidebar-group a.group.flex.items-center.pr-3:hover,#sidebar-group a.group.flex.items-center:hover,#sidebar-group a:hover,#sidebar-group li[id] a:hover,.nav-tabs-item.group:hover,a.link.nav-tabs-item:hover,a.nav-tabs-item:hover,ul#sidebar-group a:hover{color:inherit!important}[data-theme=light] #sidebar-group a.group.flex.items-center.pr-3:hover,[data-theme=light] #sidebar-group a.group.flex.items-center:hover,[data-theme=light] #sidebar-group a:hover,[data-theme=light] #sidebar-group li[id] a:hover,[data-theme=light] ul#sidebar-group a:hover{color:#1f2937!important}.light a.link.nav-tabs-item:hover,.light a.nav-tabs-item:hover,[data-mode=light] a.link.nav-tabs-item:hover,[data-mode=light] a.nav-tabs-item:hover,[data-theme=light] .nav-tabs-item.group:hover,[data-theme=light] a.link.nav-tabs-item:hover,[data-theme=light] a.nav-tabs-item:hover,body[data-theme=light] a.link.nav-tabs-item:hover,body[data-theme=light] a.nav-tabs-item:hover,html:not([data-theme=dark]) a.link.nav-tabs-item:hover,html:not([data-theme=dark]) a.nav-tabs-item:hover,html[data-theme=light] a.link.nav-tabs-item:hover,html[data-theme=light] a.nav-tabs-item:hover{color:#1f2937!important}.nav-tabs-item,a.nav-tabs-item{white-space:nowrap!important;width:auto!important;max-width:none!important}[data-theme=light] a.link:hover,[data-theme=light] a:focus,[data-theme=light] a:hover,[data-theme=light] a[class*=hover]:hover,[data-theme=light] a[class*=text-gray]:hover,[data-theme=light] a[class*=text-white]:hover,[data-theme=light] a[href]:hover,[data-theme=light] div a:hover,[data-theme=light] li a:hover,[data-theme=light] p a:hover,[data-theme=light] span a:hover,[data-theme=light] td a:hover,[data-theme=light] th a:hover,body[data-theme=light] a:focus,body[data-theme=light] a:hover,html[data-theme=light] a:focus,html[data-theme=light] a:hover,html[data-theme=light] body a:focus,html[data-theme=light] body a:hover{color:#6b7280!important}[data-theme=light] a.hover\\:text-white:hover,[data-theme=light] a[class*=\"hover:text-white\"]:hover{color:#6b7280!important}[data-theme=light] a.text-accent:hover,[data-theme=light] a.text-primary:hover,[data-theme=light] a[class*=primary]:hover,[data-theme=light] a[class*=text-accent]:hover,[data-theme=light] a[class*=text-primary]:hover{color:#bd0249!important}[data-theme=light] .content a:hover,[data-theme=light] [class*=content] a:hover,[data-theme=light] [class*=markdown] a:hover,[data-theme=light] [class*=prose] a:hover,[data-theme=light] article a:hover,[data-theme=light] main a:hover,html[data-theme=light] a:hover{color:#6b7280!important}img.nav-logo{height:128px}"}],"page":{"pagePath":"validators/validator-cli/self-recharging-wallets","slug":"/validators/validator-cli/self-recharging-wallets","pageMetadata":{"title":"Self Recharging Wallets","description":"Deep dive into self-recharging capabilities of supernode wallets","href":"/validators/validator-cli/self-recharging-wallets"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Deep dive into self-recharging capabilities of supernode wallets\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`types-of-wallets`,children:`Types of Wallets`}),`\n`,_jsx(_components.p,{children:`There are several types of wallets in the SKALE Network. These include:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Wallets Controlled by the validator, supernode operator, and SKALE Chain owner.\nThese wallets may be software or hardware wallets.`}),`\n`,_jsx(_components.li,{children:`Self-Recharging wallets can be for validators and for the SKALE Chain owner.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`node-transactions-\u0026-reimbursement`,children:`Node Transactions \u0026 Reimbursement`}),`\n`,_jsx(_components.p,{children:`The following table explores what supernode transactions are reimbursed and by who.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Transaction`}),_jsx(_components.th,{children:`Reimbursed By`}),_jsx(_components.th,{children:`Description of Transaction`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`getBounty()`}),_jsx(_components.td,{children:`Validator`}),_jsx(_components.td,{children:`Called every month by each supernode to request bounty.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`nodeExit()`}),_jsx(_components.td,{children:`Validator`}),_jsx(_components.td,{children:`To remove a supernode from the network due to hardware failure or unmet MSR.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`complaint()`}),_jsx(_components.td,{children:`Validator`}),_jsx(_components.td,{children:`Performed in DKG failure mode when a supernode lodges a general DKG complaint against a malicious supernode who may have failed to send data.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`complaintBadData()`}),_jsx(_components.td,{children:`Validator`}),_jsx(_components.td,{children:`Performed in DKG failure mode when a supernode discovers that malicious data has been sent and requires verification data to validate.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`preResponse()`}),_jsx(_components.td,{children:`Validator`}),_jsxs(_components.td,{children:[`Performed in DKG failure mode, when a supernode sends a verification vector and secret key shares ahead of the final `,_jsx(_components.code,{children:`response()`}),` result.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`response()`}),_jsx(_components.td,{children:`Validator`}),_jsxs(_components.td,{children:[`Performed in DKG failure mode when a supernode sends a response to a `,_jsx(_components.code,{children:`complaint()`}),` to prove it’s not malicious based on the data it sends in `,_jsx(_components.code,{children:`preResponse()`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`broadcast()`}),_jsx(_components.td,{children:`SKALE Chain Owner`}),_jsx(_components.td,{children:`Performed during SKALE Chain creation when distributed key generation process begins. Supernodes broadcast their secret key contributions to all other supernodes.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`alright()`}),_jsx(_components.td,{children:`SKALE Chain Owner`}),_jsx(_components.td,{children:`Performed during SKALE Chain creation when distributed key generation is in-process. Supernodes send receipts of secret key contributions.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`replenishment`,children:`Replenishment`}),`\n`,_jsxs(_components.p,{children:[`Self-recharging validator wallets can be replenished in ETH by anyone with the wallet’s contract address and the `,_jsx(_components.code,{children:`ValidatorId`}),` or `,_jsx(_components.code,{children:`sChainId`}),`. This functionality allows anyone to ensure the continued ETH funding and operation of validator supernodes and SKALE Chains.`]}),`\n`,_jsxs(_components.p,{children:[`If the `,_jsx(_components.em,{children:`self-recharging`}),`…`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.em,{children:`validator balance`}),` runs out of ETH, then the supernodes’ wallets are first spent until transactions revert.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.em,{children:`SKALE Chain Owner balance`}),` runs out of ETH, then transactions will revert.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Node wallets connected to the self-recharging validator wallet are replenished automatically at the end of each transaction based on the best estimate of the gas consumed in the transaction.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`If the validator self-recharging wallet is out of ETH, then supernode wallets start using their own ETH until the supernode balance is 0. Suppose the validator self-recharging wallet has 0 balance at the same time that the supernode wallet balance is 0. In that case, validators are then responsible for recharging both the validator self-recharging wallet and the supernode wallets with 0 balance.`})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`If a supernode’s `,_jsx(_components.code,{children:`getBounty`}),` transaction reverts and can’t complete the transaction before the end of the month, the validator-delegators will receive less bounty. Validators must ensure sufficient balance and a working endpoint to connect with Ethereum mainnet.`]})}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`There is no easy way to know the EVM’s refund counter’s value from inside the EVM. Thus, refunds may offset the transaction’s final net cost, and supernode balances may slightly increase over time. This process will be reviewed and improved over time.`})}),`\n`,_jsx(Heading,{level:`2`,id:`using-a-self-recharging-wallet`,children:`Using a Self-Recharging Wallet`}),`\n`,_jsx(_components.p,{children:`When a new validator is registered, a self-recharging wallet is automatically deployed. The validator’s private key has withdraw access to this wallet. Validators can use this private key to close the self-recharging wallet should the validator leave the network.`}),`\n`,_jsx(_components.p,{children:`As a validator links supernodes to their validator ID, these linked supernodes will automatically request reimbursement from the validator’s self-recharging wallet for those transactions. If a supernode is unlinked from the validator, this supernode will no longer request reimbursement from the validator’s self-recharging wallet.`}),`\n`,_jsx(_components.p,{children:`Existing validators will automatically be added to the Wallet contract and will start using them once this feature is deployed to mainnet.`}),`\n`,_jsx(Heading,{level:`2`,id:`interacting-with-the-self-recharging-wallet-srw`,children:`Interacting with the Self-Recharging Wallet (SRW)`}),`\n`,_jsx(_components.p,{children:`Validators can use the CLI to recharge, withdraw funds from, or check the self-recharging wallet’s balance. Anyone can recharge or check the balance by interacting with the Wallet contract on Ethereum.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.em,{children:`For the CLI`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`18`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Validator recharges the self-recharging wallet from their wallet (sk-val wallet info)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`sk-val`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` srw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` recharge`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` AMOUNT_IN_ETH`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [--validator-id `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`VALIDATOR_ID]`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [--gas-price `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`PRICE_IN_GWEI]`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [--pk-file `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`PATH_TO_PK]`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sk-val srw recharge 0.1 `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Recharge using a hardware wallet`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sk-val srw recharge 0.1 --validator-id 1 `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Recharge validator ID 1 using a hardware wallet`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sk-val srw recharge 0.1 --pk-file ./tests/test-pk.txt `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Recharge using a software wallet`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Validator withdraws an amount from the self-recharging wallet`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`sk-val`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` srw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` withdraw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` AMOUNT_IN_ETH`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [--pk-file `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`PATH_TO_PK]`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [--gas-price `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`PRICE_IN_GWEI]`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sk-val srw withdraw 0.1 `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Withdraw using a hardware wallet`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sk-val srw withdraw 0.1 --pk-file ./tests/test-pk.txt `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Withdraw using a software wallet`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Returns self-recharging wallet balance`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`sk-val`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` srw`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` balance`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` VALIDATOR_ID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [--wei]`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sk-val srw balance 1 `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Show balance in ETH`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` sk-val srw balance 1 --wei `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Show balance in Wei`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.em,{children:`For Wallets Contract`})}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`https://github.com/skalenetwork/skale-manager/blob/develop/contracts/Wallets.sol`,children:`https://github.com/skalenetwork/skale-manager/blob/develop/contracts/Wallets.sol`})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`rechargeValidatorWallet(validatorId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`withdrawFundsFromValidatorWallet(amount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`getValidatorBalance(validatorId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Self Recharging Wallets","description":"Deep dive into self-recharging capabilities of supernode wallets","href":"/validators/validator-cli/self-recharging-wallets"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Types of Wallets","slug":"types-of-wallets","depth":2,"children":[]},{"title":"Node Transactions \u0026 Reimbursement","slug":"node-transactions-\u0026-reimbursement","depth":2,"children":[]},{"title":"Replenishment","slug":"replenishment","depth":2,"children":[]},{"title":"Using a Self-Recharging Wallet","slug":"using-a-self-recharging-wallet","depth":2,"children":[]},{"title":"Interacting with the Self-Recharging Wallet (SRW)","slug":"interacting-with-the-self-recharging-wallet-srw","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"skalenetwork","siteName":"SKALE Documentation","title":"Self Recharging Wallets - SKALE Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-31T16:54:22.032Z","originalFileLocation":"validators/validator-cli/self-recharging-wallets.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Deep dive into self-recharging capabilities of supernode wallets\">\u003cmeta data-mint-head name=\"application-name\" content=\"SKALE Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/skalenetwork/CxHEXOF0u8w0d2T0/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/skalenetwork/CxHEXOF0u8w0d2T0/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/skalenetwork/CxHEXOF0u8w0d2T0/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/skalenetwork/CxHEXOF0u8w0d2T0/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/skalenetwork/CxHEXOF0u8w0d2T0/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/skalenetwork/CxHEXOF0u8w0d2T0/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/skalenetwork/CxHEXOF0u8w0d2T0/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/skalenetwork/CxHEXOF0u8w0d2T0/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/skalenetwork/CxHEXOF0u8w0d2T0/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Self Recharging Wallets - SKALE Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Deep dive into self-recharging capabilities of supernode wallets\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SKALE Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.skale.space/validators/validator-cli/self-recharging-wallets\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://skalenetwork.mintlify.app/_mintlify/api/og/v2?division=Validator+CLI\u0026amp;title=Self+Recharging+Wallets\u0026amp;description=Deep+dive+into+self-recharging+capabilities+of+supernode+wallets\u0026amp;theme=760ab72cb033f7a17368c355\u0026amp;signature=322d5439dcafb96c0a5def15ca3d35149355b70911b933eeabcd423eeebc9a28\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Self Recharging Wallets - SKALE Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Deep dive into self-recharging capabilities of supernode wallets\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://skalenetwork.mintlify.app/_mintlify/api/og/v2?division=Validator+CLI\u0026amp;title=Self+Recharging+Wallets\u0026amp;description=Deep+dive+into+self-recharging+capabilities+of+supernode+wallets\u0026amp;theme=760ab72cb033f7a17368c355\u0026amp;signature=322d5439dcafb96c0a5def15ca3d35149355b70911b933eeabcd423eeebc9a28\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/skalenetwork/CxHEXOF0u8w0d2T0/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SKALE Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0000FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.skale.space/validators/validator-cli/self-recharging-wallets\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/validators/validator-cli/self-recharging-wallets.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.skale.space/#organization\",\"name\":\"SKALE Documentation\",\"url\":\"https://docs.skale.space\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/skalenetwork/CNy1dxB9bQyHoAIM/logo/logo-docs.webp?fit=max\u0026auto=format\u0026n=CNy1dxB9bQyHoAIM\u0026q=85\u0026s=b6e20657ac126839d6dcf4abb5e8888e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.skale.space#website\",\"name\":\"SKALE Documentation\",\"url\":\"https://docs.skale.space\",\"publisher\":{\"@id\":\"https://docs.skale.space/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.skale.space/validators/validator-cli/self-recharging-wallets#webpage\",\"url\":\"https://docs.skale.space/validators/validator-cli/self-recharging-wallets\",\"name\":\"Self Recharging Wallets\",\"description\":\"Deep dive into self-recharging capabilities of supernode wallets\",\"dateModified\":\"2026-08-31T16:54:22.032Z\",\"isPartOf\":{\"@id\":\"https://docs.skale.space#website\"},\"breadcrumb\":{\"@id\":\"https://docs.skale.space/validators/validator-cli/self-recharging-wallets#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.skale.space/validators/validator-cli/self-recharging-wallets#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Validator CLI\",\"item\":\"https://docs.skale.space/validators/validator-cli/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Self Recharging Wallets\",\"item\":\"https://docs.skale.space/validators/validator-cli/self-recharging-wallets\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.skale.space/validators/validator-cli/self-recharging-wallets#article\",\"headline\":\"Self Recharging Wallets\",\"name\":\"Self Recharging Wallets\",\"description\":\"Deep dive into self-recharging capabilities of supernode wallets\",\"url\":\"https://docs.skale.space/validators/validator-cli/self-recharging-wallets\",\"mainEntityOfPage\":{\"@id\":\"https://docs.skale.space/validators/validator-cli/self-recharging-wallets#webpage\"},\"dateModified\":\"2026-08-31T16:54:22.032Z\",\"publisher\":{\"@id\":\"https://docs.skale.space/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.skale.space#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SKALE Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SKALE Documentation","nav":{"global":null,"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":"/get-started/skale"}]},{"tab":"Cookbook","pages":[{"title":"Cookbook","href":"/cookbook/deployment/setup-foundry"}]},{"tab":"Developers","pages":[{"title":"Developers","href":"/developers/integrate-skale/connect-to-skale"}]},{"tab":"SKALE Chain","pages":[{"title":"SKALE Chain","href":"/skale-chain/introduction"}]},{"tab":"Validators","pages":[{"group":"Validators","pages":[{"title":"Run a Supernode","href":"/validators/run-supernode"},{"title":"Run a Supernode on Base","href":"/validators/run-supernode-on-base"},{"title":"Supernode Overview","href":"/validators/supernode-overview"},{"title":"Compliance Requirements","href":"/validators/compliance-requirements"},{"title":"Validator FAQ","href":"/validators/faq"},{"title":"Validator Troubleshooting","href":"/validators/troubleshooting"},{"title":"Migrate SKALE Node with SGXWallet to New Server","href":"/validators/migrate-node-with-sgxwallet"},{"title":"Hardware Requirements","href":"/validators/hardware"},{"title":"SKALE Supernode Swap Limit Fix","href":"/validators/swap-limit-fix"}]},{"group":"Network Releases","pages":[{"title":"Upgrade to v5.3.0 on Mainnet","href":"/validators/releases/5-3-0-upgrade"},{"title":"Upgrade to v5.3.0 on Base Mainnet","href":"/validators/releases/5-3-0-upgrade-base"},{"title":"Upgrade to v5.2.1","href":"/validators/releases/5-2-1-upgrade"},{"title":"Upgrade to v5.2.0","href":"/validators/releases/5-2-0-upgrade"},{"title":"Upgrade to v5.0.0","href":"/validators/releases/5-0-0-upgrade"},{"title":"Upgrade to v4.0.1","href":"/validators/releases/4-0-1-upgrade"},{"title":"Upgrade to v4.0.0","href":"/validators/releases/4-0-0-upgrade"},{"title":"Upgrade to v3.1.2","href":"/validators/releases/3-1-2-upgrade"},{"title":"Upgrade to v3.1.1","href":"/validators/releases/3-1-1-upgrade"},{"title":"Upgrade to v3.1.1 (Local SGX)","href":"/validators/releases/3-1-1-upgrade-local-sgx"},{"title":"Upgrade to v3.1.0","href":"/validators/releases/3-1-0-upgrade"},{"title":"Upgrade to v3.0.3","href":"/validators/releases/3-0-3-upgrade"}]},{"group":"Passive Nodes","pages":[{"title":"Run Archive Node","href":"/validators/run-archive-node"},{"title":"Run Sync Node","href":"/validators/run-sync-node"}]},{"group":"Node CLI","pages":[{"title":"Node CLI","href":"/validators/node-cli/overview"},{"title":"Changing Node IP","href":"/validators/node-cli/changing-node-ip"},{"title":"Node SSL Setup","href":"/validators/node-cli/node-ssl-setup"},{"title":"Node CLI - v2.0","href":"/validators/node-cli/releases/v2-0"}]},{"group":"Validator CLI","pages":[{"title":"Validator CLI","description":"The Validator CLI offers key tools for SKALE Network validators","href":"/validators/validator-cli/overview"},{"title":"Self Recharging Wallets","href":"/validators/validator-cli/self-recharging-wallets"},{"title":"Validator CLI - v1.2.0","description":"Validator CLI v1.2.0 is the latest release","href":"/validators/validator-cli/releases/v1-2-0"}]},{"group":"Watchdog","pages":[{"title":"SKALE Watchdog","href":"/validators/watchdog/overview"},{"title":"Watchdog API Reference","href":"/validators/watchdog/apis"}]}]}]},"title":"Self Recharging Wallets - SKALE Documentation","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":[],"chunks":[]}