Control a smart account with standard Ethereum keys.
Choose ECDSA for server wallets, agents, existing wallet clients, or any integration that already produces Ethereum signatures. You are responsible for securing and recovering the key.
For EVM, use multisig when several ECDSA owners should control one account. Use multi-factor authentication when you need different validator types, such as ECDSA and passkeys.
An authorized all or manageAuthority role can add or remove one non-root key per transaction. Continue the Solana setup above with a separate local account additionalOwner (or pass its secp256k1 public key, never its EVM address):
allButManageAuthority: spend and run instructions, but not change authorities.
all: spend, run instructions, and manage non-root authorities.
manageAuthority: manage non-root authorities, but not spend or run instructions. It can grant all to another key, so it still confers takeover power.
Send one change through the shared transaction lifecycle. Authority changes are always sponsored, including rent for a new role; do not add source or sponsored fields. Settle any previous submission before retrying. getAuthorityStatus(addAuthority) returns applied only for the exact requested permission; conflict is not ready.The root is permanent. Removing the root, a missing key, or the last authority-management role is refused. Multiple roles are not threshold multisig or MFA. Keep local signer configuration synchronized with the roles onchain; see Solana support.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Rhinestone","colors":{"primary":"#4f41ef","light":"#8479ff","dark":"#3428d1"},"logo":{"light":"https://mintcdn.com/rhinestone/IVpDy9zUkncYAe5u/logo/light.svg?fit=max\u0026auto=format\u0026n=IVpDy9zUkncYAe5u\u0026q=85\u0026s=6868a5854576ff60d371d5fdc0ae55c9","dark":"https://mintcdn.com/rhinestone/IVpDy9zUkncYAe5u/logo/dark.svg?fit=max\u0026auto=format\u0026n=IVpDy9zUkncYAe5u\u0026q=85\u0026s=2f9bff4fef6da993b8782b8e5d7357c5"},"favicon":"https://mintcdn.com/rhinestone/BVnq0VV8MigHINpS/favicon.svg?fit=max\u0026auto=format\u0026n=BVnq0VV8MigHINpS\u0026q=85\u0026s=25439e41b789b8369c52fa15ceae2644","appearance":{"default":"dark","strict":true},"background":{"color":{"dark":"#0C0C0C"}},"navbar":{"links":[{"href":"https://dashboard.rhinestone.dev","label":"Dashboard"},{"href":"https://github.com/rhinestonewtf","label":"GitHub"}]},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","claude","chatgpt"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Create API Key","icon":"key","href":"https://tally.so/r/wg22x4"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"rhinestone","hasAudioNarration":false,"actualSubdomain":"rhinestone","customDomains":["docs.rhinestone.dev"],"gitSource":{"type":"github","owner":"rhinestonewtf","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aeb4295a60f76c94453464a","collectionId":"7618524b-8144-4f55-a620-58d79fbeddf2","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeb4295a60f76c94453464a"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeb4295a60f76c94453464a","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"Wallets","count":153},{"language":"default","tag":"Custom signer","count":107},{"language":"default","tag":"Deposits","count":88},{"language":"default","tag":"SDK reference","count":74},{"language":"default","tag":"API Reference","count":67},{"language":"default","tag":"Transactions","count":30},{"language":"default","tag":"Account","count":28},{"language":"default","tag":"Overview","count":25},{"language":"default","tag":"Actions","count":25},{"language":"default","tag":"Session keys","count":21}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--background: #0C0C0C}.vm-code-group{--vm-menu-bg: #fff;--vm-menu-border: rgb(0 0 0 / 10%);--vm-hover: rgb(0 0 0 / 5%);margin:1.5rem 0;border:1px solid #404045;border-radius:12px}.dark .vm-code-group{--vm-menu-bg: #171717;--vm-menu-border: rgb(255 255 255 / 10%);--vm-hover: rgb(255 255 255 / 7%)}.vm-code-group-header{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;padding:0.375rem 0.75rem;border-bottom:1px solid #404045;font-size:0.8125rem}.vm-code-caption{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:0.65}.vm-code-selector{position:relative;flex:none}.vm-code-trigger,.vm-code-option{display:flex;align-items:center;gap:0.5rem;min-height:32px;padding:0.375rem 0.5rem;border:0;border-radius:6px;background:transparent;color:inherit;font:inherit;line-height:1.25;cursor:pointer}.vm-code-trigger:hover,.vm-code-trigger[aria-expanded=\"true\"],.vm-code-option:hover,.vm-code-option:focus{background:var(--vm-hover)}.vm-code-trigger:focus-visible,.vm-code-option:focus-visible{outline:2px solid #8b7bf7;outline-offset:2px}.vm-code-group .vm-code-icon{display:block;flex:none;width:16px;height:16px;margin:0;border-radius:0}.vm-code-chevron{margin-left:0.125rem;opacity:0.55;transition:transform 150ms ease}.vm-code-trigger[aria-expanded=\"true\"] .vm-code-chevron{transform:rotate(180deg)}.vm-code-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:156px;padding:4px;border:1px solid var(--vm-menu-border);border-radius:10px;background:var(--vm-menu-bg);box-shadow:0 8px 24px rgb(0 0 0 / 18%)}.vm-code-option{width:100%;text-align:left}.vm-code-check{margin-left:auto;opacity:0.65}@media (pointer: coarse){.vm-code-trigger,.vm-code-option{min-height:44px}}@media (prefers-reduced-motion: reduce){.vm-code-chevron{transition:none}}.vm-code-group-panel>*{margin:0!important;border:0!important;border-radius:0 0 12px 12px;box-shadow:none!important}.vm-code-group-panel[hidden]{display:none}.prose table{display:table}table{border-collapse:separate;border-spacing:0;border:1px solid #404045;border-radius:8px;width:fit-content!important}table th,table td{border-right:1px solid #404045;border-bottom:1px solid #404045;padding:12px 16px!important}table th:last-child,table td:last-child{border-right:none}table tr:last-child td{border-bottom:none}table th{background-color:#201E2C}table th:first-child{border-radius:8px 0 0 0}table th:last-child{border-radius:0 8px 0 0}[data-component-name=\"mermaid-controls-wrapper\"]{display:none!important}.mermaid svg .actor{fill:#17132E!important;stroke:#373352!important}.mermaid svg rect.actor{rx:6;ry:6}.mermaid svg text.actor>tspan{fill:#D3CFF7!important}.mermaid svg .actor-line{stroke:#464359!important;stroke-width:1!important}.mermaid svg .messageLine0,.mermaid svg .messageLine1{stroke:#464359!important;stroke-width:1.5!important}.mermaid svg #arrowhead path,.mermaid svg [id$=\"-arrowhead\"] path{fill:#464359!important;stroke:#464359!important}.mermaid svg #crosshead path,.mermaid svg [id$=\"-crosshead\"] path{stroke:#464359!important}.mermaid svg .messageText{fill:#C7C6CC!important}.mermaid svg .activation0,.mermaid svg .activation1,.mermaid svg .activation2{fill:#17132E!important;stroke:#373352!important}.mermaid svg .note{fill:#17132E!important;stroke:#373352!important}.mermaid svg .noteText,.mermaid svg .noteText>tspan{fill:#C7C6CC!important}.mermaid svg .loopText,.mermaid svg .loopText>tspan{fill:#C7C6CC!important}.mermaid svg .loopLine{stroke:#373352!important}.mermaid svg .labelBox{fill:#17132E!important;stroke:#373352!important}.mermaid svg .labelText,.mermaid svg .labelText>tspan{fill:#C7C6CC!important}.mermaid svg .sequenceNumber{fill:#D3CFF7!important}.mermaid svg .node rect,.mermaid svg .node circle,.mermaid svg .node ellipse,.mermaid svg .node polygon,.mermaid svg .node path{fill:#17132E!important;stroke:#373352!important}.mermaid svg .nodeLabel,.mermaid svg .node .label{color:#D3CFF7!important;fill:#D3CFF7!important}.mermaid svg .flowchart-link{stroke:#464359!important}.mermaid svg .edgeLabel,.mermaid svg .edge-label{color:#C7C6CC!important;fill:#C7C6CC!important}.mermaid .labelBkg,.mermaid .labelBkg *{background:transparent!important}.mermaid svg .marker{fill:#464359!important;stroke:#464359!important}.dark #sidebar [data-active=\"true\"]{background-color:#141414!important;border-radius:6px}.deposit-demo{container-type:inline-size}.deposit-demo-loading{position:absolute;inset:0;display:grid;place-items:center;margin:0}.deposit-demo-stage:has(iframe[data-ready=\"true\"]) .deposit-demo-loading{visibility:hidden}@container (max-width: 411px){.deposit-demo-stage{--deposit-demo-height: 629px}}"}],"page":{"pagePath":"wallets/custom-signer/account-setup/native-signers/ecdsa","slug":"/wallets/custom-signer/account-setup/native-signers/ecdsa","pageMetadata":{"title":"ECDSA","description":"Control a smart account with standard Ethereum keys.","href":"/wallets/custom-signer/account-setup/native-signers/ecdsa"},"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: \"Control a smart account with standard Ethereum keys.\"\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];const VmCodeGroup=({children,caption,label=`Virtual machine`})=>{const[vm,setVm]=useState(`evm`);const[open,setOpen]=useState(false);const selectorRef=useRef(null);const triggerRef=useRef(null);const menuRef=useRef(null);const focusIndex=useRef(0);const options=[{value:`evm`,title:`EVM`,icon:`/images/networks/ethereum.svg`},{value:`solana`,title:`Solana`,icon:`/images/networks/solana.svg`}];if(typeof caption!==`string`||caption.trim()===``){throw new Error(`VmCodeGroup requires a non-empty caption.`)}const selected=options.find(option=>option.value===vm);const blocks=(Array.isArray(children)?children:[children]).filter(child=>typeof child!==`string`||child.trim()!==``);if(blocks.length!==2||!blocks.every(block=>typeof block?.props?.language===`string`\u0026\u0026block.props.numberOfLines!==undefined)||!options.every(option=>blocks.filter(block=>block.props.filename===option.title).length===1)){throw new Error(`VmCodeGroup requires two fenced code blocks titled EVM and Solana, with no other content.`)}useEffect(()=>{const path=window.location.pathname;const selection=window.__rhinestoneDocsVm;if(selection?.path===path)setVm(selection.vm);const onChange=event=>{if(event.detail.path===path){setVm(event.detail.vm);setOpen(false)}};window.addEventListener(`rhinestone-docs-vm`,onChange);return()=>window.removeEventListener(`rhinestone-docs-vm`,onChange)},[]);useEffect(()=>{if(!open)return;menuRef.current?.querySelectorAll(`button`)[focusIndex.current]?.focus();const dismiss=event=>{if(!selectorRef.current?.contains(event.target))setOpen(false)};document.addEventListener(`pointerdown`,dismiss);return()=>document.removeEventListener(`pointerdown`,dismiss)},[open]);const selectVm=value=>{const selection={path:window.location.pathname,vm:value};window.__rhinestoneDocsVm=selection;window.dispatchEvent(new CustomEvent(`rhinestone-docs-vm`,{detail:selection}));triggerRef.current?.focus()};const openMenu=index=>{focusIndex.current=index;setOpen(true);menuRef.current?.querySelectorAll(`button`)[index]?.focus()};const handleMenuKey=event=>{const buttons=Array.from(menuRef.current.querySelectorAll(`button`));const current=buttons.indexOf(document.activeElement);let next;if(event.key===`ArrowDown`)next=(current+1)%buttons.length;if(event.key===`ArrowUp`)next=(current+buttons.length-1)%buttons.length;if(event.key===`Home`||event.key.toLowerCase()===`e`)next=0;if(event.key===`End`||event.key.toLowerCase()===`s`)next=buttons.length-1;if(next!==undefined){event.preventDefault();buttons[next].focus()}if(event.key===`Tab`)setOpen(false)};return _jsxs(`div`,{className:`vm-code-group`,children:[_jsxs(`div`,{className:`vm-code-group-header`,children:[_jsx(`span`,{className:`vm-code-caption`,title:caption,children:caption}),_jsxs(`div`,{className:`vm-code-selector`,ref:selectorRef,onBlur:event=>{if(!event.currentTarget.contains(event.relatedTarget))setOpen(false)},onKeyDown:event=>{if(event.key===`Escape`\u0026\u0026open){event.preventDefault();setOpen(false);triggerRef.current?.focus()}},children:[_jsxs(`button`,{type:`button`,className:`vm-code-trigger`,ref:triggerRef,\"aria-label\":`${label}: ${selected.title}`,\"aria-haspopup\":`menu`,\"aria-expanded\":open,onClick:()=>open?setOpen(false):openMenu(options.indexOf(selected)),onKeyDown:event=>{if(event.key===`ArrowDown`||event.key===`ArrowUp`){event.preventDefault();openMenu(event.key===`ArrowDown`?0:options.length-1)}},children:[_jsx(`img`,{className:`vm-code-icon`,src:selected.icon,alt:``,width:`16`,height:`16`}),_jsx(`span`,{children:selected.title}),_jsx(`svg`,{className:`vm-code-chevron`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,\"aria-hidden\":`true`,children:_jsx(`path`,{d:`m7 10 5 5 5-5`,stroke:`currentColor`,strokeWidth:`1.75`,strokeLinecap:`round`,strokeLinejoin:`round`})})]}),open\u0026\u0026_jsx(`div`,{className:`vm-code-menu`,role:`menu`,\"aria-label\":label,ref:menuRef,onKeyDown:handleMenuKey,children:options.map(option=>_jsxs(`button`,{type:`button`,role:`menuitemradio`,\"aria-checked\":vm===option.value,tabIndex:-1,className:`vm-code-option`,onClick:()=>selectVm(option.value),children:[_jsx(`img`,{className:`vm-code-icon`,src:option.icon,alt:``,width:`16`,height:`16`}),_jsx(`span`,{children:option.title}),vm===option.value\u0026\u0026_jsx(`svg`,{className:`vm-code-check`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,\"aria-hidden\":`true`,children:_jsx(`path`,{d:`m5 12 4 4L19 6`,stroke:`currentColor`,strokeWidth:`1.75`,strokeLinecap:`round`,strokeLinejoin:`round`})})]},option.value))})]})]}),options.map(option=>{const block=blocks.find(block=>block.props.filename===option.title);const CodeBlock=block.type;return _jsx(`div`,{className:`vm-code-group-panel`,\"data-vm\":option.value,hidden:option.value!==vm,children:_jsx(CodeBlock,{...block.props,filename:undefined})},option.value)})]})};function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning,_MdxComponentBoundary}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Choose ECDSA for server wallets, agents, existing wallet clients, or any integration that already produces Ethereum signatures. You are responsible for securing and recovering the key.`}),`\n`,_jsx(Heading,{level:`2`,id:`configure-an-ecdsa-owner`,children:`Configure an ECDSA owner`}),`\n`,_jsx(_components.p,{children:`Initialize the SDK and a viem secp256k1 account once for either VM:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`16`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`RhinestoneSDK`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '@rhinestone/sdk'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Hex`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'viem'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`privateKeyToAccount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'viem/accounts'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` apiKey`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`RHINESTONE_API_KEY`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` privateKey`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`OWNER_PRIVATE_KEY`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_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\":`#9CDCFE`},children:`apiKey`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ||`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`privateKey`}),_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:` throw`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'RHINESTONE_API_KEY and OWNER_PRIVATE_KEY are required'`}),_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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` owner`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` privateKeyToAccount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`privateKey`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` as`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Hex`}),_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:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` rhinestone`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` RhinestoneSDK`}),_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\":`#9CDCFE`},children:` auth:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`mode:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'apiKey'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`apiKey`}),_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`]})})}),`\n`,_jsx(_components.p,{children:`Use the signer as the account owner:`}),`\n`,_jsx(_MdxComponentBoundary,{name:`VmCodeGroup`,children:_jsxs(VmCodeGroup,{caption:`Configure an ECDSA owner`,children:[_jsx(CodeBlock,{filename:`EVM`,numberOfLines:`9`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Defaults to the Ownable Validator with a threshold of one.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` account`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` rhinestone`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createAccount`}),_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\":`#9CDCFE`},children:` evm:`}),_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\":`#9CDCFE`},children:` owners:`}),_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\":`#9CDCFE`},children:` type:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'ecdsa'`}),_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\":`#9CDCFE`},children:` accounts:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`owner`}),_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`,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`]})})}),_jsx(CodeBlock,{filename:`Solana`,numberOfLines:`8`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`createSolanaSwigId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '@rhinestone/sdk/solana'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Persist id and swig; deploy the Swig before funding its wallet.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Deployment requires the owner's secp256k1 public key.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`swig`}),_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:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` createSolanaSwigId`}),_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:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` account`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` rhinestone`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createAccount`}),_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\":`#9CDCFE`},children:` solana:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`swig`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`owner:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`type:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'ecdsa'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`account:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` owner`}),_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`,_jsxs(_components.p,{children:[`Follow `,_jsx(_components.a,{href:`/wallets/custom-signer/account-setup/create-an-account`,children:`account configuration`}),` for deployment and restoration. For remote signing requirements, see `,_jsx(_components.a,{href:`/wallets/custom-signer/signing/custom-signing`,children:`Custom signing`}),`.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Never expose a private key in client code, logs, or source control. Use a key management system for production server signers.`})}),`\n`,_jsx(Heading,{level:`2`,id:`use-more-than-one-owner`,children:`Use more than one owner`}),`\n`,_jsxs(_components.p,{children:[`For EVM, use `,_jsx(_components.a,{href:`/wallets/custom-signer/account-setup/native-signers/multisig`,children:`multisig`}),` when several ECDSA owners should control one account. Use `,_jsx(_components.a,{href:`/wallets/custom-signer/account-setup/native-signers/multi-factor-authentication`,children:`multi-factor authentication`}),` when you need different validator types, such as ECDSA and passkeys.`]}),`\n`,_jsx(Heading,{level:`2`,id:`manage-evm-owners`,children:`Manage EVM owners`}),`\n`,_jsx(_components.p,{children:`Use the SDK actions to change an account after deployment:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/wallets/custom-signer/sdk-reference/actions/ecdsa/add-owner`,children:_jsx(_components.code,{children:`addOwner`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/wallets/custom-signer/sdk-reference/actions/ecdsa/remove-owner`,children:_jsx(_components.code,{children:`removeOwner`})})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/wallets/custom-signer/sdk-reference/actions/ecdsa/change-threshold`,children:_jsx(_components.code,{children:`changeThreshold`})})}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`manage-solana-authorities`,children:`Manage Solana authorities`}),`\n`,_jsxs(_components.p,{children:[`An authorized `,_jsx(_components.code,{children:`all`}),` or `,_jsx(_components.code,{children:`manageAuthority`}),` role can add or remove one non-root key per transaction. Continue the Solana setup above with a separate local account `,_jsx(_components.code,{children:`additionalOwner`}),` (or pass its secp256k1 public key, never its EVM address):`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`addEcdsaKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`removeEcdsaKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`solanaDevnet`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '@rhinestone/sdk/solana'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` addAuthority`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},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\":`#9CDCFE`},children:` destination:`}),_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\":`#9CDCFE`},children:` chain:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` solanaDevnet`}),_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\":`#9CDCFE`},children:` authority:`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` addEcdsaKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`additionalOwner`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`permission:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'allButManageAuthority'`}),_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`,children:_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:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` removeAuthority`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},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\":`#9CDCFE`},children:` destination:`}),_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\":`#9CDCFE`},children:` chain:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` solanaDevnet`}),_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\":`#9CDCFE`},children:` authority:`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` removeEcdsaKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`additionalOwner`}),_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`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Choose permissions explicitly:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`allButManageAuthority`}),`: spend and run instructions, but not change authorities.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`all`}),`: spend, run instructions, and manage non-root authorities.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`manageAuthority`}),`: manage non-root authorities, but not spend or run instructions. It can grant `,_jsx(_components.code,{children:`all`}),` to another key, so it still confers takeover power.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Send one change through the `,_jsx(_components.a,{href:`/transactions/multichain/send-a-transaction`,children:`shared transaction lifecycle`}),`. Authority changes are always sponsored, including rent for a new role; do not add `,_jsx(_components.code,{children:`source`}),` or `,_jsx(_components.code,{children:`sponsored`}),` fields. Settle any previous submission before retrying. `,_jsx(_components.code,{children:`getAuthorityStatus(addAuthority)`}),` returns `,_jsx(_components.code,{children:`applied`}),` only for the exact requested permission; `,_jsx(_components.code,{children:`conflict`}),` is not ready.`]}),`\n`,_jsxs(_components.p,{children:[`The root is permanent. Removing the root, a missing key, or the last authority-management role is refused. Multiple roles are not threshold multisig or MFA. Keep local signer configuration synchronized with the roles onchain; see `,_jsx(_components.a,{href:`/wallets/custom-signer/solana-support`,children:`Solana support`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{VmCodeGroup,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":"ECDSA","description":"Control a smart account with standard Ethereum keys.","href":"/wallets/custom-signer/account-setup/native-signers/ecdsa"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[147,4921,")=>null;function _cr"]]},"mdxExtracts":{"tableOfContents":[{"title":"Configure an ECDSA owner","slug":"configure-an-ecdsa-owner","depth":2,"children":[]},{"title":"Use more than one owner","slug":"use-more-than-one-owner","depth":2,"children":[]},{"title":"Manage EVM owners","slug":"manage-evm-owners","depth":2,"children":[]},{"title":"Manage Solana authorities","slug":"manage-solana-authorities","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"rhinestone","siteName":"Rhinestone","title":"ECDSA - Rhinestone","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-13T17:05:39.327Z","originalFileLocation":"wallets/custom-signer/account-setup/native-signers/ecdsa.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Control a smart account with standard Ethereum keys.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Rhinestone\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rhinestone/3aadr-awyf35tysK/_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/rhinestone/3aadr-awyf35tysK/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rhinestone/3aadr-awyf35tysK/_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/rhinestone/3aadr-awyf35tysK/_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/rhinestone/3aadr-awyf35tysK/_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/rhinestone/3aadr-awyf35tysK/_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/rhinestone/3aadr-awyf35tysK/_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/rhinestone/3aadr-awyf35tysK/_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/rhinestone/3aadr-awyf35tysK/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"ECDSA - Rhinestone\">\u003cmeta data-mint-head property=\"og:description\" content=\"Control a smart account with standard Ethereum keys.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Rhinestone\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.rhinestone.dev/wallets/custom-signer/account-setup/native-signers/ecdsa\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://rhinestone.mintlify.site/_mintlify/api/og/v2?division=Native+signers\u0026amp;title=ECDSA\u0026amp;description=Control+a+smart+account+with+standard+Ethereum+keys.\u0026amp;theme=480304d2cd15a3be6f477401\u0026amp;signature=32326bc19be84f618a824ab997848acbfcd6436b3cdedb193b30a3cccc9285f2\">\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=\"ECDSA - Rhinestone\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Control a smart account with standard Ethereum keys.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://rhinestone.mintlify.site/_mintlify/api/og/v2?division=Native+signers\u0026amp;title=ECDSA\u0026amp;description=Control+a+smart+account+with+standard+Ethereum+keys.\u0026amp;theme=480304d2cd15a3be6f477401\u0026amp;signature=32326bc19be84f618a824ab997848acbfcd6436b3cdedb193b30a3cccc9285f2\">\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/rhinestone/3aadr-awyf35tysK/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Rhinestone\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4f41ef\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.rhinestone.dev/wallets/custom-signer/account-setup/native-signers/ecdsa\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/wallets/custom-signer/account-setup/native-signers/ecdsa.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.rhinestone.dev/#organization\",\"name\":\"Rhinestone\",\"url\":\"https://docs.rhinestone.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/rhinestone/IVpDy9zUkncYAe5u/logo/light.svg?fit=max\u0026auto=format\u0026n=IVpDy9zUkncYAe5u\u0026q=85\u0026s=6868a5854576ff60d371d5fdc0ae55c9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.rhinestone.dev#website\",\"name\":\"Rhinestone\",\"url\":\"https://docs.rhinestone.dev\",\"publisher\":{\"@id\":\"https://docs.rhinestone.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.rhinestone.dev/wallets/custom-signer/account-setup/native-signers/ecdsa#webpage\",\"url\":\"https://docs.rhinestone.dev/wallets/custom-signer/account-setup/native-signers/ecdsa\",\"name\":\"ECDSA\",\"description\":\"Control a smart account with standard Ethereum keys.\",\"dateModified\":\"2026-10-13T17:05:39.327Z\",\"isPartOf\":{\"@id\":\"https://docs.rhinestone.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.rhinestone.dev/wallets/custom-signer/account-setup/native-signers/ecdsa#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.rhinestone.dev/wallets/custom-signer/account-setup/native-signers/ecdsa#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Account setup\",\"item\":\"https://docs.rhinestone.dev/wallets/custom-signer/account-setup/create-an-account\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ECDSA\",\"item\":\"https://docs.rhinestone.dev/wallets/custom-signer/account-setup/native-signers/ecdsa\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.rhinestone.dev/wallets/custom-signer/account-setup/native-signers/ecdsa#article\",\"headline\":\"ECDSA\",\"name\":\"ECDSA\",\"description\":\"Control a smart account with standard Ethereum keys.\",\"url\":\"https://docs.rhinestone.dev/wallets/custom-signer/account-setup/native-signers/ecdsa\",\"mainEntityOfPage\":{\"@id\":\"https://docs.rhinestone.dev/wallets/custom-signer/account-setup/native-signers/ecdsa#webpage\"},\"dateModified\":\"2026-10-13T17:05:39.327Z\",\"publisher\":{\"@id\":\"https://docs.rhinestone.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.rhinestone.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Rhinestone\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Rhinestone","nav":{"global":{"anchors":[{"anchor":"Create API Key","icon":"key","href":"https://tally.so/r/wg22x4"}]},"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/home/introduction"}]},{"tab":"Wallets","menu":[{"item":"Overview","pages":[{"title":"Overview","href":"/wallets/overview"}]},{"item":"Embedded wallets","pages":[{"title":"Embedded wallets","href":"/wallets/embedded-wallets/overview"}]},{"item":"Session keys","pages":[{"title":"Session keys","href":"/wallets/session-keys/overview"}]},{"item":"Recovery","pages":[{"title":"Recovery","href":"/wallets/recovery/overview"}]},{"item":"Custom signer","pages":[{"title":"Custom signer","sidebarTitle":"Overview","href":"/wallets/custom-signer/overview"},{"title":"Quickstart","href":"/wallets/custom-signer/quickstart"},{"title":"Solana support","href":"/wallets/custom-signer/solana-support"},{"group":"Account setup","public":true,"pages":[{"title":"Create an account","href":"/wallets/custom-signer/account-setup/create-an-account"},{"title":"Choose a signer","description":"Choose how users authenticate and control their smart accounts.","href":"/wallets/custom-signer/account-setup/choose-a-signer"},{"group":"Native signers","public":true,"pages":[{"title":"ECDSA","href":"/wallets/custom-signer/account-setup/native-signers/ecdsa"},{"title":"Passkeys","description":"Control a smart account with WebAuthn credentials and device biometrics.","href":"/wallets/custom-signer/account-setup/native-signers/passkeys"},{"title":"Multisig","href":"/wallets/custom-signer/account-setup/native-signers/multisig"},{"title":"Multi-factor authentication","href":"/wallets/custom-signer/account-setup/native-signers/multi-factor-authentication"}]},{"group":"Embedded wallet signers","public":true,"pages":[{"title":"Privy","href":"/wallets/custom-signer/account-setup/embedded-wallet-signers/privy"},{"title":"Dynamic","href":"/wallets/custom-signer/account-setup/embedded-wallet-signers/dynamic"},{"title":"Para","href":"/wallets/custom-signer/account-setup/embedded-wallet-signers/para"},{"title":"Magic","href":"/wallets/custom-signer/account-setup/embedded-wallet-signers/magic"},{"title":"Turnkey","href":"/wallets/custom-signer/account-setup/embedded-wallet-signers/turnkey"},{"title":"Openfort","href":"/wallets/custom-signer/account-setup/embedded-wallet-signers/openfort"}]},{"group":"External wallet signers","public":true,"pages":[{"title":"External wallet signers","href":"/wallets/custom-signer/account-setup/external-wallet-signers"}]},{"group":"Account types and providers","public":true,"pages":[{"title":"EOA","href":"/wallets/custom-signer/account-setup/account-types-and-providers/eoa"},{"title":"EIP-7702","href":"/wallets/custom-signer/account-setup/account-types-and-providers/eip-7702"},{"title":"Smart account providers","href":"/wallets/custom-signer/account-setup/account-types-and-providers/smart-account-providers"},{"title":"Bring your own account","href":"/wallets/custom-signer/account-setup/account-types-and-providers/bring-your-own-account"}]}]},{"group":"Recovery","public":true,"pages":[{"title":"Set up recovery","href":"/wallets/custom-signer/recovery/set-up"},{"title":"Recover an account","href":"/wallets/custom-signer/recovery/recover-an-account"}]},{"group":"Signing","public":true,"pages":[{"title":"Message signing","href":"/wallets/custom-signer/signing/message-and-typed-data"},{"title":"Custom signing","href":"/wallets/custom-signer/signing/custom-signing"}]},{"group":"Configuration","public":true,"pages":[{"group":"Account types","public":true,"pages":[{"title":"EOA","href":"/wallets/custom-signer/configuration/account-types/eoa"},{"title":"EIP-7702","href":"/wallets/custom-signer/configuration/account-types/eip-7702"}]},{"title":"Smart account providers","href":"/wallets/custom-signer/configuration/smart-account-providers"},{"title":"Bring your own account","href":"/wallets/custom-signer/configuration/bring-your-own-account"},{"title":"JSON-RPC providers","href":"/wallets/custom-signer/configuration/json-rpc-providers"},{"title":"ERC-4337","href":"/wallets/custom-signer/configuration/erc-4337"}]},{"group":"Integration","public":true,"pages":[{"title":"Migration guide","href":"/wallets/custom-signer/integration/migration-guide"},{"title":"Security","href":"/wallets/custom-signer/integration/security"}]},{"title":"Troubleshooting","href":"/wallets/custom-signer/troubleshooting"},{"group":"SDK reference","pages":[{"group":"RhinestoneSDK","pages":[{"title":"RhinestoneSDK","href":"/wallets/custom-signer/sdk-reference/rhinestone-sdk/rhinestone-sdk"},{"title":"createAccount","href":"/wallets/custom-signer/sdk-reference/rhinestone-sdk/create-account"},{"title":"getIntentStatus","href":"/wallets/custom-signer/sdk-reference/rhinestone-sdk/get-intent-status"},{"title":"splitIntents","href":"/wallets/custom-signer/sdk-reference/rhinestone-sdk/split-intents"},{"title":"getAppFeeBalances","href":"/wallets/custom-signer/sdk-reference/rhinestone-sdk/get-app-fee-balances"},{"title":"createSession","href":"/wallets/custom-signer/sdk-reference/rhinestone-sdk/create-session"},{"title":"validateSession","href":"/wallets/custom-signer/sdk-reference/rhinestone-sdk/validate-session"}]},{"group":"Account","pages":[{"group":"Deployment","pages":[{"title":"deploy","href":"/wallets/custom-signer/sdk-reference/account/deployment/deploy"},{"title":"deploy (Solana)","href":"/wallets/custom-signer/sdk-reference/account/deployment/deploy-solana"},{"title":"isDeployed","href":"/wallets/custom-signer/sdk-reference/account/deployment/is-deployed"},{"title":"setup","href":"/wallets/custom-signer/sdk-reference/account/deployment/setup"},{"title":"getInitData","href":"/wallets/custom-signer/sdk-reference/account/deployment/get-init-data"},{"title":"signEip7702InitData","href":"/wallets/custom-signer/sdk-reference/account/deployment/sign-eip7702-init-data"}]},{"group":"Transactions","pages":[{"title":"prepareTransaction","href":"/wallets/custom-signer/sdk-reference/account/transactions/prepare-transaction"},{"title":"getTransactionMessages","href":"/wallets/custom-signer/sdk-reference/account/transactions/get-transaction-messages"},{"title":"signTransaction","href":"/wallets/custom-signer/sdk-reference/account/transactions/sign-transaction"},{"title":"assembleTransaction","href":"/wallets/custom-signer/sdk-reference/account/transactions/assemble-transaction"},{"title":"signAuthorizations","href":"/wallets/custom-signer/sdk-reference/account/transactions/sign-authorizations"},{"title":"signIntent","href":"/wallets/custom-signer/sdk-reference/account/transactions/sign-intent"},{"title":"submitTransaction","href":"/wallets/custom-signer/sdk-reference/account/transactions/submit-transaction"}]},{"group":"User operations","pages":[{"title":"prepareUserOperation","href":"/wallets/custom-signer/sdk-reference/account/user-operations/prepare-user-operation"},{"title":"signUserOperation","href":"/wallets/custom-signer/sdk-reference/account/user-operations/sign-user-operation"},{"title":"submitUserOperation","href":"/wallets/custom-signer/sdk-reference/account/user-operations/submit-user-operation"},{"title":"sendUserOperation","href":"/wallets/custom-signer/sdk-reference/account/user-operations/send-user-operation"}]},{"group":"Signing","pages":[{"title":"signMessage","href":"/wallets/custom-signer/sdk-reference/account/signing/sign-message"},{"title":"signTypedData","href":"/wallets/custom-signer/sdk-reference/account/signing/sign-typed-data"}]},{"group":"Execution","pages":[{"title":"waitForExecution","href":"/wallets/custom-signer/sdk-reference/account/execution/wait-for-execution"}]},{"group":"Reads","pages":[{"title":"getAddress","href":"/wallets/custom-signer/sdk-reference/account/reads/get-address"},{"title":"getPortfolio","href":"/wallets/custom-signer/sdk-reference/account/reads/get-portfolio"},{"title":"getOwners","href":"/wallets/custom-signer/sdk-reference/account/reads/get-owners"},{"title":"getValidators","href":"/wallets/custom-signer/sdk-reference/account/reads/get-validators"},{"title":"getExecutors","href":"/wallets/custom-signer/sdk-reference/account/reads/get-executors"}]},{"group":"Smart sessions","pages":[{"title":"getSessionDetails","href":"/wallets/custom-signer/sdk-reference/account/smart-sessions/get-session-details"},{"title":"isSessionEnabled","href":"/wallets/custom-signer/sdk-reference/account/smart-sessions/is-session-enabled"},{"title":"signEnableSession","href":"/wallets/custom-signer/sdk-reference/account/smart-sessions/sign-enable-session"}]}]},{"group":"Actions","pages":[{"group":"ECDSA","pages":[{"title":"enable","href":"/wallets/custom-signer/sdk-reference/actions/ecdsa/enable"},{"title":"disable","href":"/wallets/custom-signer/sdk-reference/actions/ecdsa/disable"},{"title":"addOwner","href":"/wallets/custom-signer/sdk-reference/actions/ecdsa/add-owner"},{"title":"removeOwner","href":"/wallets/custom-signer/sdk-reference/actions/ecdsa/remove-owner"},{"title":"changeThreshold","href":"/wallets/custom-signer/sdk-reference/actions/ecdsa/change-threshold"}]},{"group":"Passkeys","pages":[{"title":"enable","href":"/wallets/custom-signer/sdk-reference/actions/passkeys/enable"},{"title":"disable","href":"/wallets/custom-signer/sdk-reference/actions/passkeys/disable"},{"title":"addOwner","href":"/wallets/custom-signer/sdk-reference/actions/passkeys/add-owner"},{"title":"removeOwner","href":"/wallets/custom-signer/sdk-reference/actions/passkeys/remove-owner"},{"title":"changeThreshold","href":"/wallets/custom-signer/sdk-reference/actions/passkeys/change-threshold"}]},{"group":"Recovery","pages":[{"title":"enable","href":"/wallets/custom-signer/sdk-reference/actions/recovery/enable"},{"title":"recoverEcdsaOwnership","href":"/wallets/custom-signer/sdk-reference/actions/recovery/recover-ecdsa-ownership"},{"title":"recoverPasskeyOwnership","href":"/wallets/custom-signer/sdk-reference/actions/recovery/recover-passkey-ownership"}]},{"group":"MFA","pages":[{"title":"enable","href":"/wallets/custom-signer/sdk-reference/actions/mfa/enable"},{"title":"disable","href":"/wallets/custom-signer/sdk-reference/actions/mfa/disable"},{"title":"changeThreshold","href":"/wallets/custom-signer/sdk-reference/actions/mfa/change-threshold"},{"title":"setSubValidator","href":"/wallets/custom-signer/sdk-reference/actions/mfa/set-sub-validator"},{"title":"removeSubValidator","href":"/wallets/custom-signer/sdk-reference/actions/mfa/remove-sub-validator"}]},{"group":"Modules","pages":[{"title":"installModule","href":"/wallets/custom-signer/sdk-reference/actions/modules/install-module"},{"title":"uninstallModule","href":"/wallets/custom-signer/sdk-reference/actions/modules/uninstall-module"},{"title":"deploy","href":"/wallets/custom-signer/sdk-reference/actions/modules/deploy"}]},{"group":"Smart sessions","pages":[{"title":"enable","href":"/wallets/custom-signer/sdk-reference/actions/smart-sessions/enable"},{"title":"disable","href":"/wallets/custom-signer/sdk-reference/actions/smart-sessions/disable"},{"title":"enableSession","href":"/wallets/custom-signer/sdk-reference/actions/smart-sessions/enable-session"},{"title":"disableSession","href":"/wallets/custom-signer/sdk-reference/actions/smart-sessions/disable-session"}]}]},{"group":"HyperCore","pages":[{"title":"getPerpMarket","href":"/wallets/custom-signer/sdk-reference/hyper-core/get-perp-market"},{"title":"getPerpMarkets","href":"/wallets/custom-signer/sdk-reference/hyper-core/get-perp-markets"},{"title":"getPerpPosition","href":"/wallets/custom-signer/sdk-reference/hyper-core/get-perp-position"},{"title":"getPerpPositions","href":"/wallets/custom-signer/sdk-reference/hyper-core/get-perp-positions"}]},{"group":"Solana","pages":[{"title":"solanaAddress","href":"/wallets/custom-signer/sdk-reference/solana/solana-address"},{"title":"createSolanaSwigId","href":"/wallets/custom-signer/sdk-reference/solana/create-solana-swig-id"},{"title":"addPasskey","href":"/wallets/custom-signer/sdk-reference/solana/add-passkey"},{"title":"removePasskey","href":"/wallets/custom-signer/sdk-reference/solana/remove-passkey"},{"title":"addEcdsaKey","href":"/wallets/custom-signer/sdk-reference/solana/add-ecdsa-key"},{"title":"removeEcdsaKey","href":"/wallets/custom-signer/sdk-reference/solana/remove-ecdsa-key"},{"title":"getAuthorityStatus","href":"/wallets/custom-signer/sdk-reference/solana/get-authority-status"}]},{"group":"EVM","pages":[{"title":"experimental_getV0InitData","href":"/wallets/custom-signer/sdk-reference/evm/experimental-get-v0-init-data"},{"title":"experimental_getRhinestoneInitData","href":"/wallets/custom-signer/sdk-reference/evm/experimental-get-rhinestone-init-data"},{"title":"toViewOnlyAccount","href":"/wallets/custom-signer/sdk-reference/evm/to-view-only-account"}]}]}]}]},{"tab":"Transactions","menu":[{"item":"Overview","pages":[{"title":"Overview","href":"/transactions/overview"}]},{"item":"Relaying","pages":[{"title":"Relaying","href":"/transactions/relaying/overview"}]},{"item":"Multichain","pages":[{"title":"Multichain","href":"/transactions/multichain/overview"}]},{"item":"Trading","pages":[{"title":"Trading","href":"/transactions/trading/overview"}]},{"item":"Sponsorship \u0026 monetization","pages":[{"title":"Sponsorship \u0026 monetization","href":"/transactions/sponsorship/overview"}]}],"pages":[{"title":"Transactions","href":"/transactions/overview"}]},{"tab":"Deposits","menu":[{"item":"Overview","pages":[{"title":"Overview","href":"/deposits/overview/overview"}]},{"item":"Onramps","pages":[{"title":"Onramps","href":"/deposits/onramps/overview"}]},{"item":"Crypto","pages":[{"title":"Crypto","href":"/deposits/crypto/overview"}]},{"item":"Exchanges","pages":[{"title":"Exchanges","href":"/deposits/exchanges/overview"}]},{"item":"Headless","pages":[{"title":"Headless","href":"/deposits/headless/overview"}]}],"pages":[{"title":"Deposits","href":"/deposits/overview/overview"}]},{"tab":"Fiat integrations","pages":[{"title":"Fiat integrations","href":"/fiat/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]}]},"basePath":"","title":"ECDSA - Rhinestone","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":[],"chunks":[]}