Security recommendations for developers building smart contracts and applications on Autheo Chain.
Building on an EVM-compatible chain means Ethereum’s security patterns and common vulnerabilities apply directly to Autheo Chain. This guide covers the most important practices for contract security, key management, and application hardening.
Never expose private keys in source code, environment variables committed to version control, or client-side JavaScript. A single key compromise can drain all associated funds irreversibly.
Store private keys in environment variables loaded from .env files that are gitignored
For production deployments, use a hardware wallet (Ledger/Trezor) or a secrets manager (AWS Secrets Manager, HashiCorp Vault)
Rotate keys immediately if any exposure is suspected
Use separate deployment keys for testnet and mainnet — never reuse keys across environments
Always compile with evmVersion: "paris" to ensure opcode compatibility with Autheo Chain. Using shanghai or later may introduce opcodes not supported by the chain’s current EVM configuration.
Document the upgrade key holder and consider timelocks for governance-level changes.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Autheo documentation","colors":{"primary":"#007262","light":"#00FED9","dark":"#00A88F"},"logo":{"light":"https://mintcdn.com/autheo/Anmz1CmPS72LUXN4/logo/light.svg?fit=max\u0026auto=format\u0026n=Anmz1CmPS72LUXN4\u0026q=85\u0026s=e1cf2c25fddacc0621c3ca2ddc9c5853","dark":"https://mintcdn.com/autheo/Anmz1CmPS72LUXN4/logo/dark.svg?fit=max\u0026auto=format\u0026n=Anmz1CmPS72LUXN4\u0026q=85\u0026s=5440b5cb830a38a1eabbfb647a288fbe"},"favicon":"https://mintcdn.com/autheo/0JlETvy4cHvGL7cO/favicon.ico?fit=max\u0026auto=format\u0026n=0JlETvy4cHvGL7cO\u0026q=85\u0026s=688b139bf8bf492cbe8f2b2f6dc67b23","navbar":{"links":[{"href":"mailto:info@autheo.com","label":"Support"}],"primary":{"type":"button","label":"autheo.com","href":"https://www.autheo.com/"}},"footer":{"socials":{"x":"https://x.com/Autheo_Network","linkedin":"https://www.linkedin.com/company/autheo/posts?feedView=all","discord":"https://discord.gg/McEEeXGGya","telegram":"https://t.me/autheo/1"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"autheo","hasAudioNarration":false,"actualSubdomain":"autheo","customDomains":["docs.autheo.com"],"gitSource":{"type":"github","owner":"autheo-organization","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ac003bbaa30b8dba727eb84","collectionId":"cfa7e66b-e1df-400b-8cce-ceaca52602b8","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac003bbaa30b8dba727eb84"},"entitlements":{},"buildId":"6ac003bbaa30b8dba727eb84","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"Node operations","count":38},{"language":"default","tag":"APIs","count":24},{"language":"default","tag":"Nodes","count":23},{"language":"default","tag":"Web Apps","count":18},{"language":"default","tag":"Developers","count":15},{"language":"default","tag":"JSON-RPC","count":12},{"language":"default","tag":"REST","count":11},{"language":"default","tag":"Methods","count":8},{"language":"default","tag":"Getting Started","count":8},{"language":"default","tag":"SDKs","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","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":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"developers/guides/security-best-practices","slug":"/developers/guides/security-best-practices","pageMetadata":{"title":"Security best practices","description":"Security recommendations for developers building smart contracts and applications on Autheo Chain.","keywords":["security","smart contracts","best practices","reentrancy","auditing","private keys"],"href":"/developers/guides/security-best-practices"},"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: \"Security recommendations for developers building smart contracts and applications on Autheo Chain.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Building on an EVM-compatible chain means Ethereum’s security patterns and common vulnerabilities apply directly to Autheo Chain. This guide covers the most important practices for contract security, key management, and application hardening.`}),`\n`,_jsx(Heading,{level:`2`,id:`private-key-management`,children:`Private key management`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Never expose private keys in source code, environment variables committed to version control, or client-side JavaScript. A single key compromise can drain all associated funds irreversibly.`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Store private keys in environment variables loaded from `,_jsx(_components.code,{children:`.env`}),` files that are `,_jsx(_components.strong,{children:`gitignored`})]}),`\n`,_jsx(_components.li,{children:`For production deployments, use a hardware wallet (Ledger/Trezor) or a secrets manager (AWS Secrets Manager, HashiCorp Vault)`}),`\n`,_jsx(_components.li,{children:`Rotate keys immediately if any exposure is suspected`}),`\n`,_jsx(_components.li,{children:`Use separate deployment keys for testnet and mainnet — never reuse keys across environments`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`smart-contract-security`,children:`Smart contract security`}),`\n`,_jsx(Heading,{level:`3`,id:`reentrancy`,children:`Reentrancy`}),`\n`,_jsx(_components.p,{children:`Always follow the checks-effects-interactions pattern:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// ✅ Safe: update state before external call`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` withdraw`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`uint256`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` amount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`external`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` require`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(balances[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`msg.sender`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` amount, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Insufficient balance\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` balances[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`msg.sender`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` amount; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Effect first`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`bool`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` success, ) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` msg.sender`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.call{value`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` amount}(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`); `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Interaction last`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` require`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(success, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Transfer failed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// ❌ Unsafe: external call before state update`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` withdraw`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`uint256`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` amount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`external`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`bool`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` success, ) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` msg.sender`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.call{value`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` amount}(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` balances[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`msg.sender`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` amount; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Too late`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Use OpenZeppelin’s `,_jsx(_components.code,{children:`ReentrancyGuard`}),` as a defense-in-depth measure.`]}),`\n`,_jsx(Heading,{level:`3`,id:`integer-overflow`,children:`Integer overflow`}),`\n`,_jsxs(_components.p,{children:[`Use Solidity 0.8.x or higher (built-in overflow checks), or OpenZeppelin’s `,_jsx(_components.code,{children:`SafeMath`}),` for older compiler versions.`]}),`\n`,_jsx(Heading,{level:`3`,id:`access-control`,children:`Access control`}),`\n`,_jsxs(_components.p,{children:[`Use OpenZeppelin’s `,_jsx(_components.code,{children:`Ownable`}),` or `,_jsx(_components.code,{children:`AccessControl`}),` for privileged functions:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`solidity`,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:`solidity`,children:_jsxs(_components.code,{language:`solidity`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@openzeppelin/contracts/access/Ownable.sol\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`contract`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` MyContract`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` is`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Ownable`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` sensitiveOperation`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`external`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` onlyOwner`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // ...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`input-validation`,children:`Input validation`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Validate all user-supplied inputs at the start of functions`}),`\n`,_jsx(_components.li,{children:`Check address parameters are non-zero`}),`\n`,_jsx(_components.li,{children:`Bound numeric inputs to reasonable ranges`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`auditing`,children:`Auditing`}),`\n`,_jsx(_components.p,{children:`Before deploying any contract that holds real value:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Internal review`}),` — Have at least one other developer read every line`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Static analysis`}),` — Run `,_jsx(_components.a,{href:`https://github.com/crytic/slither`,children:`Slither`}),` or `,_jsx(_components.a,{href:`https://github.com/ConsenSys/mythril`,children:`Mythril`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`External audit`}),` — Engage a professional audit firm for high-value contracts`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Bug bounty`}),` — Consider a public bug bounty program post-deployment`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`deployment-checklist`,children:`Deployment checklist`}),`\n`,_jsxs(_components.p,{children:[`See the `,_jsx(_components.a,{href:`/developers/guides/deployment-checklist`,children:`deployment checklist`}),` for a pre-deployment verification procedure.`]}),`\n`,_jsx(Heading,{level:`2`,id:`evm-version`,children:`EVM version`}),`\n`,_jsxs(_components.p,{children:[`Always compile with `,_jsx(_components.code,{children:`evmVersion: \"paris\"`}),` to ensure opcode compatibility with Autheo Chain. Using `,_jsx(_components.code,{children:`shanghai`}),` or later may introduce opcodes not supported by the chain’s current EVM configuration.`]}),`\n`,_jsx(Heading,{level:`2`,id:`rpc-security`,children:`RPC security`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Use HTTPS endpoints only in production — never plain HTTP`}),`\n`,_jsx(_components.li,{children:`Do not expose private node RPC endpoints publicly`}),`\n`,_jsx(_components.li,{children:`Implement rate limiting on any middleware that proxies RPC calls`}),`\n`,_jsx(_components.li,{children:`Never log raw transaction data that may contain private keys or sensitive parameters`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`upgrade-patterns`,children:`Upgrade patterns`}),`\n`,_jsx(_components.p,{children:`If your contracts need upgradeability, use audited proxy patterns:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable`,children:`OpenZeppelin UUPS Proxy`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://docs.openzeppelin.com/contracts/4.x/api/proxy#TransparentUpgradeableProxy`,children:`OpenZeppelin Transparent Proxy`})}),`\n`]}),`\n`,_jsx(_components.p,{children:`Document the upgrade key holder and consider timelocks for governance-level changes.`})]})}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":"Security best practices","description":"Security recommendations for developers building smart contracts and applications on Autheo Chain.","keywords":["security","smart contracts","best practices","reentrancy","auditing","private keys"],"href":"/developers/guides/security-best-practices"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Private key management","slug":"private-key-management","depth":2,"children":[]},{"title":"Smart contract security","slug":"smart-contract-security","depth":2,"children":[{"title":"Reentrancy","slug":"reentrancy","depth":3,"children":[]},{"title":"Integer overflow","slug":"integer-overflow","depth":3,"children":[]},{"title":"Access control","slug":"access-control","depth":3,"children":[]},{"title":"Input validation","slug":"input-validation","depth":3,"children":[]}]},{"title":"Auditing","slug":"auditing","depth":2,"children":[]},{"title":"Deployment checklist","slug":"deployment-checklist","depth":2,"children":[]},{"title":"EVM version","slug":"evm-version","depth":2,"children":[]},{"title":"RPC security","slug":"rpc-security","depth":2,"children":[]},{"title":"Upgrade patterns","slug":"upgrade-patterns","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"autheo","siteName":"Autheo documentation","title":"Security best practices - Autheo documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-03T20:50:29.181Z","originalFileLocation":"developers/guides/security-best-practices.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}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=\"Security recommendations for developers building smart contracts and applications on Autheo Chain.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Autheo 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/autheo/B9qtwfZ_VB1YKB9V/_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/autheo/B9qtwfZ_VB1YKB9V/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/autheo/B9qtwfZ_VB1YKB9V/_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/autheo/B9qtwfZ_VB1YKB9V/_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/autheo/B9qtwfZ_VB1YKB9V/_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/autheo/B9qtwfZ_VB1YKB9V/_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/autheo/B9qtwfZ_VB1YKB9V/_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/autheo/B9qtwfZ_VB1YKB9V/_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/autheo/B9qtwfZ_VB1YKB9V/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Security best practices - Autheo documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Security recommendations for developers building smart contracts and applications on Autheo Chain.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Autheo documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.autheo.com/developers/guides/security-best-practices\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://autheo.mintlify.app/_mintlify/api/og/v2?division=Guides\u0026amp;title=Security+best+practices\u0026amp;description=Security+recommendations+for+developers+building+smart+contracts+and+applications+on+Autheo+Chain.\u0026amp;theme=c1d489fd408ee7ba99d68b30\u0026amp;signature=8249c38dabb04f92ec11899f9fb545f27fdd226e6aef15a0682c56264be7d20d\">\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=\"Security best practices - Autheo documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Security recommendations for developers building smart contracts and applications on Autheo Chain.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://autheo.mintlify.app/_mintlify/api/og/v2?division=Guides\u0026amp;title=Security+best+practices\u0026amp;description=Security+recommendations+for+developers+building+smart+contracts+and+applications+on+Autheo+Chain.\u0026amp;theme=c1d489fd408ee7ba99d68b30\u0026amp;signature=8249c38dabb04f92ec11899f9fb545f27fdd226e6aef15a0682c56264be7d20d\">\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/autheo/B9qtwfZ_VB1YKB9V/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Autheo documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#007262\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.autheo.com/developers/guides/security-best-practices\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/developers/guides/security-best-practices.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.autheo.com/#organization\",\"name\":\"Autheo documentation\",\"url\":\"https://docs.autheo.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/autheo/Anmz1CmPS72LUXN4/logo/light.svg?fit=max\u0026auto=format\u0026n=Anmz1CmPS72LUXN4\u0026q=85\u0026s=e1cf2c25fddacc0621c3ca2ddc9c5853\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.autheo.com#website\",\"name\":\"Autheo documentation\",\"url\":\"https://docs.autheo.com\",\"publisher\":{\"@id\":\"https://docs.autheo.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.autheo.com/developers/guides/security-best-practices#webpage\",\"url\":\"https://docs.autheo.com/developers/guides/security-best-practices\",\"name\":\"Security best practices\",\"description\":\"Security recommendations for developers building smart contracts and applications on Autheo Chain.\",\"dateModified\":\"2026-06-03T20:50:29.181Z\",\"isPartOf\":{\"@id\":\"https://docs.autheo.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.autheo.com/developers/guides/security-best-practices#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.autheo.com/developers/guides/security-best-practices#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Developers\",\"item\":\"https://docs.autheo.com/developers/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Guides\",\"item\":\"https://docs.autheo.com/developers/guides/key-management\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Security best practices\",\"item\":\"https://docs.autheo.com/developers/guides/security-best-practices\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.autheo.com/developers/guides/security-best-practices#article\",\"headline\":\"Security best practices\",\"name\":\"Security best practices\",\"description\":\"Security recommendations for developers building smart contracts and applications on Autheo Chain.\",\"url\":\"https://docs.autheo.com/developers/guides/security-best-practices\",\"mainEntityOfPage\":{\"@id\":\"https://docs.autheo.com/developers/guides/security-best-practices#webpage\"},\"dateModified\":\"2026-06-03T20:50:29.181Z\",\"keywords\":\"security, smart contracts, best practices, reentrancy, auditing, private keys\",\"publisher\":{\"@id\":\"https://docs.autheo.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.autheo.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Autheo documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Autheo documentation","nav":{"global":null,"groups":[{"group":"Start Here","icon":"play","pages":[{"title":"Autheo OS model","href":"/start-here/autheo-os-model"},{"title":"Choose your path","href":"/start-here/your-path"},{"title":"Architecture at a glance","href":"/start-here/architecture-at-a-glance"},{"title":"Components map","href":"/start-here/components-map"},{"title":"Terminology","href":"/start-here/terminology"},{"title":"Glossary","href":"/start-here/glossary"}]},{"group":"Getting Started","pages":[{"title":"Quickstart","href":"/getting-started/quickstart"},{"group":"Wallets","expanded":false,"pages":[{"title":"MetaMask browser wallet installation","href":"/getting-started/wallets/metamask-install"},{"title":"Connect To Testnet","href":"/getting-started/wallets/connect-to-testnet"},{"title":"Autheo account creation","href":"/getting-started/wallets/account-basics"}]},{"group":"Network","expanded":false,"pages":[{"title":"Network endpoints","href":"/getting-started/network/endpoints"},{"title":"Testnet faucet","href":"/getting-started/network/faucet"},{"title":"Network troubleshooting","href":"/getting-started/network/troubleshooting"}]},{"title":"FAQ","href":"/getting-started/faq"}]},{"group":"Web Apps","pages":[{"title":"Web apps","href":"/web-apps/overview"},{"group":"Node Sale","expanded":false,"pages":[{"title":"Node Sale Platform","href":"/web-apps/node-sale/overview"},{"title":"Purchasing a license","href":"/web-apps/node-sale/purchasing-a-license"},{"title":"Referral program","href":"/web-apps/node-sale/referral-program"},{"title":"Order history and NFT import","href":"/web-apps/node-sale/order-history"}]},{"group":"Bridge","expanded":false,"pages":[{"title":"Autheo Bridge","href":"/web-apps/bridge/overview"},{"title":"Connecting wallets","href":"/web-apps/bridge/connecting-wallets"},{"title":"Making a transfer","href":"/web-apps/bridge/making-a-transfer"},{"title":"Transfer history","href":"/web-apps/bridge/transfer-history"},{"title":"Bridging THEO from Autheo Mainnet to Base","href":"/web-apps/bridge/bridging-theo-to-base"},{"title":"Bridging THEO from Autheo Mainnet to Robinhood Chain","href":"/web-apps/bridge/bridging-theo-to-robinhood-chain"}]},{"group":"Validator Portal","expanded":false,"pages":[{"title":"Validator Portal","href":"/web-apps/validator-portal/overview"},{"title":"Validator dashboard","href":"/web-apps/validator-portal/dashboard"},{"title":"Deploying a node","href":"/web-apps/validator-portal/deploying-a-node"},{"title":"Delegation","href":"/web-apps/validator-portal/delegation"},{"title":"Rewards and unstaking","href":"/web-apps/validator-portal/rewards-and-unstaking"},{"title":"Activity history","href":"/web-apps/validator-portal/activity-history"},{"title":"Re-add Autheo Mainnet on Keplr","href":"/re-add-autheo-mainnet-on-keplr"}]}]},{"group":"Developers","pages":[{"title":"Developers","href":"/developers/overview"},{"group":"Setup","expanded":false,"pages":[{"title":"Development environment setup","href":"/developers/setup/dev-environment"},{"title":"Autheo CLI installation","href":"/developers/setup/cli-installation"},{"title":"Project scaffolding","href":"/developers/setup/project-scaffolding"}]},{"group":"Tutorials","expanded":false,"pages":[{"title":"Deploying a smart contract on the Autheo blockchain","href":"/developers/tutorials/deploy-smart-contract"},{"title":"Interact with deployed contracts","href":"/developers/tutorials/interact-with-contracts"},{"title":"Events and logs","href":"/developers/tutorials/events-and-logs"},{"title":"Token contracts","href":"/developers/tutorials/token-contracts"},{"title":"Indexing and analytics","href":"/developers/tutorials/indexing-and-analytics"}]},{"group":"Guides","expanded":false,"pages":[{"title":"Key management","description":"Managing operator and consensus keys on Autheo Chain: keyring backends, the eth_secp256k1 algorithm, address formats, and security best practices.","href":"/developers/guides/key-management"},{"title":"Security best practices","href":"/developers/guides/security-best-practices"},{"title":"Gas fees and transaction lifecycle","description":"How gas estimation, fee payment, and transaction confirmation work on Autheo Chain.","href":"/developers/guides/gas-fees-and-tx-lifecycle"},{"title":"Deployment checklist","href":"/developers/guides/deployment-checklist"}]},{"group":"Troubleshooting","expanded":false,"pages":[{"title":"Common errors","href":"/developers/troubleshooting/common-errors"},{"title":"RPC issues","href":"/developers/troubleshooting/rpc-issues"}]}]},{"group":"APIs","pages":[{"title":"APIs overview","href":"/apis/overview"},{"group":"JSON-RPC","expanded":false,"pages":[{"title":"Overview","href":"/apis/json-rpc/overview"},{"title":"Authentication","href":"/apis/json-rpc/authentication"},{"title":"JSON-RPC error codes","href":"/apis/json-rpc/errors"},{"title":"Rate limits","href":"/apis/json-rpc/rate-limits"},{"group":"Methods","expanded":false,"pages":[{"group":"ETH","expanded":false,"pages":[{"title":"ETH","href":"/apis/json-rpc/methods/eth/eth"},{"title":"Block methods","href":"/apis/json-rpc/methods/eth/eth_block_methods"},{"title":"Gas methods","href":"/apis/json-rpc/methods/eth/eth_gas_methods"},{"title":"Transaction methods","href":"/apis/json-rpc/methods/eth/eth_transaction_methods"},{"title":"Uncle methods","href":"/apis/json-rpc/methods/eth/eth_uncle_methods"},{"title":"Filter methods","href":"/apis/json-rpc/methods/eth/eth_filter_methods"}]},{"group":"net","expanded":false,"pages":[{"title":"Net version","href":"/apis/json-rpc/methods/net/net_version"}]},{"group":"web3","expanded":false,"pages":[{"title":"Web3 client version","href":"/apis/json-rpc/methods/web3/web3_clientVersion"}]}]}]},{"group":"REST","expanded":false,"pages":[{"title":"Overview","href":"/apis/rest/overview"},{"title":"Pagination","href":"/apis/rest/pagination"},{"title":"REST API errors","href":"/apis/rest/errors"},{"group":"Resources","expanded":false,"pages":[{"title":"Main page methods","href":"/apis/rest/resources/main-page-stats"},{"title":"Address methods","href":"/apis/rest/resources/addresses"},{"title":"Block methods","href":"/apis/rest/resources/blocks"},{"title":"Transaction methods","href":"/apis/rest/resources/transactions"},{"title":"Token methods","href":"/apis/rest/resources/tokens"},{"title":"Smart contract methods","href":"/apis/rest/resources/smart-contracts"}]},{"group":"Examples","expanded":false,"pages":[{"title":"cURL examples","href":"/apis/rest/examples/curl"},{"title":"JavaScript examples","href":"/apis/rest/examples/javascript"}]}]}]},{"group":"Node operations","pages":[{"group":"Nodes","expanded":false,"pages":[{"title":"Overview","href":"/nodes/overview"},{"group":"Architecture","expanded":false,"pages":[{"title":"Architecture overview","href":"/nodes/architecture/overview"},{"title":"System architecture","href":"/nodes/architecture/system-architecture"},{"title":"Module overview","href":"/nodes/architecture/module-overview"},{"title":"License gating","href":"/nodes/architecture/license-gating"},{"title":"License lifecycle","href":"/nodes/architecture/license-lifecycle"},{"title":"NFT rewards","href":"/nodes/architecture/nft-rewards"},{"title":"EVM integration","href":"/nodes/architecture/evm-integration"}]},{"group":"Node Setup","pages":[{"title":"Validator setup checklist","href":"/nodes/node-setup/validator-checklist"},{"title":"Prerequisites","href":"/nodes/node-setup/node-setup"},{"title":"Installation","href":"/nodes/node-setup/installation"},{"title":"License setup","href":"/nodes/node-setup/license-setup"},{"title":"Production deployment","href":"/nodes/node-setup/configuration"},{"title":"Node upgrades","href":"/nodes/node-setup/upgrades"},{"title":"Node troubleshooting","href":"/nodes/node-setup/troubleshooting"}]},{"group":"operations","expanded":false,"pages":[{"title":"Monitoring","href":"/nodes/operations/monitoring"},{"title":"Security hardening","href":"/nodes/operations/security-hardening"},{"title":"Backups and restore","href":"/nodes/operations/backups-and-restore"},{"title":"Incident response","href":"/nodes/operations/incident-response"}]},{"group":"Validator Lifecycle","expanded":false,"pages":[{"title":"Register validator","href":"/nodes/validator-lifecycle/register-validator"},{"title":"Consensus key rotation","href":"/nodes/validator-lifecycle/key-rotation"},{"title":"Pause and resume a validator","href":"/nodes/validator-lifecycle/pause-resume"},{"title":"Remove validator node","href":"/nodes/validator-lifecycle/remove-validator"}]}]},{"group":"Validator Program","expanded":false,"pages":[{"title":"Validator program overview","href":"/validator-program/overview"},{"title":"Autheo node sale brochure","href":"/validator-program/brochure"},{"title":"Hosting a validator node","href":"/validator-program/hosting-options"},{"title":"Self-hosting guide","href":"/validator-program/self-hosting-guide"},{"title":"Activation and timeline","href":"/validator-program/activation-and-timeline"},{"title":"Validator economics","href":"/validator-program/economics"},{"title":"Compliance","href":"/validator-program/compliance"}]},{"group":"Token","expanded":false,"pages":[{"title":"THEO token overview","href":"/token/overview"},{"title":"Utility and fees","href":"/token/utility-and-fees"},{"title":"Staking and rewards","href":"/token/staking-and-rewards"},{"title":"Allocations and emissions","href":"/token/allocations-and-emissions"},{"title":"Vesting schedules","href":"/token/vesting"},{"title":"Buying and trading THEO on Hydrex","href":"/token/buying-and-trading-theo"},{"title":"Risks and disclaimers","href":"/token/risks-and-disclaimers"},{"title":"Tokenomics paper v1.3","href":"/token/tokenomics-paper-v1-2"}]}]},{"group":"SDKs","pages":[{"title":"SDKs overview","hidden":true,"href":"/sdks/overview"},{"group":"Go","expanded":false,"pages":[{"title":"Go SDK - Overview","href":"/sdks/go/overview"},{"title":"Install","href":"/sdks/go/install"},{"title":"Quickstart","href":"/sdks/go/quickstart"},{"title":"Methods","href":"/sdks/go/methods"},{"title":"Reference","href":"/sdks/go/reference"},{"group":"Examples","expanded":false,"pages":[{"title":"Contract interaction","href":"/sdks/go/examples/contract-interaction"},{"title":"Query balance","href":"/sdks/go/examples/query-balance"},{"title":"Send transaction","href":"/sdks/go/examples/send-transaction"}]}]}]},{"group":"Papers","pages":[{"title":"Papers and research","href":"/papers/overview"},{"group":"Litepaper","expanded":false,"pages":[{"title":"Litepaper V1.5","href":"/papers/litepaper/v1-5"}]}]}]},"title":"Security best practices - Autheo documentation","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":[],"chunks":[]}