Complete transaction response including status, signing requirements, and wallet type specific data
EVM MPC Wallet
EVM Smart Wallet
Stellar Smart Wallet
Solana Smart Wallet
Solana MPC Wallet
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Crossmint Docs","colors":{"primary":"#36b37e","light":"#87ff8f","dark":"#001d01"},"logo":{"light":"https://mintcdn.com/crossmint/a8gPOTKEuVFcSfC3/logo/crossmint-light.png?fit=max\u0026auto=format\u0026n=a8gPOTKEuVFcSfC3\u0026q=85\u0026s=8c2671e4c8f7da6956e1508bd68c2928","dark":"https://mintcdn.com/crossmint/a8gPOTKEuVFcSfC3/logo/crossmint-dark.png?fit=max\u0026auto=format\u0026n=a8gPOTKEuVFcSfC3\u0026q=85\u0026s=272ecc17664d17b9ff24471758ff80b2"},"favicon":"https://mintcdn.com/crossmint/xq66q9GV6z6jjj95/favicon.png?fit=max\u0026auto=format\u0026n=xq66q9GV6z6jjj95\u0026q=85\u0026s=00fb89ddf6ba5b1022b9307039c08006","api":{"openapi":["api-reference/_open-api/MintingAPIs.json","api-reference/_open-api/AdminAPIs.json","api-reference/_open-api/VerifiableCredentialsAPIs.json","api-reference/_open-api/Wallets.json"],"examples":{"prefill":true}},"background":{"color":{"dark":"#090b0c"}},"navbar":{"links":[{"href":"https://www.crossmint.com/contact","label":"Support"},{"href":"https://staging.crossmint.com/console","label":"Staging Console"}],"primary":{"type":"button","label":"Console","href":"https://www.crossmint.com/console"}},"footer":{"socials":{"website":"https://www.crossmint.com","twitter":"https://twitter.com/crossmint","github":"https://github.com/crossmint"}},"integrations":{"ga4":{"measurementId":"G-CP5EDD6GVT"},"posthog":{"apiKey":"phc_tfgodwfjuO9v3Nw0tIWJNzACoi2opL7X2Ly0Mg2UCTz","apiHost":"https://eu.i.posthog.com","sessionRecording":false}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"crossmint","hasAudioNarration":false,"actualSubdomain":"crossmint","customDomains":["docs.crossmint.com"],"gitSource":{"type":"github","owner":"paella-labs","repo":"crossbit-main","deployBranch":"main","contentDirectory":"apps/crossmint-mintlify-docs/src","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aeb1bc0245c712a705a2054","collectionId":"43b272ba-7788-4e48-bc86-6e8b3f29841c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeb1bc0245c712a705a2054"},"feedback":{"thumbs":true,"edits":true,"issues":true,"contextualFeedback":{"allowEmail":true},"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeb1bc0245c712a705a2054","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"API Reference","count":1093},{"language":"default","tag":"Wallets","count":928},{"language":"default","tag":"Wallets V0","count":666},{"language":"default","tag":"Kotlin SDK","count":413},{"language":"default","tag":"Wallets V1","count":262},{"language":"default","tag":"Swift SDK","count":227},{"language":"default","tag":"Checkout","count":206},{"language":"default","tag":"Classes","count":185},{"language":"default","tag":"Typescript SDK","count":183},{"language":"default","tag":"Data Classes","count":169}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":false,"deflection":{"enabled":true,"type":"link","url":"https://www.crossmint.com/contact/sales"}},"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}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".tab-container [data-component-part=tabs-list]{flex-wrap:wrap;overflow:visible;row-gap:.25rem}.tab-container [data-component-part=tabs-list]>li{white-space:nowrap}.nav-dropdown-item,.nav-dropdown-item *{font-weight:500!important;color:#4b5563!important}.nav-dropdown-item:hover,.nav-dropdown-item:hover *{color:#1f2937!important}.dark .nav-dropdown-item,.dark .nav-dropdown-item *{color:#9ca3af!important}.dark .nav-dropdown-item:hover,.dark .nav-dropdown-item:hover *{color:#d1d5db!important}"}],"page":{"pagePath":"api-reference/wallets/add-recovery-method","slug":"/api-reference/wallets/add-recovery-method","pageMetadata":{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/recovery-methods","title":"Add Recovery Method","description":"Add a recovery method to a wallet.","href":"/api-reference/wallets/add-recovery-method"},"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: \"Add a recovery method to a wallet.\"\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/recovery-methods","title":"Add Recovery Method","description":"Add a recovery method to a wallet.","href":"/api-reference/wallets/add-recovery-method"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/crossmint/d1c432d03c0c4224/scripts/dd.js","/_mintlify/custom/crossmint/7fc8d54052d3edb0/scripts/hubspot.js"],"openApiReferenceData":{"operation":{"description":"Add a recovery method to a wallet.","operationId":"wallets.recoveryMethods.create","parameters":["b2ad58be-1d61-42a4-a56d-f113756ca9c1"],"requestBody":"071c202e-72ee-4596-b554-f199402fcca7","responses":{"201":"1cb958df-e2ae-48f8-9998-29fb2f6ae8a9"},"security":["74948801-2232-46aa-806c-c0b8dc47d05c"],"summary":"Add Recovery Method","method":"post","type":"path","servers":["6d43f8db-2aae-4e01-8685-08a87bec3c2b","c63c36d8-1f32-400f-b2e7-dd59afdf458d"],"path":"/2025-06-09/wallets/{walletLocator}/recovery-methods","baseUrlOptions":["https://staging.crossmint.com/api","https://www.crossmint.com/api"],"title":"Add Recovery Method","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.oneOf.0.approver":"email:user@example.com","body.oneOf.0.chain":"base-sepolia","body.oneOf.0.recoveryMethods.oneOf.5.email":"recovery@example.com","body.oneOf.0.recoveryMethods.oneOf.5.type":"email"},{"body.oneOf.1.approver":"email:user@example.com","body.oneOf.1.recoveryMethods.oneOf.5.email":"recovery@example.com","body.oneOf.1.recoveryMethods.oneOf.5.type":"email"},{"body.oneOf.1.approver":"email:user@example.com","body.oneOf.1.recoveryMethods.oneOf.5.email":"recovery@example.com","body.oneOf.1.recoveryMethods.oneOf.5.type":"email"}]},"dependencies":{"parameters":{"b2ad58be-1d61-42a4-a56d-f113756ca9c1":{"description":"A wallet locator can be of the format:\n- `\u003cwalletAddress>`\n- `email:\u003cemail>:\u003cchainType>[:\u003cwalletType>][:alias:\u003calias>]` (walletType defaults to 'smart')\n- `userId:\u003cuserId>:\u003cchainType>[:\u003cwalletType>][:alias:\u003calias>]` (white label user example)\n- `phoneNumber:\u003cphoneNumber>:\u003cchainType>[:\u003cwalletType>][:alias:\u003calias>]`\n- `twitter:\u003chandle>:\u003cchainType>[:\u003cwalletType>][:alias:\u003calias>]`\n- `x:\u003chandle>:\u003cchainType>[:\u003cwalletType>][:alias:\u003calias>]`\n- `me:\u003cchainType>[:\u003cwalletType>][:alias:\u003calias>]` (Use when calling from the client side with a client API key)\n- `chainType[:\u003cwalletType>]:alias:\u003calias>`","in":"path","name":"walletLocator","required":true,"schema":{"type":"string","isRequired":true,"description":"A wallet locator can be of the format:\n- `\u003cwalletAddress>`\n- `email:\u003cemail>:\u003cchainType>[:\u003cwalletType>][:alias:\u003calias>]` (walletType defaults to 'smart')\n- `userId:\u003cuserId>:\u003cchainType>[:\u003cwalletType>][:alias:\u003calias>]` (white label user example)\n- `phoneNumber:\u003cphoneNumber>:\u003cchainType>[:\u003cwalletType>][:alias:\u003calias>]`\n- `twitter:\u003chandle>:\u003cchainType>[:\u003cwalletType>][:alias:\u003calias>]`\n- `x:\u003chandle>:\u003cchainType>[:\u003cwalletType>][:alias:\u003calias>]`\n- `me:\u003cchainType>[:\u003cwalletType>][:alias:\u003calias>]` (Use when calling from the client side with a client API key)\n- `chainType[:\u003cwalletType>]:alias:\u003calias>`","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"examples":{"EVM":{"title":"EVM","description":"Add an email recovery method to an EVM smart wallet. The current email recovery method approves.","value":{"approver":"email:user@example.com","chain":"base-sepolia","recoveryMethods":{"email":"recovery@example.com","type":"email"}}},"Solana":{"title":"Solana","description":"Add an email recovery method to a Solana smart wallet. The current email recovery method approves.","value":{"approver":"email:user@example.com","recoveryMethods":{"email":"recovery@example.com","type":"email"}}},"Stellar":{"title":"Stellar","description":"Add an email recovery method to a Stellar smart wallet. The current email recovery method approves.","value":{"approver":"email:user@example.com","recoveryMethods":{"email":"recovery@example.com","type":"email"}}}},"schema":{"oneOf":[{"type":"object","title":"EVM","description":"Parameters for adding EVM recovery methods","required":["approver","chain","recoveryMethods"],"properties":{"approver":{"description":"The recovery method that authorizes this operation.","examples":["passkey:cWtP7gmZbd98HbKUuGXx5Q","api-key:123456789","external-wallet:0x1234567890123456789012345678901234567890","server:0x1234567890123456789012345678901234567890","email:test@example.com","phone:+1234567890","device:BIVmCqMz8QJB+se2kJEpGQ...","quorum:123e4567-e89b-12d3-a456-426614174000"],"title":"Signer Locator","type":"string","isRequired":true,"uniqueKey":"oneOf.0.approver","typeLabel":"string"},"chain":{"description":"The chain where the recovery method will be registered. Accepts the smart-wallet-enabled EVM chains.","enum":["apechain","arbitrum","arbitrum-sepolia","arbitrumnova","arc","arc-testnet","avalanche","avalanche-fuji","base","base-sepolia","bsc","celo","celo-sepolia","curtis","ethereum","ethereum-sepolia","flow","flow-testnet","mantle","mantle-sepolia","optimism","optimism-sepolia","polygon","polygon-amoy","robinhood-chain","robinhood-chain-testnet","scroll","scroll-sepolia","shape","story","story-testnet","tempo","tempo-testnet","zora","zora-sepolia"],"type":"string","isRequired":true,"uniqueKey":"oneOf.0.chain","typeLabel":"enum\u003cstring>"},"recoveryMethods":{"oneOf":[{"type":"object","title":"Quorum Signer","description":"The recovery method to add.","required":["members","threshold","type"],"properties":{"members":{"description":"The member signers that make up the quorum (2-10 members, no duplicates). Nested quorums are not allowed.","items":{"oneOf":[{"type":"object","title":"Server Signer","description":"A server-managed blockchain signer","required":["address","type"],"example":{"address":"0x1234567890123456789012345678901234567890","type":"server"},"properties":{"address":{"description":"The blockchain address of the server signer","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.0.address","typeLabel":"string"},"type":{"const":"server","description":"Identifier for server signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.0.type","typeLabel":"string"}},"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.0","typeLabel":"Server Signer · object"},{"type":"object","title":"Email Signer","description":"An email-based signer that can be used to sign transactions","required":["email","type"],"properties":{"email":{"description":"The email address for the signer","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.1.email","typeLabel":"string"},"type":{"const":"email","description":"Identifier for email signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.1.type","typeLabel":"string"}},"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.1","typeLabel":"Email Signer · object"},{"type":"object","title":"External Wallet Signer","description":"An external wallet that can be used to sign transactions","required":["address","type"],"example":{"address":"0x1234567890123456789012345678901234567890","type":"external-wallet"},"properties":{"address":{"description":"The blockchain address of the external wallet","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.2.address","typeLabel":"string"},"type":{"const":"external-wallet","description":"Identifier for external wallet signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.2.type","typeLabel":"string"}},"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Phone Signer","description":"An phone-based signer that can be used to sign transactions","required":["phone","type"],"example":{"phone":"+1234567890","type":"phone"},"properties":{"phone":{"description":"The phone number for the signer in E164 format","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.3.phone","typeLabel":"string"},"type":{"const":"phone","description":"Identifier for phone signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.3.type","typeLabel":"string"}},"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.3","typeLabel":"Phone Signer · object"},{"type":"object","title":"Passkey Signer","description":"Configuration for a WebAuthn/Passkey signer that uses public key credentials for authentication","required":["id","name","publicKey","type"],"example":{"id":"cWtP7gmZbd98HbKUuGXx5Q","name":"hgranger","publicKey":{"x":"38035223810536273945556366218149112558607829411547667975304293530457502824247","y":"91117823763706733837104303008228095481082989039135234750508288790583476078729"},"type":"passkey"},"properties":{"id":{"description":"Credential ID from the WebAuthn registration response, as unpadded base64url","minLength":1,"pattern":"^[A-Za-z0-9_-]+$","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.id","typeLabel":"string"},"name":{"description":"Human-readable name for the passkey","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.name","typeLabel":"string"},"publicKey":{"description":"The public key coordinates from the WebAuthn credential","properties":{"x":{"description":"X coordinate of the public key as a decimal string","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.publicKey.x","typeLabel":"string"},"y":{"description":"Y coordinate of the public key as a decimal string","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.publicKey","typeLabel":"object"},"type":{"const":"passkey","description":"Identifier for the Passkey signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.type","typeLabel":"string"}},"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4","typeLabel":"Passkey Signer · object"}],"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members.items.[INDEX]","typeLabel":"Server Signer · object | Email Signer · object | External Wallet Signer · object | Phone Signer · object | Passkey Signer · object"},"type":"array","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.members","typeLabel":"(Server Signer · object | Email Signer · object | External Wallet Signer · object | Phone Signer · object | Passkey Signer · object)[]"},"threshold":{"description":"The number of member signatures required to approve. At most the number of members.","maximum":9007199254740991,"minimum":1,"type":"integer","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.threshold","typeLabel":"integer"},"type":{"const":"quorum","description":"Identifier for quorum (multisig) signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.0","typeLabel":"Quorum Signer · object"},{"type":"string","title":"Signer Locator","description":"The recovery method to add.","example":"passkey:cWtP7gmZbd98HbKUuGXx5Q","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.1","typeLabel":"string"},{"type":"object","title":"API Key Signer","description":"The recovery method to add.","required":["type"],"example":{"type":"api-key"},"properties":{"type":{"const":"api-key","description":"Identifier for API key signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.2","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The recovery method to add.","required":["publicKey","type"],"example":{"name":"my-device","publicKey":{"x":"decimal_string_x","y":"decimal_string_y"},"type":"device"},"properties":{"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"description":"The x coordinate of the p256 public key","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.3.publicKey.x","typeLabel":"string"},"y":{"description":"The y coordinate of the p256 public key","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.3.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.3.publicKey","typeLabel":"object"},"type":{"const":"device","description":"Identifier for device signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.3.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"oneOf.0.recoveryMethods.oneOf.3.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.3","typeLabel":"Device Signer · object"},{"type":"object","title":"Server Signer","description":"The recovery method to add.","required":["address","type"],"example":{"address":"0x1234567890123456789012345678901234567890","type":"server"},"properties":{"address":{"description":"The blockchain address of the server signer","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.4.address","typeLabel":"string"},"type":{"const":"server","description":"Identifier for server signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.4","typeLabel":"Server Signer · object"},{"type":"object","title":"Email Signer","description":"The recovery method to add.","required":["email","type"],"properties":{"email":{"description":"The email address for the signer","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.5.email","typeLabel":"string"},"type":{"const":"email","description":"Identifier for email signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.5","typeLabel":"Email Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The recovery method to add.","required":["address","type"],"example":{"address":"0x1234567890123456789012345678901234567890","type":"external-wallet"},"properties":{"address":{"description":"The blockchain address of the external wallet","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.6.address","typeLabel":"string"},"type":{"const":"external-wallet","description":"Identifier for external wallet signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.6","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Phone Signer","description":"The recovery method to add.","required":["phone","type"],"example":{"phone":"+1234567890","type":"phone"},"properties":{"phone":{"description":"The phone number for the signer in E164 format","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.7.phone","typeLabel":"string"},"type":{"const":"phone","description":"Identifier for phone signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.7.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.7","typeLabel":"Phone Signer · object"},{"type":"object","title":"Passkey Signer","description":"The recovery method to add.","required":["id","name","publicKey","type"],"example":{"id":"cWtP7gmZbd98HbKUuGXx5Q","name":"hgranger","publicKey":{"x":"38035223810536273945556366218149112558607829411547667975304293530457502824247","y":"91117823763706733837104303008228095481082989039135234750508288790583476078729"},"type":"passkey"},"properties":{"id":{"description":"Credential ID from the WebAuthn registration response, as unpadded base64url","minLength":1,"pattern":"^[A-Za-z0-9_-]+$","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.8.id","typeLabel":"string"},"name":{"description":"Human-readable name for the passkey","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.8.name","typeLabel":"string"},"publicKey":{"description":"The public key coordinates from the WebAuthn credential","properties":{"x":{"description":"X coordinate of the public key as a decimal string","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.8.publicKey.x","typeLabel":"string"},"y":{"description":"Y coordinate of the public key as a decimal string","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.8.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.8.publicKey","typeLabel":"object"},"type":{"const":"passkey","description":"Identifier for the Passkey signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.8.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods.oneOf.8","typeLabel":"Passkey Signer · object"}],"isRequired":true,"uniqueKey":"oneOf.0.recoveryMethods","typeLabel":"Quorum Signer · object | string | API Key Signer · object | Device Signer · object | Server Signer · object | Email Signer · object | External Wallet Signer · object | Phone Signer · object | Passkey Signer · object"}},"uniqueKey":"oneOf.0","typeLabel":"EVM · object"},{"type":"object","title":"Solana","description":"Parameters for adding Solana recovery methods","required":["approver","recoveryMethods"],"properties":{"approver":{"description":"The recovery method that authorizes this operation.","examples":["passkey:cWtP7gmZbd98HbKUuGXx5Q","api-key:123456789","external-wallet:0x1234567890123456789012345678901234567890","server:0x1234567890123456789012345678901234567890","email:test@example.com","phone:+1234567890","device:BIVmCqMz8QJB+se2kJEpGQ...","quorum:123e4567-e89b-12d3-a456-426614174000"],"title":"Signer Locator","type":"string","isRequired":true,"uniqueKey":"oneOf.1.approver","typeLabel":"string"},"recoveryMethods":{"oneOf":[{"type":"object","title":"Quorum Signer","description":"The recovery method to add.","required":["members","threshold","type"],"properties":{"members":{"description":"The member signers that make up the quorum (2-10 members, no duplicates). Nested quorums are not allowed.","items":{"oneOf":[{"type":"object","title":"Server Signer","description":"A server-managed blockchain signer","required":["address","type"],"example":{"address":"0x1234567890123456789012345678901234567890","type":"server"},"properties":{"address":{"description":"The blockchain address of the server signer","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.0.address","typeLabel":"string"},"type":{"const":"server","description":"Identifier for server signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.0.type","typeLabel":"string"}},"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.0","typeLabel":"Server Signer · object"},{"type":"object","title":"Email Signer","description":"An email-based signer that can be used to sign transactions","required":["email","type"],"properties":{"email":{"description":"The email address for the signer","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.1.email","typeLabel":"string"},"type":{"const":"email","description":"Identifier for email signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.1.type","typeLabel":"string"}},"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.1","typeLabel":"Email Signer · object"},{"type":"object","title":"External Wallet Signer","description":"An external wallet that can be used to sign transactions","required":["address","type"],"example":{"address":"0x1234567890123456789012345678901234567890","type":"external-wallet"},"properties":{"address":{"description":"The blockchain address of the external wallet","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.2.address","typeLabel":"string"},"type":{"const":"external-wallet","description":"Identifier for external wallet signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.2.type","typeLabel":"string"}},"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Phone Signer","description":"An phone-based signer that can be used to sign transactions","required":["phone","type"],"example":{"phone":"+1234567890","type":"phone"},"properties":{"phone":{"description":"The phone number for the signer in E164 format","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.3.phone","typeLabel":"string"},"type":{"const":"phone","description":"Identifier for phone signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.3.type","typeLabel":"string"}},"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.3","typeLabel":"Phone Signer · object"},{"type":"object","title":"Passkey Signer","description":"Configuration for a WebAuthn/Passkey signer that uses public key credentials for authentication","required":["id","name","publicKey","type"],"example":{"id":"cWtP7gmZbd98HbKUuGXx5Q","name":"hgranger","publicKey":{"x":"38035223810536273945556366218149112558607829411547667975304293530457502824247","y":"91117823763706733837104303008228095481082989039135234750508288790583476078729"},"type":"passkey"},"properties":{"id":{"description":"Credential ID from the WebAuthn registration response, as unpadded base64url","minLength":1,"pattern":"^[A-Za-z0-9_-]+$","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.id","typeLabel":"string"},"name":{"description":"Human-readable name for the passkey","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.name","typeLabel":"string"},"publicKey":{"description":"The public key coordinates from the WebAuthn credential","properties":{"x":{"description":"X coordinate of the public key as a decimal string","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.publicKey.x","typeLabel":"string"},"y":{"description":"Y coordinate of the public key as a decimal string","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.publicKey","typeLabel":"object"},"type":{"const":"passkey","description":"Identifier for the Passkey signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.type","typeLabel":"string"}},"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4","typeLabel":"Passkey Signer · object"}],"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members.items.[INDEX]","typeLabel":"Server Signer · object | Email Signer · object | External Wallet Signer · object | Phone Signer · object | Passkey Signer · object"},"type":"array","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.members","typeLabel":"(Server Signer · object | Email Signer · object | External Wallet Signer · object | Phone Signer · object | Passkey Signer · object)[]"},"threshold":{"description":"The number of member signatures required to approve. At most the number of members.","maximum":9007199254740991,"minimum":1,"type":"integer","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.threshold","typeLabel":"integer"},"type":{"const":"quorum","description":"Identifier for quorum (multisig) signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.0","typeLabel":"Quorum Signer · object"},{"type":"string","title":"Signer Locator","description":"The recovery method to add.","example":"passkey:cWtP7gmZbd98HbKUuGXx5Q","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.1","typeLabel":"string"},{"type":"object","title":"API Key Signer","description":"The recovery method to add.","required":["type"],"example":{"type":"api-key"},"properties":{"type":{"const":"api-key","description":"Identifier for API key signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.2","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The recovery method to add.","required":["publicKey","type"],"example":{"name":"my-device","publicKey":{"x":"decimal_string_x","y":"decimal_string_y"},"type":"device"},"properties":{"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"description":"The x coordinate of the p256 public key","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.3.publicKey.x","typeLabel":"string"},"y":{"description":"The y coordinate of the p256 public key","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.3.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.3.publicKey","typeLabel":"object"},"type":{"const":"device","description":"Identifier for device signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.3.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"oneOf.1.recoveryMethods.oneOf.3.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.3","typeLabel":"Device Signer · object"},{"type":"object","title":"Server Signer","description":"The recovery method to add.","required":["address","type"],"example":{"address":"0x1234567890123456789012345678901234567890","type":"server"},"properties":{"address":{"description":"The blockchain address of the server signer","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.4.address","typeLabel":"string"},"type":{"const":"server","description":"Identifier for server signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.4","typeLabel":"Server Signer · object"},{"type":"object","title":"Email Signer","description":"The recovery method to add.","required":["email","type"],"properties":{"email":{"description":"The email address for the signer","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.5.email","typeLabel":"string"},"type":{"const":"email","description":"Identifier for email signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.5","typeLabel":"Email Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The recovery method to add.","required":["address","type"],"example":{"address":"0x1234567890123456789012345678901234567890","type":"external-wallet"},"properties":{"address":{"description":"The blockchain address of the external wallet","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.6.address","typeLabel":"string"},"type":{"const":"external-wallet","description":"Identifier for external wallet signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.6","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Phone Signer","description":"The recovery method to add.","required":["phone","type"],"example":{"phone":"+1234567890","type":"phone"},"properties":{"phone":{"description":"The phone number for the signer in E164 format","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.7.phone","typeLabel":"string"},"type":{"const":"phone","description":"Identifier for phone signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.7.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.7","typeLabel":"Phone Signer · object"},{"type":"object","title":"Passkey Signer","description":"The recovery method to add.","required":["id","name","publicKey","type"],"example":{"id":"cWtP7gmZbd98HbKUuGXx5Q","name":"hgranger","publicKey":{"x":"38035223810536273945556366218149112558607829411547667975304293530457502824247","y":"91117823763706733837104303008228095481082989039135234750508288790583476078729"},"type":"passkey"},"properties":{"id":{"description":"Credential ID from the WebAuthn registration response, as unpadded base64url","minLength":1,"pattern":"^[A-Za-z0-9_-]+$","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.8.id","typeLabel":"string"},"name":{"description":"Human-readable name for the passkey","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.8.name","typeLabel":"string"},"publicKey":{"description":"The public key coordinates from the WebAuthn credential","properties":{"x":{"description":"X coordinate of the public key as a decimal string","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.8.publicKey.x","typeLabel":"string"},"y":{"description":"Y coordinate of the public key as a decimal string","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.8.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.8.publicKey","typeLabel":"object"},"type":{"const":"passkey","description":"Identifier for the Passkey signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.8.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods.oneOf.8","typeLabel":"Passkey Signer · object"}],"isRequired":true,"uniqueKey":"oneOf.1.recoveryMethods","typeLabel":"Quorum Signer · object | string | API Key Signer · object | Device Signer · object | Server Signer · object | Email Signer · object | External Wallet Signer · object | Phone Signer · object | Passkey Signer · object"}},"uniqueKey":"oneOf.1","typeLabel":"Solana · object"},{"type":"object","title":"Stellar","description":"Parameters for adding Stellar recovery methods","required":["approver","recoveryMethods"],"properties":{"approver":{"description":"The recovery method that authorizes this operation.","examples":["passkey:cWtP7gmZbd98HbKUuGXx5Q","api-key:123456789","external-wallet:0x1234567890123456789012345678901234567890","server:0x1234567890123456789012345678901234567890","email:test@example.com","phone:+1234567890","device:BIVmCqMz8QJB+se2kJEpGQ...","quorum:123e4567-e89b-12d3-a456-426614174000"],"title":"Signer Locator","type":"string","isRequired":true,"uniqueKey":"oneOf.2.approver","typeLabel":"string"},"recoveryMethods":{"oneOf":[{"type":"object","title":"Quorum Signer","description":"The recovery method to add.","required":["members","threshold","type"],"properties":{"members":{"description":"The member signers that make up the quorum (2-10 members, no duplicates). Nested quorums are not allowed.","items":{"oneOf":[{"type":"object","title":"Server Signer","description":"A server-managed blockchain signer","required":["address","type"],"example":{"address":"0x1234567890123456789012345678901234567890","type":"server"},"properties":{"address":{"description":"The blockchain address of the server signer","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.0.address","typeLabel":"string"},"type":{"const":"server","description":"Identifier for server signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.0.type","typeLabel":"string"}},"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.0","typeLabel":"Server Signer · object"},{"type":"object","title":"Email Signer","description":"An email-based signer that can be used to sign transactions","required":["email","type"],"properties":{"email":{"description":"The email address for the signer","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.1.email","typeLabel":"string"},"type":{"const":"email","description":"Identifier for email signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.1.type","typeLabel":"string"}},"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.1","typeLabel":"Email Signer · object"},{"type":"object","title":"External Wallet Signer","description":"An external wallet that can be used to sign transactions","required":["address","type"],"example":{"address":"0x1234567890123456789012345678901234567890","type":"external-wallet"},"properties":{"address":{"description":"The blockchain address of the external wallet","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.2.address","typeLabel":"string"},"type":{"const":"external-wallet","description":"Identifier for external wallet signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.2.type","typeLabel":"string"}},"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Phone Signer","description":"An phone-based signer that can be used to sign transactions","required":["phone","type"],"example":{"phone":"+1234567890","type":"phone"},"properties":{"phone":{"description":"The phone number for the signer in E164 format","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.3.phone","typeLabel":"string"},"type":{"const":"phone","description":"Identifier for phone signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.3.type","typeLabel":"string"}},"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.3","typeLabel":"Phone Signer · object"},{"type":"object","title":"Passkey Signer","description":"Configuration for a WebAuthn/Passkey signer that uses public key credentials for authentication","required":["id","name","publicKey","type"],"example":{"id":"cWtP7gmZbd98HbKUuGXx5Q","name":"hgranger","publicKey":{"x":"38035223810536273945556366218149112558607829411547667975304293530457502824247","y":"91117823763706733837104303008228095481082989039135234750508288790583476078729"},"type":"passkey"},"properties":{"id":{"description":"Credential ID from the WebAuthn registration response, as unpadded base64url","minLength":1,"pattern":"^[A-Za-z0-9_-]+$","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.id","typeLabel":"string"},"name":{"description":"Human-readable name for the passkey","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.name","typeLabel":"string"},"publicKey":{"description":"The public key coordinates from the WebAuthn credential","properties":{"x":{"description":"X coordinate of the public key as a decimal string","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.publicKey.x","typeLabel":"string"},"y":{"description":"Y coordinate of the public key as a decimal string","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.publicKey","typeLabel":"object"},"type":{"const":"passkey","description":"Identifier for the Passkey signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4.type","typeLabel":"string"}},"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX].oneOf.4","typeLabel":"Passkey Signer · object"}],"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members.items.[INDEX]","typeLabel":"Server Signer · object | Email Signer · object | External Wallet Signer · object | Phone Signer · object | Passkey Signer · object"},"type":"array","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.members","typeLabel":"(Server Signer · object | Email Signer · object | External Wallet Signer · object | Phone Signer · object | Passkey Signer · object)[]"},"threshold":{"description":"The number of member signatures required to approve. At most the number of members.","maximum":9007199254740991,"minimum":1,"type":"integer","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.threshold","typeLabel":"integer"},"type":{"const":"quorum","description":"Identifier for quorum (multisig) signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.0","typeLabel":"Quorum Signer · object"},{"type":"string","title":"Signer Locator","description":"The recovery method to add.","example":"passkey:cWtP7gmZbd98HbKUuGXx5Q","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.1","typeLabel":"string"},{"type":"object","title":"API Key Signer","description":"The recovery method to add.","required":["type"],"example":{"type":"api-key"},"properties":{"type":{"const":"api-key","description":"Identifier for API key signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.2","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The recovery method to add.","required":["publicKey","type"],"example":{"name":"my-device","publicKey":{"x":"decimal_string_x","y":"decimal_string_y"},"type":"device"},"properties":{"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"description":"The x coordinate of the p256 public key","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.3.publicKey.x","typeLabel":"string"},"y":{"description":"The y coordinate of the p256 public key","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.3.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.3.publicKey","typeLabel":"object"},"type":{"const":"device","description":"Identifier for device signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.3.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"oneOf.2.recoveryMethods.oneOf.3.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.3","typeLabel":"Device Signer · object"},{"type":"object","title":"Server Signer","description":"The recovery method to add.","required":["address","type"],"example":{"address":"0x1234567890123456789012345678901234567890","type":"server"},"properties":{"address":{"description":"The blockchain address of the server signer","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.4.address","typeLabel":"string"},"type":{"const":"server","description":"Identifier for server signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.4","typeLabel":"Server Signer · object"},{"type":"object","title":"Email Signer","description":"The recovery method to add.","required":["email","type"],"properties":{"email":{"description":"The email address for the signer","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.5.email","typeLabel":"string"},"type":{"const":"email","description":"Identifier for email signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.5","typeLabel":"Email Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The recovery method to add.","required":["address","type"],"example":{"address":"0x1234567890123456789012345678901234567890","type":"external-wallet"},"properties":{"address":{"description":"The blockchain address of the external wallet","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.6.address","typeLabel":"string"},"type":{"const":"external-wallet","description":"Identifier for external wallet signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.6","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Phone Signer","description":"The recovery method to add.","required":["phone","type"],"example":{"phone":"+1234567890","type":"phone"},"properties":{"phone":{"description":"The phone number for the signer in E164 format","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.7.phone","typeLabel":"string"},"type":{"const":"phone","description":"Identifier for phone signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.7.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.7","typeLabel":"Phone Signer · object"},{"type":"object","title":"Passkey Signer","description":"The recovery method to add.","required":["id","name","publicKey","type"],"example":{"id":"cWtP7gmZbd98HbKUuGXx5Q","name":"hgranger","publicKey":{"x":"38035223810536273945556366218149112558607829411547667975304293530457502824247","y":"91117823763706733837104303008228095481082989039135234750508288790583476078729"},"type":"passkey"},"properties":{"id":{"description":"Credential ID from the WebAuthn registration response, as unpadded base64url","minLength":1,"pattern":"^[A-Za-z0-9_-]+$","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.8.id","typeLabel":"string"},"name":{"description":"Human-readable name for the passkey","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.8.name","typeLabel":"string"},"publicKey":{"description":"The public key coordinates from the WebAuthn credential","properties":{"x":{"description":"X coordinate of the public key as a decimal string","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.8.publicKey.x","typeLabel":"string"},"y":{"description":"Y coordinate of the public key as a decimal string","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.8.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.8.publicKey","typeLabel":"object"},"type":{"const":"passkey","description":"Identifier for the Passkey signer type","type":"string","isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.8.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods.oneOf.8","typeLabel":"Passkey Signer · object"}],"isRequired":true,"uniqueKey":"oneOf.2.recoveryMethods","typeLabel":"Quorum Signer · object | string | API Key Signer · object | Device Signer · object | Server Signer · object | Email Signer · object | External Wallet Signer · object | Phone Signer · object | Passkey Signer · object"}},"uniqueKey":"oneOf.2","typeLabel":"Stellar · object"}],"uniqueKey":"","typeLabel":"EVM · object | Solana · object | Stellar · object"},"exampleType":"examples"}},"required":true,"exampleType":"examples"},"responses":{"1cb958df-e2ae-48f8-9998-29fb2f6ae8a9":{"content":{"application/json":{"schema":{"properties":{"recoveryMethods":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The recovery method being added, with its resolved locator.","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"recoveryMethods.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The recovery method being added, with its resolved locator.","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"recoveryMethods.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"recoveryMethods.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The recovery method being added, with its resolved locator.","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"recoveryMethods.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The recovery method being added, with its resolved locator.","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"recoveryMethods.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The recovery method being added, with its resolved locator.","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"recoveryMethods.oneOf.4","typeLabel":"object"},{"type":"object","description":"The recovery method being added, with its resolved locator.","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"recoveryMethods.oneOf.5","typeLabel":"object"},{"type":"object","description":"The recovery method being added, with its resolved locator.","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"recoveryMethods.oneOf.6","typeLabel":"object"},{"type":"object","description":"The recovery method being added, with its resolved locator.","required":["locator","members","threshold","type"],"properties":{"locator":{"pattern":"^quorum:[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.locator","typeLabel":"string"},"members":{"items":{"oneOf":[{"type":"object","title":"API Key Signer","description":"Full signer object","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.0.type","typeLabel":"string"}},"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"Full signer object","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.1.name","typeLabel":"string"}},"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"Full signer object","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.2.type","typeLabel":"string"}},"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"Full signer object","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.3.type","typeLabel":"string"}},"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"Full signer object","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.4.type","typeLabel":"string"}},"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"Full signer object","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.5.type","typeLabel":"string"}},"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","description":"Full signer object","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.6.type","typeLabel":"string"}},"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX].oneOf.6","typeLabel":"object"}],"uniqueKey":"recoveryMethods.oneOf.7.members.items.[INDEX]","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"type":"array","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.members","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object[]"},"threshold":{"maximum":9007199254740991,"minimum":1,"type":"integer","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.threshold","typeLabel":"integer"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"recoveryMethods.oneOf.7","typeLabel":"object"}],"isRequired":true,"uniqueKey":"recoveryMethods","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object · object"},"tx":{"oneOf":[{"type":"object","title":"EVM MPC Wallet","description":"Complete transaction response including status, signing requirements, and wallet type specific data","required":["chainType","createdAt","id","onChain","params","status","walletType"],"properties":{"chainType":{"description":"The blockchain type of the wallet","enum":["aptos","evm","solana","stellar","sui"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.chainType","typeLabel":"enum\u003cstring>"},"createdAt":{"oneOf":[{"type":"number","description":"ISO timestamp when the transaction was created","isRequired":true,"uniqueKey":"tx.oneOf.0.createdAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"ISO timestamp when the transaction was created","isRequired":true,"uniqueKey":"tx.oneOf.0.createdAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.createdAt","typeLabel":"number | string"},"id":{"description":"Unique identifier for the transaction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.id","typeLabel":"string"},"onChain":{"description":"Transaction data specific to EVM MPC wallets","properties":{"call":{"properties":{"data":{"description":"The encoded calldata for this transaction","isRequired":true,"uniqueKey":"tx.oneOf.0.onChain.call.data","typeLabel":"any"},"to":{"description":"The recipient address for this transaction call","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.onChain.call.to","typeLabel":"string"}},"required":["data","to"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.onChain.call","typeLabel":"object"},"explorerLink":{"type":"string","uniqueKey":"tx.oneOf.0.onChain.explorerLink","typeLabel":"string"},"txId":{"description":"A hex string","type":"string","uniqueKey":"tx.oneOf.0.onChain.txId","typeLabel":"string"}},"required":["call"],"title":"EVM MPC wallet transaction data","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.onChain","typeLabel":"EVM MPC wallet transaction data · object"},"params":{"properties":{"call":{"oneOf":[{"type":"object","description":"The transaction call to execute","required":["abi","address","args","functionName"],"properties":{"abi":{"description":"The ABI for the function to call","items":{"oneOf":[{}],"uniqueKey":"tx.oneOf.0.params.call.oneOf.0.abi.items.[INDEX]","typeLabel":"any"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.0.params.call.oneOf.0.abi","typeLabel":"any[]"},"address":{"description":"The recipient address for this transaction call","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.params.call.oneOf.0.address","typeLabel":"string"},"args":{"description":"The arguments to pass to the function","items":{"oneOf":[{}],"uniqueKey":"tx.oneOf.0.params.call.oneOf.0.args.items.[INDEX]","typeLabel":"any"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.0.params.call.oneOf.0.args","typeLabel":"any[]"},"functionName":{"description":"The name of the function to call","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.params.call.oneOf.0.functionName","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"tx.oneOf.0.params.call.oneOf.0","typeLabel":"object"},{"type":"object","description":"The transaction call to execute","required":["data","to"],"properties":{"data":{"description":"The encoded calldata for this transaction","isRequired":true,"uniqueKey":"tx.oneOf.0.params.call.oneOf.1.data","typeLabel":"any"},"to":{"description":"The recipient address for this transaction call","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.params.call.oneOf.1.to","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"tx.oneOf.0.params.call.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.params.call","typeLabel":"object"},"chain":{"description":"The chain on which the transaction will be executed","enum":["abstract","abstract-testnet","apechain","arbitrum","arbitrum-sepolia","arbitrumnova","arc","arc-testnet","astar-zkevm","avalanche","avalanche-fuji","base","base-goerli","base-sepolia","bsc","bsc-testnet","celo","celo-sepolia","chiliz","chiliz-spicy-testnet","coti","coti-testnet","curtis","ethereum","ethereum-goerli","ethereum-sepolia","flow","flow-testnet","hedera","hedera-testnet","hypersonic-testnet","lightlink","lightlink-pegasus","mantle","mantle-sepolia","mode","mode-sepolia","optimism","optimism-goerli","optimism-sepolia","plume","plume-testnet","polygon","polygon-amoy","polygon-mumbai","rari","rari-testnet","robinhood-chain","robinhood-chain-testnet","scroll","scroll-sepolia","sei-atlantic-2-testnet","sei-pacific-1","shape","shape-sepolia","skale-nebula","skale-nebula-testnet","soneium","soneium-minato-testnet","space","space-testnet","story","story-testnet","tempo","tempo-testnet","u2u-nebulas","u2u-solaris","verify-testnet","viction","viction-testnet","world-chain","world-chain-sepolia","xai","xai-sepolia-testnet","zenchain-testnet","zkatana","zkyoto","zora","zora-goerli","zora-sepolia"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.params.chain","typeLabel":"enum\u003cstring>"}},"required":["call","chain"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.params","typeLabel":"object"},"status":{"description":"Current status of the transaction","enum":["awaiting-approval","failed","pending","success"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.status","typeLabel":"enum\u003cstring>"},"walletType":{"description":"The wallet type (smart or mpc)","enum":["mpc","smart"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.walletType","typeLabel":"enum\u003cstring>"},"approvals":{"description":"Complete approval data including requirements, pending and submitted signatures","properties":{"pending":{"description":"List of pending signatures","items":{"oneOf":[{"type":"object","description":"Approval entry for a quorum (multisig) admin signer","required":["quorumApprovals","signer"],"properties":{"quorumApprovals":{"description":"Per-member progress of an m-of-n quorum signer","properties":{"pending":{"description":"Quorum members that have not yet submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member that has not approved yet, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member that has not approved yet, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member needs to sign","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].message","typeLabel":"string"}},"required":["member","message"],"type":"object","uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending","typeLabel":"object[]"},"remaining":{"description":"Number of member approvals still outstanding to reach the threshold","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.remaining","typeLabel":"number"},"submitted":{"description":"Quorum members that have already submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member who submitted this signature, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member who submitted this signature, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].signature","typeLabel":"string"},"submittedAt":{"oneOf":[{"type":"number","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt","typeLabel":"number | string"}},"required":["member","message","signature","submittedAt"],"type":"object","uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted","typeLabel":"object[]"},"threshold":{"description":"Number of member approvals required to satisfy the quorum","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.threshold","typeLabel":"number"}},"required":["pending","remaining","submitted","threshold"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals","typeLabel":"object"},"signer":{"description":"The quorum signer this approval entry belongs to","properties":{"locator":{"description":"The `quorum:\u003cid>` locator of the quorum signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.signer.locator","typeLabel":"string"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.signer.type","typeLabel":"string"}},"required":["locator","type"],"title":"Quorum Signer Reference","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0.signer","typeLabel":"Quorum Signer Reference · object"}},"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["message","signer"],"properties":{"message":{"description":"The message that needs to be signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.message","typeLabel":"string"},"signer":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The full signer object that's pending approval","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The full signer object that's pending approval","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4","typeLabel":"object"},{"type":"object","description":"The full signer object that's pending approval","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5","typeLabel":"object"},{"type":"object","description":"The full signer object that's pending approval","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1.signer","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"}},"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"tx.oneOf.0.approvals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.pending","typeLabel":"object[]"},"submitted":{"description":"Record of all submitted signatures","items":{"oneOf":[{"type":"object","description":"Approval entry for a quorum (multisig) admin signer","required":["quorumApprovals","signer"],"properties":{"quorumApprovals":{"description":"Per-member progress of an m-of-n quorum signer","properties":{"pending":{"description":"Quorum members that have not yet submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member that has not approved yet, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member that has not approved yet, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member needs to sign","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].message","typeLabel":"string"}},"required":["member","message"],"type":"object","uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending","typeLabel":"object[]"},"remaining":{"description":"Number of member approvals still outstanding to reach the threshold","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.remaining","typeLabel":"number"},"submitted":{"description":"Quorum members that have already submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member who submitted this signature, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member who submitted this signature, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].signature","typeLabel":"string"},"submittedAt":{"oneOf":[{"type":"number","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt","typeLabel":"number | string"}},"required":["member","message","signature","submittedAt"],"type":"object","uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted","typeLabel":"object[]"},"threshold":{"description":"Number of member approvals required to satisfy the quorum","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.threshold","typeLabel":"number"}},"required":["pending","remaining","submitted","threshold"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals","typeLabel":"object"},"signer":{"description":"The quorum signer this approval entry belongs to","properties":{"locator":{"description":"The `quorum:\u003cid>` locator of the quorum signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.signer.locator","typeLabel":"string"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.signer.type","typeLabel":"string"}},"required":["locator","type"],"title":"Quorum Signer Reference","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0.signer","typeLabel":"Quorum Signer Reference · object"}},"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["message","signature","signer","submittedAt"],"properties":{"message":{"description":"The message that was signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signature","typeLabel":"string"},"signer":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The full signer object who submitted this signature","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The full signer object who submitted this signature","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4","typeLabel":"object"},{"type":"object","description":"The full signer object who submitted this signature","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5","typeLabel":"object"},{"type":"object","description":"The full signer object who submitted this signature","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.signer","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"submittedAt":{"oneOf":[{"type":"number","description":"When the signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.submittedAt","typeLabel":"number | string"},"metadata":{"description":"Additional metadata about the signature submission","properties":{"deviceInfo":{"type":"string","uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.metadata.deviceInfo","typeLabel":"string"},"ipAddress":{"type":"string","uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.metadata.ipAddress","typeLabel":"string"},"userAgent":{"type":"string","uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.metadata.userAgent","typeLabel":"string"}},"type":"object","uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1.metadata","typeLabel":"object"}},"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"tx.oneOf.0.approvals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.0.approvals.submitted","typeLabel":"object[]"},"required":{"description":"Number of required approvals for the transaction","type":"number","uniqueKey":"tx.oneOf.0.approvals.required","typeLabel":"number"}},"required":["pending","submitted"],"type":"object","uniqueKey":"tx.oneOf.0.approvals","typeLabel":"object"},"completedAt":{"oneOf":[{"type":"number","description":"ISO timestamp when the transaction reached finality","uniqueKey":"tx.oneOf.0.completedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"ISO timestamp when the transaction reached finality","uniqueKey":"tx.oneOf.0.completedAt.oneOf.1","typeLabel":"string"}],"uniqueKey":"tx.oneOf.0.completedAt","typeLabel":"number | string"},"error":{"oneOf":[{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.0.message","typeLabel":"string"},"reason":{"const":"program_error","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.0.reason","typeLabel":"string"},"logs":{"oneOf":[{}],"uniqueKey":"tx.oneOf.0.error.oneOf.0.logs","typeLabel":"any"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.0.error.oneOf.0.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.0.error.oneOf.0.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.0.error.oneOf.0","typeLabel":"object"},{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.1.message","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","const":"build_failed","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.1.reason.oneOf.0","typeLabel":"string"},{"type":"string","const":"failed_to_land_on_chain","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.1.reason.oneOf.1","typeLabel":"string"},{"type":"string","const":"sanctioned_wallet_address","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.1.reason.oneOf.2","typeLabel":"string"},{"type":"string","const":"unknown","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.1.reason.oneOf.3","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.1.reason","typeLabel":"string"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.0.error.oneOf.1.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.0.error.oneOf.1.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.0.error.oneOf.1","typeLabel":"object"},{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.message","typeLabel":"string"},"reason":{"const":"execution_reverted","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.reason","typeLabel":"string"},"revert":{"properties":{"reason":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.reason","typeLabel":"string"},"type":{"oneOf":[{"type":"string","const":"contract_call","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.type.oneOf.0","typeLabel":"string"},{"type":"string","const":"wallet_authorization","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.type.oneOf.1","typeLabel":"string"},{"type":"string","const":"wallet_deployment","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.type.oneOf.2","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.type","typeLabel":"string"},"debug":{"description":"Structured debugging information for the revert","examples":[{"blockNumber":"38104211","call":{"args":[{"name":"to","type":"address","value":"0x9999999999999999999999999999999999999999"},{"name":"amount","type":"uint256","value":"1000000"}],"function":"transfer(address,uint256)","index":1,"to":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","value":"0"},"chain":"base","details":{"available":"500000","code":"insufficient_erc20_balance","required":"1000000","symbol":"USDC","token":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"},"message":"Wallet holds 0.5 USDC but the transfer requires 1 USDC","retryable":true,"revert":{"args":[{"type":"address","value":"0x1234567890abcdef1234567890abcdef1234abcd"},{"type":"uint256","value":"500000"},{"type":"uint256","value":"1000000"}],"name":"ERC20InsufficientBalance","selector":"0xe450d38c","signature":"ERC20InsufficientBalance(address,uint256,uint256)"}}],"properties":{"blockNumber":{"description":"Block the failure was observed at; replay with eth_call / debug_traceCall","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.blockNumber","typeLabel":"string"},"chain":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.chain","typeLabel":"string"},"details":{"oneOf":[{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required","spender","token"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.0.available","typeLabel":"string"},"code":{"const":"insufficient_erc20_allowance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.0.code","typeLabel":"string"},"required":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.0.required","typeLabel":"string"},"spender":{"description":"Address that needs the approval","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.0.spender","typeLabel":"string"},"token":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.0.token","typeLabel":"string"},"symbol":{"type":"string","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.0.symbol","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.0","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required","token"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.1.available","typeLabel":"string"},"code":{"const":"insufficient_erc20_balance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.1.code","typeLabel":"string"},"required":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.1.required","typeLabel":"string"},"token":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.1.token","typeLabel":"string"},"symbol":{"type":"string","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.1.symbol","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.1","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.2.available","typeLabel":"string"},"code":{"const":"insufficient_native_balance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.2.code","typeLabel":"string"},"required":{"description":"Wei needed to cover value plus gas","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.2.required","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.2","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code","entryPointCode","entryPointMessage"],"properties":{"code":{"const":"account_abstraction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.3.code","typeLabel":"string"},"entryPointCode":{"description":"ERC-4337 EntryPoint code, e.g. `AA21`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.3.entryPointCode","typeLabel":"string"},"entryPointMessage":{"description":"EntryPoint's own message, e.g. `didn't pay prefund`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.3.entryPointMessage","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.3","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code"],"properties":{"code":{"const":"contract_revert","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.4.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.4","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code","gasLimit"],"properties":{"code":{"const":"out_of_gas","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.5.code","typeLabel":"string"},"gasLimit":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.5.gasLimit","typeLabel":"string"},"gasUsed":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.5.gasUsed","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.5","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code"],"properties":{"code":{"const":"unknown","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.6.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.details","typeLabel":"object"},"message":{"description":"Human-readable summary of `details`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.message","typeLabel":"string"},"retryable":{"description":"True when the same transaction can succeed after the caller fixes state (funds, allowance, gas)","type":"boolean","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.retryable","typeLabel":"boolean"},"revert":{"description":"Raw revert as returned by the chain, decoded when the error is known","properties":{"args":{"description":"Positional decoded error arguments; empty when undecoded","items":{"properties":{"type":{"description":"Solidity type, e.g. `address` or `uint256`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.revert.args.items.[INDEX].type","typeLabel":"string"},"value":{"description":"Decoded value; bigints as decimal strings","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.revert.args.items.[INDEX].value","typeLabel":"string"},"name":{"description":"Parameter name; only set when the ABI came from the request","type":"string","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.revert.args.items.[INDEX].name","typeLabel":"string"}},"required":["type","value"],"type":"object","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.revert.args.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.revert.args","typeLabel":"object[]"},"name":{"type":"string","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.revert.name","typeLabel":"string"},"selector":{"description":"4-byte error selector; absent when the revert carried no data","pattern":"^0x[0-9a-fA-F]{8}$","type":"string","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.revert.selector","typeLabel":"string"},"signature":{"type":"string","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.revert.signature","typeLabel":"string"}},"required":["args"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.revert","typeLabel":"object"},"call":{"description":"The call in the batch that reverted; absent when the failure cannot be attributed to a call","properties":{"args":{"items":{"properties":{"type":{"description":"Solidity type, e.g. `address` or `uint256`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.call.args.items.[INDEX].type","typeLabel":"string"},"value":{"description":"Decoded value; bigints as decimal strings","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.call.args.items.[INDEX].value","typeLabel":"string"},"name":{"description":"Parameter name; only set when the ABI came from the request","type":"string","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.call.args.items.[INDEX].name","typeLabel":"string"}},"required":["type","value"],"type":"object","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.call.args.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.call.args","typeLabel":"object[]"},"index":{"description":"Index of the call within the transaction's batch","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.call.index","typeLabel":"integer"},"to":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.call.to","typeLabel":"string"},"value":{"description":"Native value sent with the call, in wei","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.call.value","typeLabel":"string"},"function":{"description":"Function signature, e.g. `transfer(address,uint256)`","type":"string","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.call.function","typeLabel":"string"}},"required":["args","index","to","value"],"type":"object","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug.call","typeLabel":"object"}},"required":["blockNumber","chain","details","message","retryable","revert"],"type":"object","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.debug","typeLabel":"object"},"explorerLink":{"type":"string","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.explorerLink","typeLabel":"string"},"reasonData":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.reasonData.oneOf.0.additionalProperties","typeLabel":"any"},"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.reasonData.oneOf.0","typeLabel":"object"},{"type":"string","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.reasonData.oneOf.1","typeLabel":"string"}],"uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.reasonData","typeLabel":"object | string"},"simulationLink":{"description":"Deprecated: no longer populated. Kept for backwards compatibility with previously failed transactions.","type":"string","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert.simulationLink","typeLabel":"string"}},"required":["reason","type"],"type":"object","uniqueKey":"tx.oneOf.0.error.oneOf.2.revert","typeLabel":"object"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.0.error.oneOf.2.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.0.error.oneOf.2.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.0.error.oneOf.2","typeLabel":"object"}],"uniqueKey":"tx.oneOf.0.error","typeLabel":"object"},"fees":{"description":"Transaction fee information including actual transaction fees, billed amounts, and billing status","properties":{"mode":{"enum":["project","user-fungible","user-native"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.fees.mode","typeLabel":"enum\u003cstring>"},"actual":{"oneOf":[{}],"uniqueKey":"tx.oneOf.0.fees.actual","typeLabel":"any"},"billed":{"properties":{"usd":{"type":"number","isRequired":true,"uniqueKey":"tx.oneOf.0.fees.billed.usd","typeLabel":"number"}},"required":["usd"],"type":"object","uniqueKey":"tx.oneOf.0.fees.billed","typeLabel":"object"},"billing":{"properties":{"status":{"enum":["failed","pending","settled"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.fees.billing.status","typeLabel":"enum\u003cstring>"}},"required":["status"],"type":"object","uniqueKey":"tx.oneOf.0.fees.billing","typeLabel":"object"},"estimate":{"oneOf":[{}],"uniqueKey":"tx.oneOf.0.fees.estimate","typeLabel":"any"}},"required":["mode"],"type":"object","uniqueKey":"tx.oneOf.0.fees","typeLabel":"object"},"sendParams":{"properties":{"params":{"description":"The parameters for the send token transaction","properties":{"recipient":{"description":"The recipient locator for the token","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.sendParams.params.recipient","typeLabel":"string"},"recipientAddress":{"description":"The recipient address for the token","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.sendParams.params.recipientAddress","typeLabel":"string"},"amount":{"description":"The amount of the token to send","type":"string","uniqueKey":"tx.oneOf.0.sendParams.params.amount","typeLabel":"string"}},"required":["recipient","recipientAddress"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.0.sendParams.params","typeLabel":"object"},"token":{"description":"The token locator that's being sent","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.0.sendParams.token","typeLabel":"string"}},"required":["params","token"],"type":"object","uniqueKey":"tx.oneOf.0.sendParams","typeLabel":"object"}},"isRequired":true,"uniqueKey":"tx.oneOf.0","typeLabel":"EVM MPC Wallet · object"},{"type":"object","title":"EVM Smart Wallet","description":"Complete transaction response including status, signing requirements, and wallet type specific data","required":["chainType","createdAt","id","onChain","params","status","walletType"],"properties":{"chainType":{"description":"The blockchain type of the wallet","enum":["aptos","evm","solana","stellar","sui"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.chainType","typeLabel":"enum\u003cstring>"},"createdAt":{"oneOf":[{"type":"number","description":"ISO timestamp when the transaction was created","isRequired":true,"uniqueKey":"tx.oneOf.1.createdAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"ISO timestamp when the transaction was created","isRequired":true,"uniqueKey":"tx.oneOf.1.createdAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.createdAt","typeLabel":"number | string"},"id":{"description":"Unique identifier for the transaction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.id","typeLabel":"string"},"onChain":{"description":"Transaction data specific to EVM smart wallets","properties":{"userOperation":{"properties":{"callData":{"description":"A hex string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.onChain.userOperation.callData","typeLabel":"string"},"callGasLimit":{"description":"A hex string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.onChain.userOperation.callGasLimit","typeLabel":"string"},"maxFeePerGas":{"description":"A hex string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.onChain.userOperation.maxFeePerGas","typeLabel":"string"},"maxPriorityFeePerGas":{"description":"A hex string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.onChain.userOperation.maxPriorityFeePerGas","typeLabel":"string"},"nonce":{"description":"A hex string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.onChain.userOperation.nonce","typeLabel":"string"},"preVerificationGas":{"description":"A hex string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.onChain.userOperation.preVerificationGas","typeLabel":"string"},"sender":{"description":"A hex string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.onChain.userOperation.sender","typeLabel":"string"},"signature":{"description":"A hex string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.onChain.userOperation.signature","typeLabel":"string"},"verificationGasLimit":{"description":"A hex string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.onChain.userOperation.verificationGasLimit","typeLabel":"string"},"factory":{"description":"A hex string","type":"string","uniqueKey":"tx.oneOf.1.onChain.userOperation.factory","typeLabel":"string"},"factoryData":{"description":"A hex string","type":"string","uniqueKey":"tx.oneOf.1.onChain.userOperation.factoryData","typeLabel":"string"},"paymaster":{"description":"A hex string","type":"string","uniqueKey":"tx.oneOf.1.onChain.userOperation.paymaster","typeLabel":"string"},"paymasterPostOpGasLimit":{"description":"A hex string","type":"string","uniqueKey":"tx.oneOf.1.onChain.userOperation.paymasterPostOpGasLimit","typeLabel":"string"},"paymasterVerificationGasLimit":{"description":"A hex string","type":"string","uniqueKey":"tx.oneOf.1.onChain.userOperation.paymasterVerificationGasLimit","typeLabel":"string"}},"required":["callData","callGasLimit","maxFeePerGas","maxPriorityFeePerGas","nonce","preVerificationGas","sender","signature","verificationGasLimit"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.onChain.userOperation","typeLabel":"object"},"userOperationHash":{"description":"A hex string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.onChain.userOperationHash","typeLabel":"string"},"explorerLink":{"type":"string","uniqueKey":"tx.oneOf.1.onChain.explorerLink","typeLabel":"string"},"proxiedTxId":{"description":"A hex string","type":"string","uniqueKey":"tx.oneOf.1.onChain.proxiedTxId","typeLabel":"string"},"txId":{"description":"A hex string","type":"string","uniqueKey":"tx.oneOf.1.onChain.txId","typeLabel":"string"}},"required":["userOperation","userOperationHash"],"title":"EVM smart wallet transaction data","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.onChain","typeLabel":"EVM smart wallet transaction data · object"},"params":{"properties":{"calls":{"description":"Array of transaction calls to execute","items":{"oneOf":[{"type":"object","title":"EVM contract call transaction parameters","description":"Transaction data to execute","required":["abi","address","args","functionName"],"properties":{"abi":{"description":"The ABI for the function to call","items":{"oneOf":[{}],"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.0.abi.items.[INDEX]","typeLabel":"any"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.0.abi","typeLabel":"any[]"},"address":{"description":"The recipient address for this transaction call","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.0.address","typeLabel":"string"},"args":{"description":"The arguments to pass to the function","items":{"oneOf":[{}],"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.0.args.items.[INDEX]","typeLabel":"any"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.0.args","typeLabel":"any[]"},"functionName":{"description":"The name of the function to call","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.0.functionName","typeLabel":"string"},"value":{"default":"0","description":"The amount of native token to send in wei","type":"string","uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.0","typeLabel":"EVM contract call transaction parameters · object"},{"type":"object","title":"EVM direct calldata transaction parameters","description":"Transaction data to execute","required":["data","to","value"],"properties":{"data":{"description":"The encoded calldata for this transaction","isRequired":true,"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.1.data","typeLabel":"any"},"to":{"description":"The recipient address for this transaction call","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.1.to","typeLabel":"string"},"value":{"description":"The amount of native token to send in wei","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.1.value","typeLabel":"string"}},"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.1","typeLabel":"EVM direct calldata transaction parameters · object"},{"type":"object","title":"EVM serialized transaction parameters","description":"Transaction data to execute","required":["transaction"],"properties":{"transaction":{"description":"Serialized EVM transaction","isRequired":true,"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.2.transaction","typeLabel":"any"}},"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX].oneOf.2","typeLabel":"EVM serialized transaction parameters · object"}],"uniqueKey":"tx.oneOf.1.params.calls.items.[INDEX]","typeLabel":"EVM contract call transaction parameters · object | EVM direct calldata transaction parameters · object | EVM serialized transaction parameters · object"},"minItems":1,"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.1.params.calls","typeLabel":"(EVM contract call transaction parameters · object | EVM direct calldata transaction parameters · object | EVM serialized transaction parameters · object)[]"},"chain":{"description":"The chain on which the transaction will be executed","enum":["apechain","arbitrum","arbitrum-sepolia","arbitrumnova","arc","arc-testnet","avalanche","avalanche-fuji","base","base-sepolia","bsc","celo","celo-sepolia","curtis","ethereum","ethereum-sepolia","flow","flow-testnet","mantle","mantle-sepolia","optimism","optimism-sepolia","polygon","polygon-amoy","robinhood-chain","robinhood-chain-testnet","scroll","scroll-sepolia","shape","story","story-testnet","tempo","tempo-testnet","zora","zora-sepolia"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.chain","typeLabel":"enum\u003cstring>"},"signer":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The full signer object who will submit this transaction","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.0.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.1.params.signer.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The full signer object who will submit this transaction","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.1.params.signer.oneOf.1.name","typeLabel":"string"}},"uniqueKey":"tx.oneOf.1.params.signer.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The full signer object who will submit this transaction","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.2.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.1.params.signer.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The full signer object who will submit this transaction","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.3.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.1.params.signer.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The full signer object who will submit this transaction","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.4.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.1.params.signer.oneOf.4","typeLabel":"object"},{"type":"object","description":"The full signer object who will submit this transaction","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.5.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.1.params.signer.oneOf.5","typeLabel":"object"},{"type":"object","description":"The full signer object who will submit this transaction","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.6.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.1.params.signer.oneOf.6","typeLabel":"object"},{"type":"object","title":"Quorum Signer Reference","description":"The full signer object who will submit this transaction","required":["locator","type"],"properties":{"locator":{"description":"The `quorum:\u003cid>` locator of the quorum signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.7.locator","typeLabel":"string"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.params.signer.oneOf.7.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.1.params.signer.oneOf.7","typeLabel":"Quorum Signer Reference · object"}],"uniqueKey":"tx.oneOf.1.params.signer","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object · Quorum Signer Reference · object"}},"required":["calls","chain"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.params","typeLabel":"object"},"status":{"description":"Current status of the transaction","enum":["awaiting-approval","failed","pending","success"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.status","typeLabel":"enum\u003cstring>"},"walletType":{"description":"The wallet type (smart or mpc)","enum":["mpc","smart"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.walletType","typeLabel":"enum\u003cstring>"},"approvals":{"description":"Complete approval data including requirements, pending and submitted signatures","properties":{"pending":{"description":"List of pending signatures","items":{"oneOf":[{"type":"object","description":"Approval entry for a quorum (multisig) admin signer","required":["quorumApprovals","signer"],"properties":{"quorumApprovals":{"description":"Per-member progress of an m-of-n quorum signer","properties":{"pending":{"description":"Quorum members that have not yet submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member that has not approved yet, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member that has not approved yet, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member needs to sign","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].message","typeLabel":"string"}},"required":["member","message"],"type":"object","uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending","typeLabel":"object[]"},"remaining":{"description":"Number of member approvals still outstanding to reach the threshold","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.remaining","typeLabel":"number"},"submitted":{"description":"Quorum members that have already submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member who submitted this signature, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member who submitted this signature, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].signature","typeLabel":"string"},"submittedAt":{"oneOf":[{"type":"number","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt","typeLabel":"number | string"}},"required":["member","message","signature","submittedAt"],"type":"object","uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted","typeLabel":"object[]"},"threshold":{"description":"Number of member approvals required to satisfy the quorum","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.threshold","typeLabel":"number"}},"required":["pending","remaining","submitted","threshold"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals","typeLabel":"object"},"signer":{"description":"The quorum signer this approval entry belongs to","properties":{"locator":{"description":"The `quorum:\u003cid>` locator of the quorum signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.signer.locator","typeLabel":"string"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.signer.type","typeLabel":"string"}},"required":["locator","type"],"title":"Quorum Signer Reference","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0.signer","typeLabel":"Quorum Signer Reference · object"}},"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["message","signer"],"properties":{"message":{"description":"The message that needs to be signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.message","typeLabel":"string"},"signer":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The full signer object that's pending approval","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The full signer object that's pending approval","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4","typeLabel":"object"},{"type":"object","description":"The full signer object that's pending approval","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5","typeLabel":"object"},{"type":"object","description":"The full signer object that's pending approval","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1.signer","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"}},"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"tx.oneOf.1.approvals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.pending","typeLabel":"object[]"},"submitted":{"description":"Record of all submitted signatures","items":{"oneOf":[{"type":"object","description":"Approval entry for a quorum (multisig) admin signer","required":["quorumApprovals","signer"],"properties":{"quorumApprovals":{"description":"Per-member progress of an m-of-n quorum signer","properties":{"pending":{"description":"Quorum members that have not yet submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member that has not approved yet, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member that has not approved yet, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member needs to sign","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].message","typeLabel":"string"}},"required":["member","message"],"type":"object","uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending","typeLabel":"object[]"},"remaining":{"description":"Number of member approvals still outstanding to reach the threshold","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.remaining","typeLabel":"number"},"submitted":{"description":"Quorum members that have already submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member who submitted this signature, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member who submitted this signature, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].signature","typeLabel":"string"},"submittedAt":{"oneOf":[{"type":"number","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt","typeLabel":"number | string"}},"required":["member","message","signature","submittedAt"],"type":"object","uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted","typeLabel":"object[]"},"threshold":{"description":"Number of member approvals required to satisfy the quorum","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.threshold","typeLabel":"number"}},"required":["pending","remaining","submitted","threshold"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals","typeLabel":"object"},"signer":{"description":"The quorum signer this approval entry belongs to","properties":{"locator":{"description":"The `quorum:\u003cid>` locator of the quorum signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.signer.locator","typeLabel":"string"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.signer.type","typeLabel":"string"}},"required":["locator","type"],"title":"Quorum Signer Reference","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0.signer","typeLabel":"Quorum Signer Reference · object"}},"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["message","signature","signer","submittedAt"],"properties":{"message":{"description":"The message that was signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signature","typeLabel":"string"},"signer":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The full signer object who submitted this signature","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The full signer object who submitted this signature","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4","typeLabel":"object"},{"type":"object","description":"The full signer object who submitted this signature","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5","typeLabel":"object"},{"type":"object","description":"The full signer object who submitted this signature","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.signer","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"submittedAt":{"oneOf":[{"type":"number","description":"When the signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.submittedAt","typeLabel":"number | string"},"metadata":{"description":"Additional metadata about the signature submission","properties":{"deviceInfo":{"type":"string","uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.metadata.deviceInfo","typeLabel":"string"},"ipAddress":{"type":"string","uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.metadata.ipAddress","typeLabel":"string"},"userAgent":{"type":"string","uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.metadata.userAgent","typeLabel":"string"}},"type":"object","uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1.metadata","typeLabel":"object"}},"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"tx.oneOf.1.approvals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.1.approvals.submitted","typeLabel":"object[]"},"required":{"description":"Number of required approvals for the transaction","type":"number","uniqueKey":"tx.oneOf.1.approvals.required","typeLabel":"number"}},"required":["pending","submitted"],"type":"object","uniqueKey":"tx.oneOf.1.approvals","typeLabel":"object"},"completedAt":{"oneOf":[{"type":"number","description":"ISO timestamp when the transaction reached finality","uniqueKey":"tx.oneOf.1.completedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"ISO timestamp when the transaction reached finality","uniqueKey":"tx.oneOf.1.completedAt.oneOf.1","typeLabel":"string"}],"uniqueKey":"tx.oneOf.1.completedAt","typeLabel":"number | string"},"error":{"oneOf":[{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.0.message","typeLabel":"string"},"reason":{"const":"program_error","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.0.reason","typeLabel":"string"},"logs":{"oneOf":[{}],"uniqueKey":"tx.oneOf.1.error.oneOf.0.logs","typeLabel":"any"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.1.error.oneOf.0.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.1.error.oneOf.0.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.1.error.oneOf.0","typeLabel":"object"},{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.1.message","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","const":"build_failed","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.1.reason.oneOf.0","typeLabel":"string"},{"type":"string","const":"failed_to_land_on_chain","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.1.reason.oneOf.1","typeLabel":"string"},{"type":"string","const":"sanctioned_wallet_address","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.1.reason.oneOf.2","typeLabel":"string"},{"type":"string","const":"unknown","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.1.reason.oneOf.3","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.1.reason","typeLabel":"string"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.1.error.oneOf.1.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.1.error.oneOf.1.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.1.error.oneOf.1","typeLabel":"object"},{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.message","typeLabel":"string"},"reason":{"const":"execution_reverted","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.reason","typeLabel":"string"},"revert":{"properties":{"reason":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.reason","typeLabel":"string"},"type":{"oneOf":[{"type":"string","const":"contract_call","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.type.oneOf.0","typeLabel":"string"},{"type":"string","const":"wallet_authorization","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.type.oneOf.1","typeLabel":"string"},{"type":"string","const":"wallet_deployment","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.type.oneOf.2","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.type","typeLabel":"string"},"debug":{"description":"Structured debugging information for the revert","examples":[{"blockNumber":"38104211","call":{"args":[{"name":"to","type":"address","value":"0x9999999999999999999999999999999999999999"},{"name":"amount","type":"uint256","value":"1000000"}],"function":"transfer(address,uint256)","index":1,"to":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","value":"0"},"chain":"base","details":{"available":"500000","code":"insufficient_erc20_balance","required":"1000000","symbol":"USDC","token":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"},"message":"Wallet holds 0.5 USDC but the transfer requires 1 USDC","retryable":true,"revert":{"args":[{"type":"address","value":"0x1234567890abcdef1234567890abcdef1234abcd"},{"type":"uint256","value":"500000"},{"type":"uint256","value":"1000000"}],"name":"ERC20InsufficientBalance","selector":"0xe450d38c","signature":"ERC20InsufficientBalance(address,uint256,uint256)"}}],"properties":{"blockNumber":{"description":"Block the failure was observed at; replay with eth_call / debug_traceCall","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.blockNumber","typeLabel":"string"},"chain":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.chain","typeLabel":"string"},"details":{"oneOf":[{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required","spender","token"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.0.available","typeLabel":"string"},"code":{"const":"insufficient_erc20_allowance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.0.code","typeLabel":"string"},"required":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.0.required","typeLabel":"string"},"spender":{"description":"Address that needs the approval","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.0.spender","typeLabel":"string"},"token":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.0.token","typeLabel":"string"},"symbol":{"type":"string","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.0.symbol","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.0","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required","token"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.1.available","typeLabel":"string"},"code":{"const":"insufficient_erc20_balance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.1.code","typeLabel":"string"},"required":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.1.required","typeLabel":"string"},"token":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.1.token","typeLabel":"string"},"symbol":{"type":"string","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.1.symbol","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.1","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.2.available","typeLabel":"string"},"code":{"const":"insufficient_native_balance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.2.code","typeLabel":"string"},"required":{"description":"Wei needed to cover value plus gas","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.2.required","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.2","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code","entryPointCode","entryPointMessage"],"properties":{"code":{"const":"account_abstraction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.3.code","typeLabel":"string"},"entryPointCode":{"description":"ERC-4337 EntryPoint code, e.g. `AA21`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.3.entryPointCode","typeLabel":"string"},"entryPointMessage":{"description":"EntryPoint's own message, e.g. `didn't pay prefund`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.3.entryPointMessage","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.3","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code"],"properties":{"code":{"const":"contract_revert","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.4.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.4","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code","gasLimit"],"properties":{"code":{"const":"out_of_gas","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.5.code","typeLabel":"string"},"gasLimit":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.5.gasLimit","typeLabel":"string"},"gasUsed":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.5.gasUsed","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.5","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code"],"properties":{"code":{"const":"unknown","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.6.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.details","typeLabel":"object"},"message":{"description":"Human-readable summary of `details`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.message","typeLabel":"string"},"retryable":{"description":"True when the same transaction can succeed after the caller fixes state (funds, allowance, gas)","type":"boolean","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.retryable","typeLabel":"boolean"},"revert":{"description":"Raw revert as returned by the chain, decoded when the error is known","properties":{"args":{"description":"Positional decoded error arguments; empty when undecoded","items":{"properties":{"type":{"description":"Solidity type, e.g. `address` or `uint256`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.revert.args.items.[INDEX].type","typeLabel":"string"},"value":{"description":"Decoded value; bigints as decimal strings","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.revert.args.items.[INDEX].value","typeLabel":"string"},"name":{"description":"Parameter name; only set when the ABI came from the request","type":"string","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.revert.args.items.[INDEX].name","typeLabel":"string"}},"required":["type","value"],"type":"object","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.revert.args.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.revert.args","typeLabel":"object[]"},"name":{"type":"string","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.revert.name","typeLabel":"string"},"selector":{"description":"4-byte error selector; absent when the revert carried no data","pattern":"^0x[0-9a-fA-F]{8}$","type":"string","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.revert.selector","typeLabel":"string"},"signature":{"type":"string","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.revert.signature","typeLabel":"string"}},"required":["args"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.revert","typeLabel":"object"},"call":{"description":"The call in the batch that reverted; absent when the failure cannot be attributed to a call","properties":{"args":{"items":{"properties":{"type":{"description":"Solidity type, e.g. `address` or `uint256`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.call.args.items.[INDEX].type","typeLabel":"string"},"value":{"description":"Decoded value; bigints as decimal strings","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.call.args.items.[INDEX].value","typeLabel":"string"},"name":{"description":"Parameter name; only set when the ABI came from the request","type":"string","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.call.args.items.[INDEX].name","typeLabel":"string"}},"required":["type","value"],"type":"object","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.call.args.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.call.args","typeLabel":"object[]"},"index":{"description":"Index of the call within the transaction's batch","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.call.index","typeLabel":"integer"},"to":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.call.to","typeLabel":"string"},"value":{"description":"Native value sent with the call, in wei","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.call.value","typeLabel":"string"},"function":{"description":"Function signature, e.g. `transfer(address,uint256)`","type":"string","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.call.function","typeLabel":"string"}},"required":["args","index","to","value"],"type":"object","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug.call","typeLabel":"object"}},"required":["blockNumber","chain","details","message","retryable","revert"],"type":"object","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.debug","typeLabel":"object"},"explorerLink":{"type":"string","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.explorerLink","typeLabel":"string"},"reasonData":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.reasonData.oneOf.0.additionalProperties","typeLabel":"any"},"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.reasonData.oneOf.0","typeLabel":"object"},{"type":"string","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.reasonData.oneOf.1","typeLabel":"string"}],"uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.reasonData","typeLabel":"object | string"},"simulationLink":{"description":"Deprecated: no longer populated. Kept for backwards compatibility with previously failed transactions.","type":"string","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert.simulationLink","typeLabel":"string"}},"required":["reason","type"],"type":"object","uniqueKey":"tx.oneOf.1.error.oneOf.2.revert","typeLabel":"object"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.1.error.oneOf.2.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.1.error.oneOf.2.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.1.error.oneOf.2","typeLabel":"object"}],"uniqueKey":"tx.oneOf.1.error","typeLabel":"object"},"fees":{"description":"Transaction fee information including actual transaction fees, billed amounts, and billing status","properties":{"mode":{"enum":["project","user-fungible","user-native"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.fees.mode","typeLabel":"enum\u003cstring>"},"actual":{"oneOf":[{}],"uniqueKey":"tx.oneOf.1.fees.actual","typeLabel":"any"},"billed":{"properties":{"usd":{"type":"number","isRequired":true,"uniqueKey":"tx.oneOf.1.fees.billed.usd","typeLabel":"number"}},"required":["usd"],"type":"object","uniqueKey":"tx.oneOf.1.fees.billed","typeLabel":"object"},"billing":{"properties":{"status":{"enum":["failed","pending","settled"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.fees.billing.status","typeLabel":"enum\u003cstring>"}},"required":["status"],"type":"object","uniqueKey":"tx.oneOf.1.fees.billing","typeLabel":"object"},"estimate":{"oneOf":[{}],"uniqueKey":"tx.oneOf.1.fees.estimate","typeLabel":"any"}},"required":["mode"],"type":"object","uniqueKey":"tx.oneOf.1.fees","typeLabel":"object"},"sendParams":{"properties":{"params":{"description":"The parameters for the send token transaction","properties":{"recipient":{"description":"The recipient locator for the token","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.sendParams.params.recipient","typeLabel":"string"},"recipientAddress":{"description":"The recipient address for the token","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.sendParams.params.recipientAddress","typeLabel":"string"},"amount":{"description":"The amount of the token to send","type":"string","uniqueKey":"tx.oneOf.1.sendParams.params.amount","typeLabel":"string"}},"required":["recipient","recipientAddress"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.1.sendParams.params","typeLabel":"object"},"token":{"description":"The token locator that's being sent","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.1.sendParams.token","typeLabel":"string"}},"required":["params","token"],"type":"object","uniqueKey":"tx.oneOf.1.sendParams","typeLabel":"object"}},"isRequired":true,"uniqueKey":"tx.oneOf.1","typeLabel":"EVM Smart Wallet · object"},{"type":"object","title":"Stellar Smart Wallet","description":"Complete transaction response including status, signing requirements, and wallet type specific data","required":["chainType","createdAt","id","onChain","params","status","walletType"],"properties":{"chainType":{"description":"The blockchain type of the wallet","enum":["aptos","evm","solana","stellar","sui"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.chainType","typeLabel":"enum\u003cstring>"},"createdAt":{"oneOf":[{"type":"number","description":"ISO timestamp when the transaction was created","isRequired":true,"uniqueKey":"tx.oneOf.2.createdAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"ISO timestamp when the transaction was created","isRequired":true,"uniqueKey":"tx.oneOf.2.createdAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.createdAt","typeLabel":"number | string"},"id":{"description":"Unique identifier for the transaction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.id","typeLabel":"string"},"onChain":{"properties":{"expiration":{"description":"The expiration of the transaction","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.2.onChain.expiration","typeLabel":"number"},"transaction":{"description":"The Stellar Transaction Envelope","properties":{"method":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.onChain.transaction.method","typeLabel":"string"},"tx":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.onChain.transaction.tx","typeLabel":"string"}},"required":["method","tx"],"title":"Stellar on-chain transaction","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.onChain.transaction","typeLabel":"Stellar on-chain transaction · object"},"explorerLink":{"description":"Optional link to view the transaction in an explorer","type":"string","uniqueKey":"tx.oneOf.2.onChain.explorerLink","typeLabel":"string"},"ledger":{"description":"The ledger number where the transaction was included","type":"number","uniqueKey":"tx.oneOf.2.onChain.ledger","typeLabel":"number"},"proxiedTxId":{"description":"For regulated transfers, the delivery transaction hash","type":"string","uniqueKey":"tx.oneOf.2.onChain.proxiedTxId","typeLabel":"string"},"result":{"description":"The Transaction Result in XDR format","uniqueKey":"tx.oneOf.2.onChain.result","typeLabel":"any"},"txId":{"description":"The transaction hash","type":"string","uniqueKey":"tx.oneOf.2.onChain.txId","typeLabel":"string"}},"required":["expiration","transaction"],"title":"Stellar on-chain data","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.onChain","typeLabel":"Stellar on-chain data · object"},"params":{"properties":{"transaction":{"oneOf":[{"type":"object","title":"Stellar migrate wallet transaction","description":"Stellar transaction to execute","required":["type"],"example":{"type":"migrate-wallet"},"properties":{"type":{"const":"migrate-wallet","description":"The type of transaction to execute","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.0","typeLabel":"Stellar migrate wallet transaction · object"},{"type":"object","title":"Stellar contract call transaction parameters","description":"Stellar transaction to execute","required":["args","contractId","method","type"],"example":{"args":{"amount":"10000000","from":"CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSC4","to":"GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ"},"contractId":"CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4WWFEIE3USCIHMXQDAMA","method":"transfer","type":"contract-call"},"properties":{"args":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.args.additionalProperties","typeLabel":"any"},"description":"The arguments to pass to the function","propertyNames":{"type":"string"},"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.args","typeLabel":"object"},"contractId":{"description":"The recipient address for this transaction call","examples":["CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4WWFEIE3USCIHMXQDAMA"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.contractId","typeLabel":"string"},"method":{"description":"The name of the function to call","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.method","typeLabel":"string"},"type":{"const":"contract-call","description":"The type of transaction to execute","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.type","typeLabel":"string"},"memo":{"oneOf":[{"type":"object","description":"The memo for the transaction","required":["type","value"],"example":{"type":"text","value":"Hello, world!"},"properties":{"type":{"const":"hash","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.memo.oneOf.0.type","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.memo.oneOf.0.value","typeLabel":"string"}},"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.memo.oneOf.0","typeLabel":"object"},{"type":"object","description":"The memo for the transaction","required":["type","value"],"example":{"type":"text","value":"Hello, world!"},"properties":{"type":{"const":"id","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.memo.oneOf.1.type","typeLabel":"string"},"value":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.memo.oneOf.1.value","typeLabel":"string"}},"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.memo.oneOf.1","typeLabel":"object"},{"type":"object","description":"The memo for the transaction","required":["type","value"],"example":{"type":"text","value":"Hello, world!"},"properties":{"type":{"const":"text","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.memo.oneOf.2.type","typeLabel":"string"},"value":{"maxLength":28,"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.memo.oneOf.2.value","typeLabel":"string"}},"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.memo.oneOf.2","typeLabel":"object"}],"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1.memo","typeLabel":"object"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.1","typeLabel":"Stellar contract call transaction parameters · object"},{"type":"object","title":"Stellar upgrade wallet transaction","description":"Stellar transaction to execute","required":["type"],"example":{"type":"upgrade-wallet"},"properties":{"type":{"const":"upgrade-wallet","description":"The type of transaction to execute","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction.oneOf.2","typeLabel":"Stellar upgrade wallet transaction · object"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.params.transaction","typeLabel":"Stellar migrate wallet transaction · object | Stellar contract call transaction parameters · object | Stellar upgrade wallet transaction · object"},"approvingMembers":{"description":"When `signer` is a quorum, the members designated to approve: exactly `threshold` distinct member locators. Validated on Stellar, where any `threshold` members may approve.","items":{"description":"A signer locator that can be either a of format '\u003csignerAddress>' for external wallet type signers or '\u003csignerType>:\u003csignerIdentifier>'","examples":["passkey:cWtP7gmZbd98HbKUuGXx5Q","api-key:123456789","external-wallet:0x1234567890123456789012345678901234567890","server:0x1234567890123456789012345678901234567890","email:test@example.com","phone:+1234567890","device:BIVmCqMz8QJB+se2kJEpGQ...","quorum:123e4567-e89b-12d3-a456-426614174000"],"title":"Signer Locator","type":"string","uniqueKey":"tx.oneOf.2.params.approvingMembers.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"tx.oneOf.2.params.approvingMembers","typeLabel":"string[]"},"signer":{"description":"The locator for the signer who will submit this transaction. Defaults to the admin signer.","examples":["passkey:cWtP7gmZbd98HbKUuGXx5Q","api-key:123456789","external-wallet:0x1234567890123456789012345678901234567890","server:0x1234567890123456789012345678901234567890","email:test@example.com","phone:+1234567890","device:BIVmCqMz8QJB+se2kJEpGQ...","quorum:123e4567-e89b-12d3-a456-426614174000"],"title":"Signer Locator","type":"string","uniqueKey":"tx.oneOf.2.params.signer","typeLabel":"string"}},"required":["transaction"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.params","typeLabel":"object"},"status":{"description":"Current status of the transaction","enum":["awaiting-approval","failed","pending","success"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.status","typeLabel":"enum\u003cstring>"},"walletType":{"description":"The wallet type (smart or mpc)","enum":["mpc","smart"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.walletType","typeLabel":"enum\u003cstring>"},"approvals":{"description":"Complete approval data including requirements, pending and submitted signatures","properties":{"pending":{"description":"List of pending signatures","items":{"oneOf":[{"type":"object","description":"Approval entry for a quorum (multisig) admin signer","required":["quorumApprovals","signer"],"properties":{"quorumApprovals":{"description":"Per-member progress of an m-of-n quorum signer","properties":{"pending":{"description":"Quorum members that have not yet submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member that has not approved yet, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member that has not approved yet, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member needs to sign","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].message","typeLabel":"string"}},"required":["member","message"],"type":"object","uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending","typeLabel":"object[]"},"remaining":{"description":"Number of member approvals still outstanding to reach the threshold","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.remaining","typeLabel":"number"},"submitted":{"description":"Quorum members that have already submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member who submitted this signature, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member who submitted this signature, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].signature","typeLabel":"string"},"submittedAt":{"oneOf":[{"type":"number","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt","typeLabel":"number | string"}},"required":["member","message","signature","submittedAt"],"type":"object","uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted","typeLabel":"object[]"},"threshold":{"description":"Number of member approvals required to satisfy the quorum","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.threshold","typeLabel":"number"}},"required":["pending","remaining","submitted","threshold"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals","typeLabel":"object"},"signer":{"description":"The quorum signer this approval entry belongs to","properties":{"locator":{"description":"The `quorum:\u003cid>` locator of the quorum signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.signer.locator","typeLabel":"string"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.signer.type","typeLabel":"string"}},"required":["locator","type"],"title":"Quorum Signer Reference","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0.signer","typeLabel":"Quorum Signer Reference · object"}},"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["message","signer"],"properties":{"message":{"description":"The message that needs to be signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.message","typeLabel":"string"},"signer":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The full signer object that's pending approval","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The full signer object that's pending approval","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4","typeLabel":"object"},{"type":"object","description":"The full signer object that's pending approval","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5","typeLabel":"object"},{"type":"object","description":"The full signer object that's pending approval","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1.signer","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"}},"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"tx.oneOf.2.approvals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.pending","typeLabel":"object[]"},"submitted":{"description":"Record of all submitted signatures","items":{"oneOf":[{"type":"object","description":"Approval entry for a quorum (multisig) admin signer","required":["quorumApprovals","signer"],"properties":{"quorumApprovals":{"description":"Per-member progress of an m-of-n quorum signer","properties":{"pending":{"description":"Quorum members that have not yet submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member that has not approved yet, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member that has not approved yet, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member needs to sign","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].message","typeLabel":"string"}},"required":["member","message"],"type":"object","uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending","typeLabel":"object[]"},"remaining":{"description":"Number of member approvals still outstanding to reach the threshold","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.remaining","typeLabel":"number"},"submitted":{"description":"Quorum members that have already submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member who submitted this signature, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member who submitted this signature, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].signature","typeLabel":"string"},"submittedAt":{"oneOf":[{"type":"number","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt","typeLabel":"number | string"}},"required":["member","message","signature","submittedAt"],"type":"object","uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted","typeLabel":"object[]"},"threshold":{"description":"Number of member approvals required to satisfy the quorum","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.threshold","typeLabel":"number"}},"required":["pending","remaining","submitted","threshold"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals","typeLabel":"object"},"signer":{"description":"The quorum signer this approval entry belongs to","properties":{"locator":{"description":"The `quorum:\u003cid>` locator of the quorum signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.signer.locator","typeLabel":"string"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.signer.type","typeLabel":"string"}},"required":["locator","type"],"title":"Quorum Signer Reference","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0.signer","typeLabel":"Quorum Signer Reference · object"}},"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["message","signature","signer","submittedAt"],"properties":{"message":{"description":"The message that was signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signature","typeLabel":"string"},"signer":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The full signer object who submitted this signature","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The full signer object who submitted this signature","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4","typeLabel":"object"},{"type":"object","description":"The full signer object who submitted this signature","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5","typeLabel":"object"},{"type":"object","description":"The full signer object who submitted this signature","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.signer","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"submittedAt":{"oneOf":[{"type":"number","description":"When the signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.submittedAt","typeLabel":"number | string"},"metadata":{"description":"Additional metadata about the signature submission","properties":{"deviceInfo":{"type":"string","uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.metadata.deviceInfo","typeLabel":"string"},"ipAddress":{"type":"string","uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.metadata.ipAddress","typeLabel":"string"},"userAgent":{"type":"string","uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.metadata.userAgent","typeLabel":"string"}},"type":"object","uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1.metadata","typeLabel":"object"}},"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"tx.oneOf.2.approvals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.2.approvals.submitted","typeLabel":"object[]"},"required":{"description":"Number of required approvals for the transaction","type":"number","uniqueKey":"tx.oneOf.2.approvals.required","typeLabel":"number"}},"required":["pending","submitted"],"type":"object","uniqueKey":"tx.oneOf.2.approvals","typeLabel":"object"},"completedAt":{"oneOf":[{"type":"number","description":"ISO timestamp when the transaction reached finality","uniqueKey":"tx.oneOf.2.completedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"ISO timestamp when the transaction reached finality","uniqueKey":"tx.oneOf.2.completedAt.oneOf.1","typeLabel":"string"}],"uniqueKey":"tx.oneOf.2.completedAt","typeLabel":"number | string"},"error":{"oneOf":[{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.0.message","typeLabel":"string"},"reason":{"const":"program_error","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.0.reason","typeLabel":"string"},"logs":{"oneOf":[{}],"uniqueKey":"tx.oneOf.2.error.oneOf.0.logs","typeLabel":"any"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.2.error.oneOf.0.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.2.error.oneOf.0.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.2.error.oneOf.0","typeLabel":"object"},{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.1.message","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","const":"build_failed","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.1.reason.oneOf.0","typeLabel":"string"},{"type":"string","const":"failed_to_land_on_chain","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.1.reason.oneOf.1","typeLabel":"string"},{"type":"string","const":"sanctioned_wallet_address","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.1.reason.oneOf.2","typeLabel":"string"},{"type":"string","const":"unknown","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.1.reason.oneOf.3","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.1.reason","typeLabel":"string"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.2.error.oneOf.1.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.2.error.oneOf.1.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.2.error.oneOf.1","typeLabel":"object"},{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.message","typeLabel":"string"},"reason":{"const":"execution_reverted","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.reason","typeLabel":"string"},"revert":{"properties":{"reason":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.reason","typeLabel":"string"},"type":{"oneOf":[{"type":"string","const":"contract_call","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.type.oneOf.0","typeLabel":"string"},{"type":"string","const":"wallet_authorization","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.type.oneOf.1","typeLabel":"string"},{"type":"string","const":"wallet_deployment","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.type.oneOf.2","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.type","typeLabel":"string"},"debug":{"description":"Structured debugging information for the revert","examples":[{"blockNumber":"38104211","call":{"args":[{"name":"to","type":"address","value":"0x9999999999999999999999999999999999999999"},{"name":"amount","type":"uint256","value":"1000000"}],"function":"transfer(address,uint256)","index":1,"to":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","value":"0"},"chain":"base","details":{"available":"500000","code":"insufficient_erc20_balance","required":"1000000","symbol":"USDC","token":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"},"message":"Wallet holds 0.5 USDC but the transfer requires 1 USDC","retryable":true,"revert":{"args":[{"type":"address","value":"0x1234567890abcdef1234567890abcdef1234abcd"},{"type":"uint256","value":"500000"},{"type":"uint256","value":"1000000"}],"name":"ERC20InsufficientBalance","selector":"0xe450d38c","signature":"ERC20InsufficientBalance(address,uint256,uint256)"}}],"properties":{"blockNumber":{"description":"Block the failure was observed at; replay with eth_call / debug_traceCall","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.blockNumber","typeLabel":"string"},"chain":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.chain","typeLabel":"string"},"details":{"oneOf":[{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required","spender","token"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.0.available","typeLabel":"string"},"code":{"const":"insufficient_erc20_allowance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.0.code","typeLabel":"string"},"required":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.0.required","typeLabel":"string"},"spender":{"description":"Address that needs the approval","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.0.spender","typeLabel":"string"},"token":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.0.token","typeLabel":"string"},"symbol":{"type":"string","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.0.symbol","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.0","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required","token"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.1.available","typeLabel":"string"},"code":{"const":"insufficient_erc20_balance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.1.code","typeLabel":"string"},"required":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.1.required","typeLabel":"string"},"token":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.1.token","typeLabel":"string"},"symbol":{"type":"string","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.1.symbol","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.1","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.2.available","typeLabel":"string"},"code":{"const":"insufficient_native_balance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.2.code","typeLabel":"string"},"required":{"description":"Wei needed to cover value plus gas","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.2.required","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.2","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code","entryPointCode","entryPointMessage"],"properties":{"code":{"const":"account_abstraction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.3.code","typeLabel":"string"},"entryPointCode":{"description":"ERC-4337 EntryPoint code, e.g. `AA21`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.3.entryPointCode","typeLabel":"string"},"entryPointMessage":{"description":"EntryPoint's own message, e.g. `didn't pay prefund`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.3.entryPointMessage","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.3","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code"],"properties":{"code":{"const":"contract_revert","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.4.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.4","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code","gasLimit"],"properties":{"code":{"const":"out_of_gas","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.5.code","typeLabel":"string"},"gasLimit":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.5.gasLimit","typeLabel":"string"},"gasUsed":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.5.gasUsed","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.5","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code"],"properties":{"code":{"const":"unknown","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.6.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.details","typeLabel":"object"},"message":{"description":"Human-readable summary of `details`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.message","typeLabel":"string"},"retryable":{"description":"True when the same transaction can succeed after the caller fixes state (funds, allowance, gas)","type":"boolean","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.retryable","typeLabel":"boolean"},"revert":{"description":"Raw revert as returned by the chain, decoded when the error is known","properties":{"args":{"description":"Positional decoded error arguments; empty when undecoded","items":{"properties":{"type":{"description":"Solidity type, e.g. `address` or `uint256`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.revert.args.items.[INDEX].type","typeLabel":"string"},"value":{"description":"Decoded value; bigints as decimal strings","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.revert.args.items.[INDEX].value","typeLabel":"string"},"name":{"description":"Parameter name; only set when the ABI came from the request","type":"string","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.revert.args.items.[INDEX].name","typeLabel":"string"}},"required":["type","value"],"type":"object","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.revert.args.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.revert.args","typeLabel":"object[]"},"name":{"type":"string","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.revert.name","typeLabel":"string"},"selector":{"description":"4-byte error selector; absent when the revert carried no data","pattern":"^0x[0-9a-fA-F]{8}$","type":"string","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.revert.selector","typeLabel":"string"},"signature":{"type":"string","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.revert.signature","typeLabel":"string"}},"required":["args"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.revert","typeLabel":"object"},"call":{"description":"The call in the batch that reverted; absent when the failure cannot be attributed to a call","properties":{"args":{"items":{"properties":{"type":{"description":"Solidity type, e.g. `address` or `uint256`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.call.args.items.[INDEX].type","typeLabel":"string"},"value":{"description":"Decoded value; bigints as decimal strings","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.call.args.items.[INDEX].value","typeLabel":"string"},"name":{"description":"Parameter name; only set when the ABI came from the request","type":"string","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.call.args.items.[INDEX].name","typeLabel":"string"}},"required":["type","value"],"type":"object","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.call.args.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.call.args","typeLabel":"object[]"},"index":{"description":"Index of the call within the transaction's batch","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.call.index","typeLabel":"integer"},"to":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.call.to","typeLabel":"string"},"value":{"description":"Native value sent with the call, in wei","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.call.value","typeLabel":"string"},"function":{"description":"Function signature, e.g. `transfer(address,uint256)`","type":"string","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.call.function","typeLabel":"string"}},"required":["args","index","to","value"],"type":"object","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug.call","typeLabel":"object"}},"required":["blockNumber","chain","details","message","retryable","revert"],"type":"object","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.debug","typeLabel":"object"},"explorerLink":{"type":"string","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.explorerLink","typeLabel":"string"},"reasonData":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.reasonData.oneOf.0.additionalProperties","typeLabel":"any"},"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.reasonData.oneOf.0","typeLabel":"object"},{"type":"string","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.reasonData.oneOf.1","typeLabel":"string"}],"uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.reasonData","typeLabel":"object | string"},"simulationLink":{"description":"Deprecated: no longer populated. Kept for backwards compatibility with previously failed transactions.","type":"string","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert.simulationLink","typeLabel":"string"}},"required":["reason","type"],"type":"object","uniqueKey":"tx.oneOf.2.error.oneOf.2.revert","typeLabel":"object"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.2.error.oneOf.2.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.2.error.oneOf.2.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.2.error.oneOf.2","typeLabel":"object"}],"uniqueKey":"tx.oneOf.2.error","typeLabel":"object"},"fees":{"description":"Transaction fee information including actual transaction fees, billed amounts, and billing status","properties":{"mode":{"enum":["project","user-fungible","user-native"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.fees.mode","typeLabel":"enum\u003cstring>"},"actual":{"oneOf":[{}],"uniqueKey":"tx.oneOf.2.fees.actual","typeLabel":"any"},"billed":{"properties":{"usd":{"type":"number","isRequired":true,"uniqueKey":"tx.oneOf.2.fees.billed.usd","typeLabel":"number"}},"required":["usd"],"type":"object","uniqueKey":"tx.oneOf.2.fees.billed","typeLabel":"object"},"billing":{"properties":{"status":{"enum":["failed","pending","settled"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.fees.billing.status","typeLabel":"enum\u003cstring>"}},"required":["status"],"type":"object","uniqueKey":"tx.oneOf.2.fees.billing","typeLabel":"object"},"estimate":{"oneOf":[{}],"uniqueKey":"tx.oneOf.2.fees.estimate","typeLabel":"any"}},"required":["mode"],"type":"object","uniqueKey":"tx.oneOf.2.fees","typeLabel":"object"},"sendParams":{"properties":{"params":{"description":"The parameters for the send token transaction","properties":{"recipient":{"description":"The recipient locator for the token","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.sendParams.params.recipient","typeLabel":"string"},"recipientAddress":{"description":"The recipient address for the token","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.sendParams.params.recipientAddress","typeLabel":"string"},"amount":{"description":"The amount of the token to send","type":"string","uniqueKey":"tx.oneOf.2.sendParams.params.amount","typeLabel":"string"}},"required":["recipient","recipientAddress"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.2.sendParams.params","typeLabel":"object"},"token":{"description":"The token locator that's being sent","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.2.sendParams.token","typeLabel":"string"}},"required":["params","token"],"type":"object","uniqueKey":"tx.oneOf.2.sendParams","typeLabel":"object"}},"isRequired":true,"uniqueKey":"tx.oneOf.2","typeLabel":"Stellar Smart Wallet · object"},{"type":"object","title":"Solana Smart Wallet","description":"Complete transaction response including status, signing requirements, and wallet type specific data","required":["chainType","createdAt","id","onChain","params","status","walletType"],"properties":{"chainType":{"description":"The blockchain type of the wallet","enum":["aptos","evm","solana","stellar","sui"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.chainType","typeLabel":"enum\u003cstring>"},"createdAt":{"oneOf":[{"type":"number","description":"ISO timestamp when the transaction was created","isRequired":true,"uniqueKey":"tx.oneOf.3.createdAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"ISO timestamp when the transaction was created","isRequired":true,"uniqueKey":"tx.oneOf.3.createdAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.createdAt","typeLabel":"number | string"},"id":{"description":"Unique identifier for the transaction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.id","typeLabel":"string"},"onChain":{"properties":{"transaction":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.onChain.transaction","typeLabel":"string"},"explorerLink":{"type":"string","uniqueKey":"tx.oneOf.3.onChain.explorerLink","typeLabel":"string"},"lastValidBlockHeight":{"type":"number","uniqueKey":"tx.oneOf.3.onChain.lastValidBlockHeight","typeLabel":"number"},"proxiedTxId":{"type":"string","uniqueKey":"tx.oneOf.3.onChain.proxiedTxId","typeLabel":"string"},"txId":{"type":"string","uniqueKey":"tx.oneOf.3.onChain.txId","typeLabel":"string"}},"required":["transaction"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.onChain","typeLabel":"object"},"params":{"properties":{"feeConfig":{"oneOf":[{"type":"object","required":["amount","feePayer"],"properties":{"amount":{"description":"The amount of the fee","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.feeConfig.oneOf.0.amount","typeLabel":"string"},"feePayer":{"const":"crossmint","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.feeConfig.oneOf.0.feePayer","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.params.feeConfig.oneOf.0","typeLabel":"object"},{"type":"object","required":["amount","feePayer","token"],"properties":{"amount":{"description":"The amount of the fee","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.feeConfig.oneOf.1.amount","typeLabel":"string"},"feePayer":{"description":"The address that will pay for the transaction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.feeConfig.oneOf.1.feePayer","typeLabel":"string"},"token":{"description":"The token to use for the fee","enum":["sol","usdc","usdt"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.feeConfig.oneOf.1.token","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.params.feeConfig.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.params.feeConfig","typeLabel":"object"},"transaction":{"description":"Base58 encoded serialized Solana transaction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.transaction","typeLabel":"string"},"requiredSigners":{"description":"Optional array of additional full signer objects required for the transaction","items":{"oneOf":[{"type":"object","title":"API Key Signer","description":"Full signer object","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.0.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"Full signer object","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.1.name","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"Full signer object","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.2.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"Full signer object","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.3.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"Full signer object","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.4.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"Full signer object","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.5.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","description":"Full signer object","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.6.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX].oneOf.6","typeLabel":"object"}],"uniqueKey":"tx.oneOf.3.params.requiredSigners.items.[INDEX]","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"type":"array","uniqueKey":"tx.oneOf.3.params.requiredSigners","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object[]"},"signer":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The full signer object who will submit this transaction. Defaults to the admin signer.","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.0.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.signer.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The full signer object who will submit this transaction. Defaults to the admin signer.","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.3.params.signer.oneOf.1.name","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.signer.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The full signer object who will submit this transaction. Defaults to the admin signer.","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.2.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.signer.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The full signer object who will submit this transaction. Defaults to the admin signer.","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.3.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.signer.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The full signer object who will submit this transaction. Defaults to the admin signer.","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.4.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.signer.oneOf.4","typeLabel":"object"},{"type":"object","description":"The full signer object who will submit this transaction. Defaults to the admin signer.","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.5.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.signer.oneOf.5","typeLabel":"object"},{"type":"object","description":"The full signer object who will submit this transaction. Defaults to the admin signer.","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.6.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.signer.oneOf.6","typeLabel":"object"},{"type":"object","title":"Quorum Signer Reference","description":"The full signer object who will submit this transaction. Defaults to the admin signer.","required":["locator","type"],"properties":{"locator":{"description":"The `quorum:\u003cid>` locator of the quorum signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.7.locator","typeLabel":"string"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.params.signer.oneOf.7.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.3.params.signer.oneOf.7","typeLabel":"Quorum Signer Reference · object"}],"uniqueKey":"tx.oneOf.3.params.signer","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object · Quorum Signer Reference · object"}},"required":["feeConfig","transaction"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.params","typeLabel":"object"},"status":{"description":"Current status of the transaction","enum":["awaiting-approval","failed","pending","success"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.status","typeLabel":"enum\u003cstring>"},"walletType":{"description":"The wallet type (smart or mpc)","enum":["mpc","smart"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.walletType","typeLabel":"enum\u003cstring>"},"approvals":{"description":"Complete approval data including requirements, pending and submitted signatures","properties":{"pending":{"description":"List of pending signatures","items":{"oneOf":[{"type":"object","description":"Approval entry for a quorum (multisig) admin signer","required":["quorumApprovals","signer"],"properties":{"quorumApprovals":{"description":"Per-member progress of an m-of-n quorum signer","properties":{"pending":{"description":"Quorum members that have not yet submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member that has not approved yet, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member that has not approved yet, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member needs to sign","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].message","typeLabel":"string"}},"required":["member","message"],"type":"object","uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending","typeLabel":"object[]"},"remaining":{"description":"Number of member approvals still outstanding to reach the threshold","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.remaining","typeLabel":"number"},"submitted":{"description":"Quorum members that have already submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member who submitted this signature, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member who submitted this signature, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].signature","typeLabel":"string"},"submittedAt":{"oneOf":[{"type":"number","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt","typeLabel":"number | string"}},"required":["member","message","signature","submittedAt"],"type":"object","uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted","typeLabel":"object[]"},"threshold":{"description":"Number of member approvals required to satisfy the quorum","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.threshold","typeLabel":"number"}},"required":["pending","remaining","submitted","threshold"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals","typeLabel":"object"},"signer":{"description":"The quorum signer this approval entry belongs to","properties":{"locator":{"description":"The `quorum:\u003cid>` locator of the quorum signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.signer.locator","typeLabel":"string"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.signer.type","typeLabel":"string"}},"required":["locator","type"],"title":"Quorum Signer Reference","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0.signer","typeLabel":"Quorum Signer Reference · object"}},"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["message","signer"],"properties":{"message":{"description":"The message that needs to be signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.message","typeLabel":"string"},"signer":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The full signer object that's pending approval","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The full signer object that's pending approval","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4","typeLabel":"object"},{"type":"object","description":"The full signer object that's pending approval","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5","typeLabel":"object"},{"type":"object","description":"The full signer object that's pending approval","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1.signer","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"}},"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"tx.oneOf.3.approvals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.pending","typeLabel":"object[]"},"submitted":{"description":"Record of all submitted signatures","items":{"oneOf":[{"type":"object","description":"Approval entry for a quorum (multisig) admin signer","required":["quorumApprovals","signer"],"properties":{"quorumApprovals":{"description":"Per-member progress of an m-of-n quorum signer","properties":{"pending":{"description":"Quorum members that have not yet submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member that has not approved yet, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member that has not approved yet, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member needs to sign","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].message","typeLabel":"string"}},"required":["member","message"],"type":"object","uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending","typeLabel":"object[]"},"remaining":{"description":"Number of member approvals still outstanding to reach the threshold","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.remaining","typeLabel":"number"},"submitted":{"description":"Quorum members that have already submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member who submitted this signature, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member who submitted this signature, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].signature","typeLabel":"string"},"submittedAt":{"oneOf":[{"type":"number","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt","typeLabel":"number | string"}},"required":["member","message","signature","submittedAt"],"type":"object","uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted","typeLabel":"object[]"},"threshold":{"description":"Number of member approvals required to satisfy the quorum","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.threshold","typeLabel":"number"}},"required":["pending","remaining","submitted","threshold"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals","typeLabel":"object"},"signer":{"description":"The quorum signer this approval entry belongs to","properties":{"locator":{"description":"The `quorum:\u003cid>` locator of the quorum signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.signer.locator","typeLabel":"string"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.signer.type","typeLabel":"string"}},"required":["locator","type"],"title":"Quorum Signer Reference","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0.signer","typeLabel":"Quorum Signer Reference · object"}},"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["message","signature","signer","submittedAt"],"properties":{"message":{"description":"The message that was signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signature","typeLabel":"string"},"signer":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The full signer object who submitted this signature","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The full signer object who submitted this signature","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4","typeLabel":"object"},{"type":"object","description":"The full signer object who submitted this signature","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5","typeLabel":"object"},{"type":"object","description":"The full signer object who submitted this signature","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.signer","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"submittedAt":{"oneOf":[{"type":"number","description":"When the signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.submittedAt","typeLabel":"number | string"},"metadata":{"description":"Additional metadata about the signature submission","properties":{"deviceInfo":{"type":"string","uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.metadata.deviceInfo","typeLabel":"string"},"ipAddress":{"type":"string","uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.metadata.ipAddress","typeLabel":"string"},"userAgent":{"type":"string","uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.metadata.userAgent","typeLabel":"string"}},"type":"object","uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1.metadata","typeLabel":"object"}},"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"tx.oneOf.3.approvals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.3.approvals.submitted","typeLabel":"object[]"},"required":{"description":"Number of required approvals for the transaction","type":"number","uniqueKey":"tx.oneOf.3.approvals.required","typeLabel":"number"}},"required":["pending","submitted"],"type":"object","uniqueKey":"tx.oneOf.3.approvals","typeLabel":"object"},"completedAt":{"oneOf":[{"type":"number","description":"ISO timestamp when the transaction reached finality","uniqueKey":"tx.oneOf.3.completedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"ISO timestamp when the transaction reached finality","uniqueKey":"tx.oneOf.3.completedAt.oneOf.1","typeLabel":"string"}],"uniqueKey":"tx.oneOf.3.completedAt","typeLabel":"number | string"},"error":{"oneOf":[{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.0.message","typeLabel":"string"},"reason":{"const":"program_error","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.0.reason","typeLabel":"string"},"logs":{"oneOf":[{}],"uniqueKey":"tx.oneOf.3.error.oneOf.0.logs","typeLabel":"any"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.3.error.oneOf.0.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.3.error.oneOf.0.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.3.error.oneOf.0","typeLabel":"object"},{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.1.message","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","const":"build_failed","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.1.reason.oneOf.0","typeLabel":"string"},{"type":"string","const":"failed_to_land_on_chain","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.1.reason.oneOf.1","typeLabel":"string"},{"type":"string","const":"sanctioned_wallet_address","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.1.reason.oneOf.2","typeLabel":"string"},{"type":"string","const":"unknown","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.1.reason.oneOf.3","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.1.reason","typeLabel":"string"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.3.error.oneOf.1.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.3.error.oneOf.1.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.3.error.oneOf.1","typeLabel":"object"},{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.message","typeLabel":"string"},"reason":{"const":"execution_reverted","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.reason","typeLabel":"string"},"revert":{"properties":{"reason":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.reason","typeLabel":"string"},"type":{"oneOf":[{"type":"string","const":"contract_call","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.type.oneOf.0","typeLabel":"string"},{"type":"string","const":"wallet_authorization","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.type.oneOf.1","typeLabel":"string"},{"type":"string","const":"wallet_deployment","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.type.oneOf.2","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.type","typeLabel":"string"},"debug":{"description":"Structured debugging information for the revert","examples":[{"blockNumber":"38104211","call":{"args":[{"name":"to","type":"address","value":"0x9999999999999999999999999999999999999999"},{"name":"amount","type":"uint256","value":"1000000"}],"function":"transfer(address,uint256)","index":1,"to":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","value":"0"},"chain":"base","details":{"available":"500000","code":"insufficient_erc20_balance","required":"1000000","symbol":"USDC","token":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"},"message":"Wallet holds 0.5 USDC but the transfer requires 1 USDC","retryable":true,"revert":{"args":[{"type":"address","value":"0x1234567890abcdef1234567890abcdef1234abcd"},{"type":"uint256","value":"500000"},{"type":"uint256","value":"1000000"}],"name":"ERC20InsufficientBalance","selector":"0xe450d38c","signature":"ERC20InsufficientBalance(address,uint256,uint256)"}}],"properties":{"blockNumber":{"description":"Block the failure was observed at; replay with eth_call / debug_traceCall","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.blockNumber","typeLabel":"string"},"chain":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.chain","typeLabel":"string"},"details":{"oneOf":[{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required","spender","token"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.0.available","typeLabel":"string"},"code":{"const":"insufficient_erc20_allowance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.0.code","typeLabel":"string"},"required":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.0.required","typeLabel":"string"},"spender":{"description":"Address that needs the approval","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.0.spender","typeLabel":"string"},"token":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.0.token","typeLabel":"string"},"symbol":{"type":"string","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.0.symbol","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.0","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required","token"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.1.available","typeLabel":"string"},"code":{"const":"insufficient_erc20_balance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.1.code","typeLabel":"string"},"required":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.1.required","typeLabel":"string"},"token":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.1.token","typeLabel":"string"},"symbol":{"type":"string","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.1.symbol","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.1","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.2.available","typeLabel":"string"},"code":{"const":"insufficient_native_balance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.2.code","typeLabel":"string"},"required":{"description":"Wei needed to cover value plus gas","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.2.required","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.2","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code","entryPointCode","entryPointMessage"],"properties":{"code":{"const":"account_abstraction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.3.code","typeLabel":"string"},"entryPointCode":{"description":"ERC-4337 EntryPoint code, e.g. `AA21`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.3.entryPointCode","typeLabel":"string"},"entryPointMessage":{"description":"EntryPoint's own message, e.g. `didn't pay prefund`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.3.entryPointMessage","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.3","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code"],"properties":{"code":{"const":"contract_revert","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.4.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.4","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code","gasLimit"],"properties":{"code":{"const":"out_of_gas","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.5.code","typeLabel":"string"},"gasLimit":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.5.gasLimit","typeLabel":"string"},"gasUsed":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.5.gasUsed","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.5","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code"],"properties":{"code":{"const":"unknown","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.6.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.details","typeLabel":"object"},"message":{"description":"Human-readable summary of `details`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.message","typeLabel":"string"},"retryable":{"description":"True when the same transaction can succeed after the caller fixes state (funds, allowance, gas)","type":"boolean","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.retryable","typeLabel":"boolean"},"revert":{"description":"Raw revert as returned by the chain, decoded when the error is known","properties":{"args":{"description":"Positional decoded error arguments; empty when undecoded","items":{"properties":{"type":{"description":"Solidity type, e.g. `address` or `uint256`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.revert.args.items.[INDEX].type","typeLabel":"string"},"value":{"description":"Decoded value; bigints as decimal strings","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.revert.args.items.[INDEX].value","typeLabel":"string"},"name":{"description":"Parameter name; only set when the ABI came from the request","type":"string","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.revert.args.items.[INDEX].name","typeLabel":"string"}},"required":["type","value"],"type":"object","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.revert.args.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.revert.args","typeLabel":"object[]"},"name":{"type":"string","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.revert.name","typeLabel":"string"},"selector":{"description":"4-byte error selector; absent when the revert carried no data","pattern":"^0x[0-9a-fA-F]{8}$","type":"string","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.revert.selector","typeLabel":"string"},"signature":{"type":"string","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.revert.signature","typeLabel":"string"}},"required":["args"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.revert","typeLabel":"object"},"call":{"description":"The call in the batch that reverted; absent when the failure cannot be attributed to a call","properties":{"args":{"items":{"properties":{"type":{"description":"Solidity type, e.g. `address` or `uint256`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.call.args.items.[INDEX].type","typeLabel":"string"},"value":{"description":"Decoded value; bigints as decimal strings","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.call.args.items.[INDEX].value","typeLabel":"string"},"name":{"description":"Parameter name; only set when the ABI came from the request","type":"string","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.call.args.items.[INDEX].name","typeLabel":"string"}},"required":["type","value"],"type":"object","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.call.args.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.call.args","typeLabel":"object[]"},"index":{"description":"Index of the call within the transaction's batch","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.call.index","typeLabel":"integer"},"to":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.call.to","typeLabel":"string"},"value":{"description":"Native value sent with the call, in wei","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.call.value","typeLabel":"string"},"function":{"description":"Function signature, e.g. `transfer(address,uint256)`","type":"string","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.call.function","typeLabel":"string"}},"required":["args","index","to","value"],"type":"object","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug.call","typeLabel":"object"}},"required":["blockNumber","chain","details","message","retryable","revert"],"type":"object","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.debug","typeLabel":"object"},"explorerLink":{"type":"string","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.explorerLink","typeLabel":"string"},"reasonData":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.reasonData.oneOf.0.additionalProperties","typeLabel":"any"},"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.reasonData.oneOf.0","typeLabel":"object"},{"type":"string","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.reasonData.oneOf.1","typeLabel":"string"}],"uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.reasonData","typeLabel":"object | string"},"simulationLink":{"description":"Deprecated: no longer populated. Kept for backwards compatibility with previously failed transactions.","type":"string","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert.simulationLink","typeLabel":"string"}},"required":["reason","type"],"type":"object","uniqueKey":"tx.oneOf.3.error.oneOf.2.revert","typeLabel":"object"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.3.error.oneOf.2.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.3.error.oneOf.2.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.3.error.oneOf.2","typeLabel":"object"}],"uniqueKey":"tx.oneOf.3.error","typeLabel":"object"},"fees":{"description":"Transaction fee information including actual transaction fees, billed amounts, and billing status","properties":{"mode":{"enum":["project","user-fungible","user-native"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.fees.mode","typeLabel":"enum\u003cstring>"},"actual":{"oneOf":[{}],"uniqueKey":"tx.oneOf.3.fees.actual","typeLabel":"any"},"billed":{"properties":{"usd":{"type":"number","isRequired":true,"uniqueKey":"tx.oneOf.3.fees.billed.usd","typeLabel":"number"}},"required":["usd"],"type":"object","uniqueKey":"tx.oneOf.3.fees.billed","typeLabel":"object"},"billing":{"properties":{"status":{"enum":["failed","pending","settled"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.fees.billing.status","typeLabel":"enum\u003cstring>"}},"required":["status"],"type":"object","uniqueKey":"tx.oneOf.3.fees.billing","typeLabel":"object"},"estimate":{"oneOf":[{}],"uniqueKey":"tx.oneOf.3.fees.estimate","typeLabel":"any"}},"required":["mode"],"type":"object","uniqueKey":"tx.oneOf.3.fees","typeLabel":"object"},"sendParams":{"properties":{"params":{"description":"The parameters for the send token transaction","properties":{"recipient":{"description":"The recipient locator for the token","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.sendParams.params.recipient","typeLabel":"string"},"recipientAddress":{"description":"The recipient address for the token","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.sendParams.params.recipientAddress","typeLabel":"string"},"amount":{"description":"The amount of the token to send","type":"string","uniqueKey":"tx.oneOf.3.sendParams.params.amount","typeLabel":"string"}},"required":["recipient","recipientAddress"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.3.sendParams.params","typeLabel":"object"},"token":{"description":"The token locator that's being sent","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.3.sendParams.token","typeLabel":"string"}},"required":["params","token"],"type":"object","uniqueKey":"tx.oneOf.3.sendParams","typeLabel":"object"}},"isRequired":true,"uniqueKey":"tx.oneOf.3","typeLabel":"Solana Smart Wallet · object"},{"type":"object","title":"Solana MPC Wallet","description":"Complete transaction response including status, signing requirements, and wallet type specific data","required":["chainType","createdAt","id","onChain","params","status","walletType"],"properties":{"chainType":{"description":"The blockchain type of the wallet","enum":["aptos","evm","solana","stellar","sui"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.chainType","typeLabel":"enum\u003cstring>"},"createdAt":{"oneOf":[{"type":"number","description":"ISO timestamp when the transaction was created","isRequired":true,"uniqueKey":"tx.oneOf.4.createdAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"ISO timestamp when the transaction was created","isRequired":true,"uniqueKey":"tx.oneOf.4.createdAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.createdAt","typeLabel":"number | string"},"id":{"description":"Unique identifier for the transaction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.id","typeLabel":"string"},"onChain":{"properties":{"transaction":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.onChain.transaction","typeLabel":"string"},"explorerLink":{"type":"string","uniqueKey":"tx.oneOf.4.onChain.explorerLink","typeLabel":"string"},"lastValidBlockHeight":{"type":"number","uniqueKey":"tx.oneOf.4.onChain.lastValidBlockHeight","typeLabel":"number"},"proxiedTxId":{"type":"string","uniqueKey":"tx.oneOf.4.onChain.proxiedTxId","typeLabel":"string"},"txId":{"type":"string","uniqueKey":"tx.oneOf.4.onChain.txId","typeLabel":"string"}},"required":["transaction"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.onChain","typeLabel":"object"},"params":{"properties":{"transaction":{"description":"Base58 encoded serialized Solana transaction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.transaction","typeLabel":"string"},"requiredSigners":{"description":"Optional array of additional full signer objects required for the transaction","items":{"oneOf":[{"type":"object","title":"API Key Signer","description":"Full signer object","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.0.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"Full signer object","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.1.name","typeLabel":"string"}},"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"Full signer object","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.2.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"Full signer object","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.3.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"Full signer object","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.4.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.4","typeLabel":"object"},{"type":"object","description":"Full signer object","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.5.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.5","typeLabel":"object"},{"type":"object","description":"Full signer object","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.6.type","typeLabel":"string"}},"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX].oneOf.6","typeLabel":"object"}],"uniqueKey":"tx.oneOf.4.params.requiredSigners.items.[INDEX]","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"type":"array","uniqueKey":"tx.oneOf.4.params.requiredSigners","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object[]"}},"required":["transaction"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.params","typeLabel":"object"},"status":{"description":"Current status of the transaction","enum":["awaiting-approval","failed","pending","success"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.status","typeLabel":"enum\u003cstring>"},"walletType":{"description":"The wallet type (smart or mpc)","enum":["mpc","smart"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.walletType","typeLabel":"enum\u003cstring>"},"approvals":{"description":"Complete approval data including requirements, pending and submitted signatures","properties":{"pending":{"description":"List of pending signatures","items":{"oneOf":[{"type":"object","description":"Approval entry for a quorum (multisig) admin signer","required":["quorumApprovals","signer"],"properties":{"quorumApprovals":{"description":"Per-member progress of an m-of-n quorum signer","properties":{"pending":{"description":"Quorum members that have not yet submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member that has not approved yet, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member that has not approved yet, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member needs to sign","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].message","typeLabel":"string"}},"required":["member","message"],"type":"object","uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.pending","typeLabel":"object[]"},"remaining":{"description":"Number of member approvals still outstanding to reach the threshold","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.remaining","typeLabel":"number"},"submitted":{"description":"Quorum members that have already submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member who submitted this signature, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member who submitted this signature, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].signature","typeLabel":"string"},"submittedAt":{"oneOf":[{"type":"number","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt","typeLabel":"number | string"}},"required":["member","message","signature","submittedAt"],"type":"object","uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.submitted","typeLabel":"object[]"},"threshold":{"description":"Number of member approvals required to satisfy the quorum","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals.threshold","typeLabel":"number"}},"required":["pending","remaining","submitted","threshold"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.quorumApprovals","typeLabel":"object"},"signer":{"description":"The quorum signer this approval entry belongs to","properties":{"locator":{"description":"The `quorum:\u003cid>` locator of the quorum signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.signer.locator","typeLabel":"string"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.signer.type","typeLabel":"string"}},"required":["locator","type"],"title":"Quorum Signer Reference","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0.signer","typeLabel":"Quorum Signer Reference · object"}},"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["message","signer"],"properties":{"message":{"description":"The message that needs to be signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.message","typeLabel":"string"},"signer":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The full signer object that's pending approval","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The full signer object that's pending approval","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The full signer object that's pending approval","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.4","typeLabel":"object"},{"type":"object","description":"The full signer object that's pending approval","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.5","typeLabel":"object"},{"type":"object","description":"The full signer object that's pending approval","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1.signer","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"}},"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"tx.oneOf.4.approvals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.pending","typeLabel":"object[]"},"submitted":{"description":"Record of all submitted signatures","items":{"oneOf":[{"type":"object","description":"Approval entry for a quorum (multisig) admin signer","required":["quorumApprovals","signer"],"properties":{"quorumApprovals":{"description":"Per-member progress of an m-of-n quorum signer","properties":{"pending":{"description":"Quorum members that have not yet submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member that has not approved yet, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member that has not approved yet, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member that has not approved yet, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member needs to sign","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX].message","typeLabel":"string"}},"required":["member","message"],"type":"object","uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.pending","typeLabel":"object[]"},"remaining":{"description":"Number of member approvals still outstanding to reach the threshold","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.remaining","typeLabel":"number"},"submitted":{"description":"Quorum members that have already submitted","items":{"properties":{"member":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The quorum member who submitted this signature, under its own locator","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The quorum member who submitted this signature, under its own locator","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.4","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.5","typeLabel":"object"},{"type":"object","description":"The quorum member who submitted this signature, under its own locator","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].member","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"message":{"description":"The message that this member signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].signature","typeLabel":"string"},"submittedAt":{"oneOf":[{"type":"number","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the member signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX].submittedAt","typeLabel":"number | string"}},"required":["member","message","signature","submittedAt"],"type":"object","uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.submitted","typeLabel":"object[]"},"threshold":{"description":"Number of member approvals required to satisfy the quorum","type":"number","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals.threshold","typeLabel":"number"}},"required":["pending","remaining","submitted","threshold"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.quorumApprovals","typeLabel":"object"},"signer":{"description":"The quorum signer this approval entry belongs to","properties":{"locator":{"description":"The `quorum:\u003cid>` locator of the quorum signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.signer.locator","typeLabel":"string"},"type":{"const":"quorum","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.signer.type","typeLabel":"string"}},"required":["locator","type"],"title":"Quorum Signer Reference","type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0.signer","typeLabel":"Quorum Signer Reference · object"}},"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["message","signature","signer","submittedAt"],"properties":{"message":{"description":"The message that was signed","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.message","typeLabel":"string"},"signature":{"description":"The cryptographic signature","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signature","typeLabel":"string"},"signer":{"oneOf":[{"type":"object","title":"API Key Signer","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"description":"The address of the api key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.address","typeLabel":"string"},"locator":{"description":"The locator of the api key signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.locator","typeLabel":"string"},"type":{"const":"api-key","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.0","typeLabel":"API Key Signer · object"},{"type":"object","title":"Device Signer","description":"The full signer object who submitted this signature","required":["locator","publicKey","type"],"properties":{"locator":{"description":"The locator of the device signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.locator","typeLabel":"string"},"publicKey":{"description":"The p256 public key of the device signer","properties":{"x":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.x","typeLabel":"string"},"y":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey.y","typeLabel":"string"}},"required":["x","y"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.publicKey","typeLabel":"object"},"type":{"const":"device","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.type","typeLabel":"string"},"name":{"description":"Optional human-readable name for the device signer","type":"string","uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1.name","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.1","typeLabel":"Device Signer · object"},{"type":"object","title":"External Wallet Signer","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"description":"The address of the external wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.address","typeLabel":"string"},"locator":{"description":"The locator of the external wallet signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.locator","typeLabel":"string"},"type":{"const":"external-wallet","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.2","typeLabel":"External Wallet Signer · object"},{"type":"object","title":"Passkey Signer","description":"The full signer object who submitted this signature","required":["id","locator","type"],"properties":{"id":{"description":"The ID of the passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.id","typeLabel":"string"},"locator":{"description":"The locator of the passkey signer","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.locator","typeLabel":"string"},"type":{"const":"passkey","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.3","typeLabel":"Passkey Signer · object"},{"type":"object","description":"The full signer object who submitted this signature","required":["address","locator","type"],"properties":{"address":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.address","typeLabel":"string"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.locator","typeLabel":"string"},"type":{"const":"server","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.4","typeLabel":"object"},{"type":"object","description":"The full signer object who submitted this signature","required":["email","locator","type"],"properties":{"email":{"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.email","typeLabel":"string\u003cemail>"},"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.locator","typeLabel":"string"},"type":{"const":"email","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.5","typeLabel":"object"},{"type":"object","description":"The full signer object who submitted this signature","required":["locator","phone","type"],"properties":{"locator":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.locator","typeLabel":"string"},"phone":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.phone","typeLabel":"string"},"type":{"const":"phone","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6.type","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.signer","typeLabel":"API Key Signer · object · Device Signer · object · External Wallet Signer · object · Passkey Signer · object · object · object · object"},"submittedAt":{"oneOf":[{"type":"number","description":"When the signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.submittedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"When the signature was submitted","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.submittedAt.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.submittedAt","typeLabel":"number | string"},"metadata":{"description":"Additional metadata about the signature submission","properties":{"deviceInfo":{"type":"string","uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.metadata.deviceInfo","typeLabel":"string"},"ipAddress":{"type":"string","uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.metadata.ipAddress","typeLabel":"string"},"userAgent":{"type":"string","uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.metadata.userAgent","typeLabel":"string"}},"type":"object","uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1.metadata","typeLabel":"object"}},"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"tx.oneOf.4.approvals.submitted.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.4.approvals.submitted","typeLabel":"object[]"},"required":{"description":"Number of required approvals for the transaction","type":"number","uniqueKey":"tx.oneOf.4.approvals.required","typeLabel":"number"}},"required":["pending","submitted"],"type":"object","uniqueKey":"tx.oneOf.4.approvals","typeLabel":"object"},"completedAt":{"oneOf":[{"type":"number","description":"ISO timestamp when the transaction reached finality","uniqueKey":"tx.oneOf.4.completedAt.oneOf.0","typeLabel":"number"},{"type":"string","description":"ISO timestamp when the transaction reached finality","uniqueKey":"tx.oneOf.4.completedAt.oneOf.1","typeLabel":"string"}],"uniqueKey":"tx.oneOf.4.completedAt","typeLabel":"number | string"},"error":{"oneOf":[{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.0.message","typeLabel":"string"},"reason":{"const":"program_error","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.0.reason","typeLabel":"string"},"logs":{"oneOf":[{}],"uniqueKey":"tx.oneOf.4.error.oneOf.0.logs","typeLabel":"any"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.4.error.oneOf.0.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.4.error.oneOf.0.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.4.error.oneOf.0","typeLabel":"object"},{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.1.message","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","const":"build_failed","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.1.reason.oneOf.0","typeLabel":"string"},{"type":"string","const":"failed_to_land_on_chain","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.1.reason.oneOf.1","typeLabel":"string"},{"type":"string","const":"sanctioned_wallet_address","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.1.reason.oneOf.2","typeLabel":"string"},{"type":"string","const":"unknown","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.1.reason.oneOf.3","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.1.reason","typeLabel":"string"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.4.error.oneOf.1.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.4.error.oneOf.1.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.4.error.oneOf.1","typeLabel":"object"},{"type":"object","description":"Error message if the transaction fails after submission","required":["message","reason"],"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.message","typeLabel":"string"},"reason":{"const":"execution_reverted","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.reason","typeLabel":"string"},"revert":{"properties":{"reason":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.reason","typeLabel":"string"},"type":{"oneOf":[{"type":"string","const":"contract_call","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.type.oneOf.0","typeLabel":"string"},{"type":"string","const":"wallet_authorization","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.type.oneOf.1","typeLabel":"string"},{"type":"string","const":"wallet_deployment","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.type.oneOf.2","typeLabel":"string"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.type","typeLabel":"string"},"debug":{"description":"Structured debugging information for the revert","examples":[{"blockNumber":"38104211","call":{"args":[{"name":"to","type":"address","value":"0x9999999999999999999999999999999999999999"},{"name":"amount","type":"uint256","value":"1000000"}],"function":"transfer(address,uint256)","index":1,"to":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","value":"0"},"chain":"base","details":{"available":"500000","code":"insufficient_erc20_balance","required":"1000000","symbol":"USDC","token":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"},"message":"Wallet holds 0.5 USDC but the transfer requires 1 USDC","retryable":true,"revert":{"args":[{"type":"address","value":"0x1234567890abcdef1234567890abcdef1234abcd"},{"type":"uint256","value":"500000"},{"type":"uint256","value":"1000000"}],"name":"ERC20InsufficientBalance","selector":"0xe450d38c","signature":"ERC20InsufficientBalance(address,uint256,uint256)"}}],"properties":{"blockNumber":{"description":"Block the failure was observed at; replay with eth_call / debug_traceCall","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.blockNumber","typeLabel":"string"},"chain":{"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.chain","typeLabel":"string"},"details":{"oneOf":[{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required","spender","token"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.0.available","typeLabel":"string"},"code":{"const":"insufficient_erc20_allowance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.0.code","typeLabel":"string"},"required":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.0.required","typeLabel":"string"},"spender":{"description":"Address that needs the approval","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.0.spender","typeLabel":"string"},"token":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.0.token","typeLabel":"string"},"symbol":{"type":"string","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.0.symbol","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.0","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required","token"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.1.available","typeLabel":"string"},"code":{"const":"insufficient_erc20_balance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.1.code","typeLabel":"string"},"required":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.1.required","typeLabel":"string"},"token":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.1.token","typeLabel":"string"},"symbol":{"type":"string","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.1.symbol","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.1","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["available","code","required"],"properties":{"available":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.2.available","typeLabel":"string"},"code":{"const":"insufficient_native_balance","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.2.code","typeLabel":"string"},"required":{"description":"Wei needed to cover value plus gas","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.2.required","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.2","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code","entryPointCode","entryPointMessage"],"properties":{"code":{"const":"account_abstraction","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.3.code","typeLabel":"string"},"entryPointCode":{"description":"ERC-4337 EntryPoint code, e.g. `AA21`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.3.entryPointCode","typeLabel":"string"},"entryPointMessage":{"description":"EntryPoint's own message, e.g. `didn't pay prefund`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.3.entryPointMessage","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.3","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code"],"properties":{"code":{"const":"contract_revert","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.4.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.4","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code","gasLimit"],"properties":{"code":{"const":"out_of_gas","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.5.code","typeLabel":"string"},"gasLimit":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.5.gasLimit","typeLabel":"string"},"gasUsed":{"description":"Unsigned integer encoded as a decimal string","pattern":"^\\d+$","type":"string","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.5.gasUsed","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.5","typeLabel":"object"},{"type":"object","description":"Classified root cause. Branch on `code`: `insufficient_*` and `out_of_gas` are fixable by the caller, `account_abstraction` is an EntryPoint rejection (see `entryPointCode`), `contract_revert` is a decoded revert with no further classification (see `revert`), `unknown` means no revert data was available","required":["code"],"properties":{"code":{"const":"unknown","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.6.code","typeLabel":"string"}},"isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details.oneOf.6","typeLabel":"object"}],"isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.details","typeLabel":"object"},"message":{"description":"Human-readable summary of `details`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.message","typeLabel":"string"},"retryable":{"description":"True when the same transaction can succeed after the caller fixes state (funds, allowance, gas)","type":"boolean","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.retryable","typeLabel":"boolean"},"revert":{"description":"Raw revert as returned by the chain, decoded when the error is known","properties":{"args":{"description":"Positional decoded error arguments; empty when undecoded","items":{"properties":{"type":{"description":"Solidity type, e.g. `address` or `uint256`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.revert.args.items.[INDEX].type","typeLabel":"string"},"value":{"description":"Decoded value; bigints as decimal strings","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.revert.args.items.[INDEX].value","typeLabel":"string"},"name":{"description":"Parameter name; only set when the ABI came from the request","type":"string","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.revert.args.items.[INDEX].name","typeLabel":"string"}},"required":["type","value"],"type":"object","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.revert.args.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.revert.args","typeLabel":"object[]"},"name":{"type":"string","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.revert.name","typeLabel":"string"},"selector":{"description":"4-byte error selector; absent when the revert carried no data","pattern":"^0x[0-9a-fA-F]{8}$","type":"string","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.revert.selector","typeLabel":"string"},"signature":{"type":"string","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.revert.signature","typeLabel":"string"}},"required":["args"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.revert","typeLabel":"object"},"call":{"description":"The call in the batch that reverted; absent when the failure cannot be attributed to a call","properties":{"args":{"items":{"properties":{"type":{"description":"Solidity type, e.g. `address` or `uint256`","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.call.args.items.[INDEX].type","typeLabel":"string"},"value":{"description":"Decoded value; bigints as decimal strings","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.call.args.items.[INDEX].value","typeLabel":"string"},"name":{"description":"Parameter name; only set when the ABI came from the request","type":"string","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.call.args.items.[INDEX].name","typeLabel":"string"}},"required":["type","value"],"type":"object","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.call.args.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.call.args","typeLabel":"object[]"},"index":{"description":"Index of the call within the transaction's batch","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.call.index","typeLabel":"integer"},"to":{"description":"An EVM address string","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.call.to","typeLabel":"string"},"value":{"description":"Native value sent with the call, in wei","pattern":"^\\d+$","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.call.value","typeLabel":"string"},"function":{"description":"Function signature, e.g. `transfer(address,uint256)`","type":"string","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.call.function","typeLabel":"string"}},"required":["args","index","to","value"],"type":"object","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug.call","typeLabel":"object"}},"required":["blockNumber","chain","details","message","retryable","revert"],"type":"object","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.debug","typeLabel":"object"},"explorerLink":{"type":"string","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.explorerLink","typeLabel":"string"},"reasonData":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.reasonData.oneOf.0.additionalProperties","typeLabel":"any"},"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.reasonData.oneOf.0","typeLabel":"object"},{"type":"string","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.reasonData.oneOf.1","typeLabel":"string"}],"uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.reasonData","typeLabel":"object | string"},"simulationLink":{"description":"Deprecated: no longer populated. Kept for backwards compatibility with previously failed transactions.","type":"string","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert.simulationLink","typeLabel":"string"}},"required":["reason","type"],"type":"object","uniqueKey":"tx.oneOf.4.error.oneOf.2.revert","typeLabel":"object"},"revertData":{"additionalProperties":{"oneOf":[{}],"uniqueKey":"tx.oneOf.4.error.oneOf.2.revertData.additionalProperties","typeLabel":"any"},"propertyNames":{"type":"string"},"type":"object","uniqueKey":"tx.oneOf.4.error.oneOf.2.revertData","typeLabel":"object"}},"uniqueKey":"tx.oneOf.4.error.oneOf.2","typeLabel":"object"}],"uniqueKey":"tx.oneOf.4.error","typeLabel":"object"},"fees":{"description":"Transaction fee information including actual transaction fees, billed amounts, and billing status","properties":{"mode":{"enum":["project","user-fungible","user-native"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.fees.mode","typeLabel":"enum\u003cstring>"},"actual":{"oneOf":[{}],"uniqueKey":"tx.oneOf.4.fees.actual","typeLabel":"any"},"billed":{"properties":{"usd":{"type":"number","isRequired":true,"uniqueKey":"tx.oneOf.4.fees.billed.usd","typeLabel":"number"}},"required":["usd"],"type":"object","uniqueKey":"tx.oneOf.4.fees.billed","typeLabel":"object"},"billing":{"properties":{"status":{"enum":["failed","pending","settled"],"type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.fees.billing.status","typeLabel":"enum\u003cstring>"}},"required":["status"],"type":"object","uniqueKey":"tx.oneOf.4.fees.billing","typeLabel":"object"},"estimate":{"oneOf":[{}],"uniqueKey":"tx.oneOf.4.fees.estimate","typeLabel":"any"}},"required":["mode"],"type":"object","uniqueKey":"tx.oneOf.4.fees","typeLabel":"object"},"sendParams":{"properties":{"params":{"description":"The parameters for the send token transaction","properties":{"recipient":{"description":"The recipient locator for the token","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.sendParams.params.recipient","typeLabel":"string"},"recipientAddress":{"description":"The recipient address for the token","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.sendParams.params.recipientAddress","typeLabel":"string"},"amount":{"description":"The amount of the token to send","type":"string","uniqueKey":"tx.oneOf.4.sendParams.params.amount","typeLabel":"string"}},"required":["recipient","recipientAddress"],"type":"object","isRequired":true,"uniqueKey":"tx.oneOf.4.sendParams.params","typeLabel":"object"},"token":{"description":"The token locator that's being sent","type":"string","isRequired":true,"uniqueKey":"tx.oneOf.4.sendParams.token","typeLabel":"string"}},"required":["params","token"],"type":"object","uniqueKey":"tx.oneOf.4.sendParams","typeLabel":"object"}},"isRequired":true,"uniqueKey":"tx.oneOf.4","typeLabel":"Solana MPC Wallet · object"}],"isRequired":true,"uniqueKey":"tx","typeLabel":"EVM MPC Wallet · object | EVM Smart Wallet · object | Stellar Smart Wallet · object | Solana Smart Wallet · object | Solana MPC Wallet · object"}},"required":["recoveryMethods","tx"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"recoveryMethods":{"address":"\u003cstring>","locator":"\u003cstring>","type":"api-key"},"tx":{"chainType":"aptos","createdAt":123,"id":"\u003cstring>","onChain":{"call":{"data":"\u003cunknown>","to":"\u003cstring>"},"explorerLink":"\u003cstring>","txId":"\u003cstring>"},"params":{"call":{"abi":["\u003cunknown>"],"address":"\u003cstring>","args":["\u003cunknown>"],"functionName":"\u003cstring>"},"chain":"abstract"},"status":"awaiting-approval","walletType":"mpc","approvals":{"pending":[{"quorumApprovals":{"pending":[{"member":{"address":"\u003cstring>","locator":"\u003cstring>","type":"api-key"},"message":"\u003cstring>"}],"remaining":123,"submitted":[{"member":{"address":"\u003cstring>","locator":"\u003cstring>","type":"api-key"},"message":"\u003cstring>","signature":"\u003cstring>","submittedAt":123}],"threshold":123},"signer":{"locator":"\u003cstring>","type":"quorum"}}],"submitted":[{"quorumApprovals":{"pending":[{"member":{"address":"\u003cstring>","locator":"\u003cstring>","type":"api-key"},"message":"\u003cstring>"}],"remaining":123,"submitted":[{"member":{"address":"\u003cstring>","locator":"\u003cstring>","type":"api-key"},"message":"\u003cstring>","signature":"\u003cstring>","submittedAt":123}],"threshold":123},"signer":{"locator":"\u003cstring>","type":"quorum"}}],"required":123},"completedAt":123,"error":{"message":"\u003cstring>","reason":"program_error","logs":"\u003cunknown>","revertData":{}},"fees":{"mode":"project","actual":"\u003cunknown>","billed":{"usd":123},"billing":{"status":"failed"},"estimate":"\u003cunknown>"},"sendParams":{"params":{"recipient":"\u003cstring>","recipientAddress":"\u003cstring>","amount":"\u003cstring>"},"token":"\u003cstring>"}}}}},"exampleType":"generated"}},"description":"The recovery method transaction has been created.","exampleType":"generated"}},"security":{"74948801-2232-46aa-806c-c0b8dc47d05c":{"apiKey":{"description":"API key required for authentication","in":"header","name":"X-API-KEY","type":"apiKey","scopes":[],"schemeName":"apiKey"}}},"servers":{"6d43f8db-2aae-4e01-8685-08a87bec3c2b":{"description":"Staging environment (testnets)","url":"https://staging.crossmint.com/api"},"c63c36d8-1f32-400f-b2e7-dd59afdf458d":{"description":"Production environment (mainnets)","url":"https://www.crossmint.com/api"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"description":"API key required for authentication","in":"header","name":"X-API-KEY","type":"apiKey","scopes":[],"schemeName":"apiKey"},"schema":{"title":"X-API-KEY","type":"string","description":"API key required for authentication","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKey","name":"X-API-KEY"}],"title":"apiKey"}]},"originalFileLocation":"api-reference/_open-api/Wallets.json"},"subdomain":"crossmint","siteName":"Crossmint Docs","title":"Add Recovery Method - Crossmint Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-25T01:00:09.975Z","originalFileLocation":"api-reference/wallets/add-recovery-method.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=\"Add a recovery method to a wallet.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Crossmint Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/crossmint/-1hhMU0vchFPUD3H/_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/crossmint/-1hhMU0vchFPUD3H/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/crossmint/-1hhMU0vchFPUD3H/_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/crossmint/-1hhMU0vchFPUD3H/_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/crossmint/-1hhMU0vchFPUD3H/_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/crossmint/-1hhMU0vchFPUD3H/_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/crossmint/-1hhMU0vchFPUD3H/_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/crossmint/-1hhMU0vchFPUD3H/_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/crossmint/-1hhMU0vchFPUD3H/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Add Recovery Method - Crossmint Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Add a recovery method to a wallet.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Crossmint Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.crossmint.com/api-reference/wallets/add-recovery-method\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://crossmint.mintlify.app/_mintlify/api/og/v2?division=REST\u0026amp;title=Add+Recovery+Method\u0026amp;description=Add+a+recovery+method+to+a+wallet.\u0026amp;theme=754218d9ca07cbe75c9ed33a\u0026amp;signature=affeb74fd94ee76beb82f3f5e43f20050f388f45a6970dfcb12a6f4f693476f5\">\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=\"Add Recovery Method - Crossmint Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Add a recovery method to a wallet.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://crossmint.mintlify.app/_mintlify/api/og/v2?division=REST\u0026amp;title=Add+Recovery+Method\u0026amp;description=Add+a+recovery+method+to+a+wallet.\u0026amp;theme=754218d9ca07cbe75c9ed33a\u0026amp;signature=affeb74fd94ee76beb82f3f5e43f20050f388f45a6970dfcb12a6f4f693476f5\">\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/crossmint/-1hhMU0vchFPUD3H/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Crossmint Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#36b37e\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.crossmint.com/api-reference/wallets/add-recovery-method\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/wallets/add-recovery-method.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.crossmint.com/#organization\",\"name\":\"Crossmint Docs\",\"url\":\"https://docs.crossmint.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/crossmint/a8gPOTKEuVFcSfC3/logo/crossmint-light.png?fit=max\u0026auto=format\u0026n=a8gPOTKEuVFcSfC3\u0026q=85\u0026s=8c2671e4c8f7da6956e1508bd68c2928\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.crossmint.com#website\",\"name\":\"Crossmint Docs\",\"url\":\"https://docs.crossmint.com\",\"publisher\":{\"@id\":\"https://docs.crossmint.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.crossmint.com/api-reference/wallets/add-recovery-method#webpage\",\"url\":\"https://docs.crossmint.com/api-reference/wallets/add-recovery-method\",\"name\":\"Add Recovery Method\",\"description\":\"Add a recovery method to a wallet.\",\"dateModified\":\"2026-09-25T01:00:09.975Z\",\"isPartOf\":{\"@id\":\"https://docs.crossmint.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.crossmint.com/api-reference/wallets/add-recovery-method#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.crossmint.com/api-reference/wallets/add-recovery-method#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.crossmint.com/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"REST\",\"item\":\"https://docs.crossmint.com/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Add Recovery Method\",\"item\":\"https://docs.crossmint.com/api-reference/wallets/add-recovery-method\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.crossmint.com/api-reference/wallets/add-recovery-method#apireference\",\"headline\":\"Add Recovery Method\",\"name\":\"Add Recovery Method\",\"description\":\"Add a recovery method to a wallet.\",\"url\":\"https://docs.crossmint.com/api-reference/wallets/add-recovery-method\",\"mainEntityOfPage\":{\"@id\":\"https://docs.crossmint.com/api-reference/wallets/add-recovery-method#webpage\"},\"dateModified\":\"2026-09-25T01:00:09.975Z\",\"publisher\":{\"@id\":\"https://docs.crossmint.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.crossmint.com#website\"}}]}\u003c/script>","siteName":"Crossmint Docs","nav":{"global":null,"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":"/introduction/platform-overview"}]},{"tab":"Wallets","dropdowns":[{"dropdown":"Wallets V1","icon":"tag","groups":[{"group":"Introduction","pages":[{"title":"Overview","href":"/wallets/overview"}]},{"group":"Quickstarts ⚡","pages":[{"title":"React","href":"/wallets/quickstarts/react"},{"title":"Node.js","href":"/wallets/quickstarts/nodejs"},{"title":"REST API","href":"/wallets/quickstarts/restapi"},{"title":"React Native","href":"/wallets/quickstarts/react-native"},{"title":"Flutter","href":"/wallets/quickstarts/flutter"},{"title":"Swift","href":"/wallets/quickstarts/swift"},{"title":"Kotlin","href":"/wallets/quickstarts/kotlin"}]},{"group":"Concepts","pages":[{"title":"Embedded Wallets","href":"/wallets/concepts/embedded-wallets"},{"title":"Treasury Wallets","href":"/wallets/concepts/treasury"},{"title":"Architecture","href":"/wallets/architecture"},{"title":"Signers","href":"/wallets/concepts/signers"},{"title":"Signer Types","href":"/wallets/concepts/signer-types"},{"title":"Recovery Methods","href":"/wallets/concepts/recovery"},{"title":"Quorum (multi-approval) Signer","href":"/wallets/concepts/quorum-signers"},{"title":"Custody Models","href":"/wallets/concepts/custody-models"},{"title":"Wallet Locators","href":"/wallets/concepts/wallet-locators"},{"title":"Glossary","href":"/introduction/glossary"}]},{"group":"Guides","pages":[{"group":"Wallet Actions","pages":[{"title":"Create Wallet","href":"/wallets/guides/create-wallet"},{"title":"Fund a Staging Wallet","href":"/wallets/guides/fund-staging-wallet"},{"title":"Check Balances","href":"/wallets/guides/check-balances"},{"title":"Transfer Tokens","href":"/wallets/guides/transfer-tokens"},{"group":"Custom Transactions","pages":[{"title":"Custom EVM Transactions","sidebarTitle":"EVM","href":"/wallets/guides/send-transaction-evm"},{"title":"Custom Solana Transactions","sidebarTitle":"Solana","href":"/wallets/guides/send-transaction-solana"},{"title":"Custom Stellar Transactions","sidebarTitle":"Stellar","href":"/wallets/guides/send-transaction-stellar"}]},{"title":"Sign Messages","sidebarTitle":"Sign Message","href":"/wallets/guides/sign-message"},{"title":"List Wallet Transfers","href":"/wallets/guides/list-transfers"}]},{"group":"Signers","pages":[{"group":"Setup","pages":[{"title":"Device Signer","href":"/wallets/guides/signers/device-signer"},{"title":"Passkey Signer","href":"/wallets/guides/signers/passkey"},{"title":"External Wallet Signer","href":"/wallets/guides/signers/external-wallet"},{"title":"Server Signer","href":"/wallets/guides/signers/server-signer"},{"title":"Cloud KMS Signers","href":"/wallets/guides/signers/cloud-kms"},{"title":"Use a Quorum Signer","href":"/wallets/guides/signers/quorum-signer"},{"title":"Server-Side Wallet with Device Signer","href":"/wallets/guides/signers/device-signer-server-wallet"}]},{"group":"Management","pages":[{"title":"Add Signers to a Wallet","href":"/wallets/guides/signers/add-signers"},{"title":"List Wallet Signers","href":"/wallets/guides/signers/list-signers"},{"title":"Restrict a Signer with Scopes","href":"/wallets/guides/signers/scopes"},{"title":"Remove a Signer from a Wallet","href":"/wallets/guides/signers/remove-signer"}]}]},{"group":"Recovery Methods","pages":[{"title":"Configure Wallet Recovery","href":"/wallets/guides/recovery/configure-recovery"},{"title":"Send WhatsApp OTPs From Your Business Number","sidebarTitle":"WhatsApp Sender","href":"/wallets/guides/recovery/whatsapp-sender"},{"title":"Manage Recovery Methods","href":"/wallets/guides/recovery/manage-recovery-methods"},{"title":"Recover a Wallet","href":"/wallets/guides/recovery/wallet-recovery"}]},{"group":"Wallet Extensions","pages":[{"title":"Wallet Extensions","sidebarTitle":"Overview","href":"/wallets/guides/wallet-extensions/overview"},{"group":"Swapping \u0026 Bridging","pages":[{"title":"Swapping \u0026 Bridging Overview","sidebarTitle":"Overview","href":"/wallets/guides/wallet-extensions/swapping-and-bridging"},{"title":"Jupiter","href":"/wallets/guides/wallet-extensions/swap-jupiter"},{"title":"LI.FI","href":"/wallets/guides/wallet-extensions/bridge-lifi"},{"title":"Relay","href":"/wallets/guides/wallet-extensions/relay"}]},{"group":"Yield Generation","pages":[{"title":"Yield.xyz","href":"/wallets/guides/wallet-extensions/yield-xyz"},{"title":"Morpho","href":"/wallets/guides/wallet-extensions/morpho"}]},{"group":"Card Issuance","pages":[{"title":"Rain Card Issuance","sidebarTitle":"Rain","href":"/wallets/guides/wallet-extensions/credit-cards"},{"title":"Reap Card Issuance","sidebarTitle":"Reap","href":"/wallets/guides/wallet-extensions/reap"}]},{"title":"Embedded Credit","href":"/wallets/guides/wallet-extensions/tala"},{"group":"Tokenized Stocks","pages":[{"title":"Ondo Global Markets","href":"/wallets/guides/wallet-extensions/swap-ondo"}]}]},{"group":"Advanced","pages":[{"title":"Use Your Own Auth Provider","href":"/wallets/guides/bring-your-own-auth"},{"title":"Cover Transaction Fees for Your Users","href":"/wallets/guides/gas-sponsorship"},{"title":"Wallet Webhooks","href":"/wallets/guides/webhooks"},{"title":"Set Up a Treasury Wallet","href":"/wallets/guides/treasury-wallets"},{"title":"Export Private Key","href":"/wallets/guides/export-private-key"},{"title":"Troubleshooting","href":"/wallets/guides/troubleshooting"},{"title":"Migrate to V1","href":"/wallets/guides/migrate-to-v1"},{"title":"Migrate to React Native SDK 2.0","href":"/wallets/guides/migrate-react-native-sdk-2"}]}]},{"group":"API Reference","pages":[{"group":"REST","icon":"brackets-curly","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets","title":"Create Wallet","href":"/api-reference/wallets/create-wallet"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}","title":"Get Wallet By Locator","href":"/api-reference/wallets/get-wallet-by-locator"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/balances","title":"Get Wallet Balance","href":"/api-reference/wallets/get-wallet-balance"},{"openapi":"api-reference/_open-api/Wallets.json POST /v1-alpha2/wallets/{walletLocator}/balances","title":"Fund Wallet","href":"/api-reference/wallets/fund-wallet"},{"openapi":"api-reference/_open-api/Wallets.json GET /2022-06-09/wallets/{locator}/nfts","title":"Get NFTs from Wallet","href":"/api-reference/wallets/get-nfts-from-wallet"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/transactions","title":"Create Transaction","href":"/api-reference/wallets/create-transaction"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/transactions/{transactionId}","title":"Get Transaction","href":"/api-reference/wallets/get-transaction"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/transactions","title":"Get Wallet Transactions","href":"/api-reference/wallets/get-transactions"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/transactions/{transactionId}/approvals","title":"Approve Transaction","href":"/api-reference/wallets/approve-transaction"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/signatures","title":"Create Signature","href":"/api-reference/wallets/create-signature"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/signatures","title":"Get All Signatures","href":"/api-reference/wallets/get-signatures"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/signatures/{signatureId}","title":"Get Signature","href":"/api-reference/wallets/get-signature"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/signatures/{signatureId}/approvals","title":"Approve Signature","href":"/api-reference/wallets/approve-signature"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/signers","title":"Create Delegated Signer","href":"/api-reference/wallets/register-delegated-key"},{"openapi":"api-reference/_open-api/Wallets.json DELETE /2025-06-09/wallets/{walletLocator}/signers/{signer}","title":"Remove Delegated Signer","href":"/api-reference/wallets/remove-delegated-key"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/signers/{signer}","title":"Get Delegated Signer","description":"Retrieve details about a specific delegated signer by its locator.\n\n**API scope required**: `wallets.read`","href":"/api-reference/wallets/get-signer"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/recovery-methods","title":"Add Recovery Method","href":"/api-reference/wallets/add-recovery-method"},{"openapi":"api-reference/_open-api/Wallets.json DELETE /2025-06-09/wallets/{walletLocator}/recovery-methods/{signer}","title":"Remove Recovery Method","description":"Remove one recovery method from a wallet.","href":"/api-reference/wallets/remove-recovery-method"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/tokens/{tokenLocator}/transfers","title":"Transfer Token","href":"/api-reference/wallets/transfer-token"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/tokens/{tokenLocator}/transfers/{transactionId}","title":"Get Transfer Transaction","href":"/api-reference/wallets/get-transfer-token"},{"title":"List Wallet Transfers","openapi":"api-reference/_open-api/Wallets.json GET /unstable/wallets/{walletLocator}/transfers","href":"/api-reference/wallets/list-transfers"}]},{"group":"Typescript SDK","icon":"/images/icons/ts-logo-128.png","pages":[{"title":"Getting Started","href":"/sdk-reference/wallets/typescript/overview"},{"title":"Reference","href":"/sdk-reference/wallets/typescript/reference"},{"group":"Classes","pages":[{"title":"AuthRejectedError","href":"/sdk-reference/wallets/typescript/classes/AuthRejectedError"},{"title":"CrossmintWallets","href":"/sdk-reference/wallets/typescript/classes/CrossmintWallets"},{"title":"DeviceSignerKeyStorage","href":"/sdk-reference/wallets/typescript/classes/DeviceSignerKeyStorage"},{"title":"DuplicateRecoverySignerError","href":"/sdk-reference/wallets/typescript/classes/DuplicateRecoverySignerError"},{"title":"EVMWallet","href":"/sdk-reference/wallets/typescript/classes/EVMWallet"},{"title":"IframeDeviceSignerKeyStorage","href":"/sdk-reference/wallets/typescript/classes/IframeDeviceSignerKeyStorage"},{"title":"InvalidRecoveryConfigError","href":"/sdk-reference/wallets/typescript/classes/InvalidRecoveryConfigError"},{"title":"InvalidTransferAmountError","href":"/sdk-reference/wallets/typescript/classes/InvalidTransferAmountError"},{"title":"JWTDecryptionError","href":"/sdk-reference/wallets/typescript/classes/JWTDecryptionError"},{"title":"JWTExpiredError","href":"/sdk-reference/wallets/typescript/classes/JWTExpiredError"},{"title":"JWTIdentifierError","href":"/sdk-reference/wallets/typescript/classes/JWTIdentifierError"},{"title":"JWTInvalidError","href":"/sdk-reference/wallets/typescript/classes/JWTInvalidError"},{"title":"KeyExportError","href":"/sdk-reference/wallets/typescript/classes/KeyExportError"},{"title":"NotAuthorizedError","href":"/sdk-reference/wallets/typescript/classes/NotAuthorizedError"},{"title":"NotSupportedOnApiVersionError","href":"/sdk-reference/wallets/typescript/classes/NotSupportedOnApiVersionError"},{"title":"OnboardingSessionExpiredError","href":"/sdk-reference/wallets/typescript/classes/OnboardingSessionExpiredError"},{"title":"OtpValidationError","href":"/sdk-reference/wallets/typescript/classes/OtpValidationError"},{"title":"QuorumSignerNotSupportedError","href":"/sdk-reference/wallets/typescript/classes/QuorumSignerNotSupportedError"},{"title":"RecoveryAdminSignerConflictError","href":"/sdk-reference/wallets/typescript/classes/RecoveryAdminSignerConflictError"},{"title":"RecoveryMethodRequiredError","href":"/sdk-reference/wallets/typescript/classes/RecoveryMethodRequiredError"},{"title":"RecoveryNotSupportedOnChainError","href":"/sdk-reference/wallets/typescript/classes/RecoveryNotSupportedOnChainError"},{"title":"RecoverySignerConflictError","href":"/sdk-reference/wallets/typescript/classes/RecoverySignerConflictError"},{"title":"RecoverySignerLimitExceededError","href":"/sdk-reference/wallets/typescript/classes/RecoverySignerLimitExceededError"},{"title":"SignerAuthenticationError","href":"/sdk-reference/wallets/typescript/classes/SignerAuthenticationError"},{"title":"SignerRequiredError","href":"/sdk-reference/wallets/typescript/classes/SignerRequiredError"},{"title":"SignerStatusError","href":"/sdk-reference/wallets/typescript/classes/SignerStatusError"},{"title":"SolanaWallet","href":"/sdk-reference/wallets/typescript/classes/SolanaWallet"},{"title":"StellarWallet","href":"/sdk-reference/wallets/typescript/classes/StellarWallet"},{"title":"UnsupportedBrowserError","href":"/sdk-reference/wallets/typescript/classes/UnsupportedBrowserError"},{"title":"Wallet","href":"/sdk-reference/wallets/typescript/classes/Wallet"},{"title":"WalletNotAvailableError","href":"/sdk-reference/wallets/typescript/classes/WalletNotAvailableError"},{"title":"WalletsApiClient","href":"/sdk-reference/wallets/typescript/classes/WalletsApiClient"}]},{"group":"Interfaces","pages":[{"title":"ExportableSignerAdapter","href":"/sdk-reference/wallets/typescript/interfaces/ExportableSignerAdapter"},{"title":"SignerAdapter","href":"/sdk-reference/wallets/typescript/interfaces/SignerAdapter"}]},{"group":"Type Aliases","pages":[{"title":"AddRecoveryMethodOptions","href":"/sdk-reference/wallets/typescript/type-aliases/AddRecoveryMethodOptions"},{"title":"AddRecoveryMethodReturnType","href":"/sdk-reference/wallets/typescript/type-aliases/AddRecoveryMethodReturnType"},{"title":"AddSignerOptions","href":"/sdk-reference/wallets/typescript/type-aliases/AddSignerOptions"},{"title":"ApiKeySignerLocator","href":"/sdk-reference/wallets/typescript/type-aliases/ApiKeySignerLocator"},{"title":"ApproveOptions","href":"/sdk-reference/wallets/typescript/type-aliases/ApproveOptions"},{"title":"ApproveParams","href":"/sdk-reference/wallets/typescript/type-aliases/ApproveParams"},{"title":"ApproveTransactionParams","href":"/sdk-reference/wallets/typescript/type-aliases/ApproveTransactionParams"},{"title":"Balances","href":"/sdk-reference/wallets/typescript/type-aliases/Balances"},{"title":"BiometricRequestHandler","href":"/sdk-reference/wallets/typescript/type-aliases/BiometricRequestHandler"},{"title":"Callbacks","href":"/sdk-reference/wallets/typescript/type-aliases/Callbacks"},{"title":"Chain","href":"/sdk-reference/wallets/typescript/type-aliases/Chain"},{"title":"ClientSideWalletArgsFor","href":"/sdk-reference/wallets/typescript/type-aliases/ClientSideWalletArgsFor"},{"title":"ClientSideWalletCreateArgs","href":"/sdk-reference/wallets/typescript/type-aliases/ClientSideWalletCreateArgs"},{"title":"CreateServerSignerParams","href":"/sdk-reference/wallets/typescript/type-aliases/CreateServerSignerParams"},{"title":"CreateWalletParams","href":"/sdk-reference/wallets/typescript/type-aliases/CreateWalletParams"},{"title":"CreateWalletResponse","href":"/sdk-reference/wallets/typescript/type-aliases/CreateWalletResponse"},{"title":"DeviceSignerConfig","href":"/sdk-reference/wallets/typescript/type-aliases/DeviceSignerConfig"},{"title":"DeviceSignerLocator","href":"/sdk-reference/wallets/typescript/type-aliases/DeviceSignerLocator"},{"title":"EVMChain","href":"/sdk-reference/wallets/typescript/type-aliases/EVMChain"},{"title":"EVMTransactionInput","href":"/sdk-reference/wallets/typescript/type-aliases/EVMTransactionInput"},{"title":"EmailSignerConfig","href":"/sdk-reference/wallets/typescript/type-aliases/EmailSignerConfig"},{"title":"EmailSignerLocator","href":"/sdk-reference/wallets/typescript/type-aliases/EmailSignerLocator"},{"title":"EvmExternalWalletSignerConfig","href":"/sdk-reference/wallets/typescript/type-aliases/EvmExternalWalletSignerConfig"},{"title":"ExportSignerTEEConnection","href":"/sdk-reference/wallets/typescript/type-aliases/ExportSignerTEEConnection"},{"title":"ExternalWalletRegistrationConfig","href":"/sdk-reference/wallets/typescript/type-aliases/ExternalWalletRegistrationConfig"},{"title":"ExternalWalletSignerConfig","href":"/sdk-reference/wallets/typescript/type-aliases/ExternalWalletSignerConfig"},{"title":"ExternalWalletSignerConfigForChain","href":"/sdk-reference/wallets/typescript/type-aliases/ExternalWalletSignerConfigForChain"},{"title":"ExternalWalletSignerLocator","href":"/sdk-reference/wallets/typescript/type-aliases/ExternalWalletSignerLocator"},{"title":"FundWalletParams","href":"/sdk-reference/wallets/typescript/type-aliases/FundWalletParams"},{"title":"FundWalletResponse","href":"/sdk-reference/wallets/typescript/type-aliases/FundWalletResponse"},{"title":"GetBalanceResponse","href":"/sdk-reference/wallets/typescript/type-aliases/GetBalanceResponse"},{"title":"GetTransactionResponse","href":"/sdk-reference/wallets/typescript/type-aliases/GetTransactionResponse"},{"title":"PasskeyProvider","href":"/sdk-reference/wallets/typescript/type-aliases/PasskeyProvider"},{"title":"PasskeySignResult","href":"/sdk-reference/wallets/typescript/type-aliases/PasskeySignResult"},{"title":"PasskeySignerLocator","href":"/sdk-reference/wallets/typescript/type-aliases/PasskeySignerLocator"},{"title":"PhoneSignerConfig","href":"/sdk-reference/wallets/typescript/type-aliases/PhoneSignerConfig"},{"title":"PhoneSignerLocator","href":"/sdk-reference/wallets/typescript/type-aliases/PhoneSignerLocator"},{"title":"RecoverySignerConfigForChain","href":"/sdk-reference/wallets/typescript/type-aliases/RecoverySignerConfigForChain"},{"title":"RegisterSignerPasskeyParams","href":"/sdk-reference/wallets/typescript/type-aliases/RegisterSignerPasskeyParams"},{"title":"RemoveRecoveryMethodOptions","href":"/sdk-reference/wallets/typescript/type-aliases/RemoveRecoveryMethodOptions"},{"title":"RemoveRecoveryMethodReturnType","href":"/sdk-reference/wallets/typescript/type-aliases/RemoveRecoveryMethodReturnType"},{"title":"RemoveSignerOptions","href":"/sdk-reference/wallets/typescript/type-aliases/RemoveSignerOptions"},{"title":"Scope","href":"/sdk-reference/wallets/typescript/type-aliases/Scope"},{"title":"SendResponse","href":"/sdk-reference/wallets/typescript/type-aliases/SendResponse"},{"title":"ServerSigner","href":"/sdk-reference/wallets/typescript/type-aliases/ServerSigner"},{"title":"ServerSignerConfig","href":"/sdk-reference/wallets/typescript/type-aliases/ServerSignerConfig"},{"title":"Signature","href":"/sdk-reference/wallets/typescript/type-aliases/Signature"},{"title":"Signer","href":"/sdk-reference/wallets/typescript/type-aliases/Signer"},{"title":"SignerConfigForChain","href":"/sdk-reference/wallets/typescript/type-aliases/SignerConfigForChain"},{"title":"SignerLocator","href":"/sdk-reference/wallets/typescript/type-aliases/SignerLocator"},{"title":"SignerStatus","href":"/sdk-reference/wallets/typescript/type-aliases/SignerStatus"},{"title":"SolanaChain","href":"/sdk-reference/wallets/typescript/type-aliases/SolanaChain"},{"title":"SolanaExternalWalletSignerConfig","href":"/sdk-reference/wallets/typescript/type-aliases/SolanaExternalWalletSignerConfig"},{"title":"SolanaTransactionInput","href":"/sdk-reference/wallets/typescript/type-aliases/SolanaTransactionInput"},{"title":"StellarChain","href":"/sdk-reference/wallets/typescript/type-aliases/StellarChain"},{"title":"StellarExternalWalletSignerConfig","href":"/sdk-reference/wallets/typescript/type-aliases/StellarExternalWalletSignerConfig"},{"title":"Transaction","href":"/sdk-reference/wallets/typescript/type-aliases/Transaction"},{"title":"TransferScope","href":"/sdk-reference/wallets/typescript/type-aliases/TransferScope"},{"title":"Transfers","href":"/sdk-reference/wallets/typescript/type-aliases/Transfers"},{"title":"WalletArgsFor","href":"/sdk-reference/wallets/typescript/type-aliases/WalletArgsFor"},{"title":"WalletCreateArgs","href":"/sdk-reference/wallets/typescript/type-aliases/WalletCreateArgs"},{"title":"WalletLocator","href":"/sdk-reference/wallets/typescript/type-aliases/WalletLocator"},{"title":"WalletOptions","href":"/sdk-reference/wallets/typescript/type-aliases/WalletOptions"},{"title":"WalletPlugin","href":"/sdk-reference/wallets/typescript/type-aliases/WalletPlugin"}]},{"group":"Functions","pages":[{"title":"createCrossmint","href":"/sdk-reference/wallets/typescript/functions/createCrossmint"},{"title":"createDeviceSigner","href":"/sdk-reference/wallets/typescript/functions/createDeviceSigner"},{"title":"createServerSigner","href":"/sdk-reference/wallets/typescript/functions/createServerSigner"},{"title":"isExportableSignerAdapter","href":"/sdk-reference/wallets/typescript/functions/isExportableSignerAdapter"},{"title":"recoveryMethodsFromCreateArgs","href":"/sdk-reference/wallets/typescript/functions/recoveryMethodsFromCreateArgs"}]}]},{"group":"React SDK","icon":"/images/icons/react.svg","pages":[{"title":"Get Started","href":"/sdk-reference/wallets/react/get-started"},{"title":"Providers","href":"/sdk-reference/wallets/react/providers"},{"title":"Hooks","href":"/sdk-reference/wallets/react/hooks"},{"title":"Components","href":"/sdk-reference/wallets/react/components"}]},{"group":"React Native SDK","icon":"/images/icons/react-native.svg","pages":[{"title":"Get Started","href":"/sdk-reference/wallets/react-native/get-started"},{"title":"Providers","href":"/sdk-reference/wallets/react-native/providers"},{"title":"Hooks","href":"/sdk-reference/wallets/react-native/hooks"},{"title":"Components","href":"/sdk-reference/wallets/react-native/components"}]},{"group":"Flutter SDK","icon":"/images/icons/flutter.svg","pages":[{"title":"Get Started","href":"/sdk-reference/wallets/flutter/get-started"},{"title":"Providers","href":"/sdk-reference/wallets/flutter/providers"},{"title":"Controllers","href":"/sdk-reference/wallets/flutter/controllers"},{"title":"Widgets","href":"/sdk-reference/wallets/flutter/widgets"},{"group":"Classes","pages":[{"title":"ChainExplorerRegistry","href":"/sdk-reference/wallets/flutter/classes/chain-explorer-registry"},{"title":"CrossmintApiConfig","href":"/sdk-reference/wallets/flutter/classes/crossmint-api-config"},{"title":"CrossmintApiKeySigner","href":"/sdk-reference/wallets/flutter/classes/crossmint-api-key-signer"},{"title":"CrossmintApiVersions","href":"/sdk-reference/wallets/flutter/classes/crossmint-api-versions"},{"title":"CrossmintAuthClient","href":"/sdk-reference/wallets/flutter/classes/crossmint-auth-client"},{"title":"CrossmintAuthException","href":"/sdk-reference/wallets/flutter/classes/crossmint-auth-exception"},{"title":"CrossmintAuthRejectedException","href":"/sdk-reference/wallets/flutter/classes/crossmint-auth-rejected-exception"},{"title":"CrossmintAuthScope","href":"/sdk-reference/wallets/flutter/classes/crossmint-auth-scope"},{"title":"CrossmintClient","href":"/sdk-reference/wallets/flutter/classes/crossmint-client"},{"title":"CrossmintClientConfig","href":"/sdk-reference/wallets/flutter/classes/crossmint-client-config"},{"title":"CrossmintConfigurationException","href":"/sdk-reference/wallets/flutter/classes/crossmint-configuration-exception"},{"title":"CrossmintCredentialsException","href":"/sdk-reference/wallets/flutter/classes/crossmint-credentials-exception"},{"title":"CrossmintDeserializationException","href":"/sdk-reference/wallets/flutter/classes/crossmint-deserialization-exception"},{"title":"CrossmintDeviceWalletSigner","href":"/sdk-reference/wallets/flutter/classes/crossmint-device-wallet-signer"},{"title":"CrossmintEmailOtpDialog","href":"/sdk-reference/wallets/flutter/classes/crossmint-email-otp-dialog"},{"title":"CrossmintEvmExternalWalletSigner","href":"/sdk-reference/wallets/flutter/classes/crossmint-evm-external-wallet-signer"},{"title":"CrossmintEvmNonCustodialSigner","href":"/sdk-reference/wallets/flutter/classes/crossmint-evm-non-custodial-signer"},{"title":"CrossmintEvmWallet","href":"/sdk-reference/wallets/flutter/classes/crossmint-evm-wallet"},{"title":"CrossmintException","href":"/sdk-reference/wallets/flutter/classes/crossmint-exception"},{"title":"CrossmintExportPrivateKeyButton","href":"/sdk-reference/wallets/flutter/classes/crossmint-export-private-key-button"},{"title":"CrossmintExportableWalletSigner","href":"/sdk-reference/wallets/flutter/classes/crossmint-exportable-wallet-signer"},{"title":"CrossmintExternalWalletSigner","href":"/sdk-reference/wallets/flutter/classes/crossmint-external-wallet-signer"},{"title":"CrossmintNonCustodialSigner","href":"/sdk-reference/wallets/flutter/classes/crossmint-non-custodial-signer"},{"title":"CrossmintOtpCodeInputStep","href":"/sdk-reference/wallets/flutter/classes/crossmint-otp-code-input-step"},{"title":"CrossmintOtpConfirmationStep","href":"/sdk-reference/wallets/flutter/classes/crossmint-otp-confirmation-step"},{"title":"CrossmintOtpModalShell","href":"/sdk-reference/wallets/flutter/classes/crossmint-otp-modal-shell"},{"title":"CrossmintPasskeyApprovalSigner","href":"/sdk-reference/wallets/flutter/classes/crossmint-passkey-approval-signer"},{"title":"CrossmintPasskeySignerFactory","href":"/sdk-reference/wallets/flutter/classes/crossmint-passkey-signer-factory"},{"title":"CrossmintPhoneOtpDialog","href":"/sdk-reference/wallets/flutter/classes/crossmint-phone-otp-dialog"},{"title":"CrossmintPollingConfig","href":"/sdk-reference/wallets/flutter/classes/crossmint-polling-config"},{"title":"CrossmintRuntimeWalletBase","href":"/sdk-reference/wallets/flutter/classes/crossmint-runtime-wallet-base"},{"title":"CrossmintSignerException","href":"/sdk-reference/wallets/flutter/classes/crossmint-signer-exception"},{"title":"CrossmintSolanaExternalWalletSigner","href":"/sdk-reference/wallets/flutter/classes/crossmint-solana-external-wallet-signer"},{"title":"CrossmintSolanaNonCustodialSigner","href":"/sdk-reference/wallets/flutter/classes/crossmint-solana-non-custodial-signer"},{"title":"CrossmintSolanaWallet","href":"/sdk-reference/wallets/flutter/classes/crossmint-solana-wallet"},{"title":"CrossmintStellarExternalWalletSigner","href":"/sdk-reference/wallets/flutter/classes/crossmint-stellar-external-wallet-signer"},{"title":"CrossmintStellarNonCustodialSigner","href":"/sdk-reference/wallets/flutter/classes/crossmint-stellar-non-custodial-signer"},{"title":"CrossmintStellarWallet","href":"/sdk-reference/wallets/flutter/classes/crossmint-stellar-wallet"},{"title":"CrossmintTokensException","href":"/sdk-reference/wallets/flutter/classes/crossmint-tokens-exception"},{"title":"CrossmintUsersException","href":"/sdk-reference/wallets/flutter/classes/crossmint-users-exception"},{"title":"CrossmintWalletAuthChallenge","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-auth-challenge"},{"title":"CrossmintWalletController","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-controller"},{"title":"CrossmintWalletControllerConfig","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-controller-config"},{"title":"CrossmintWalletException","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-exception"},{"title":"CrossmintWalletHost","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-host"},{"title":"CrossmintWalletLifecycleCallbacks","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-lifecycle-callbacks"},{"title":"CrossmintWalletOtpController","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-otp-controller"},{"title":"CrossmintWalletProvider","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-provider"},{"title":"CrossmintWalletProviderConfig","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-provider-config"},{"title":"CrossmintWalletProviderDependencies","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-provider-dependencies"},{"title":"CrossmintWalletScope","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-scope"},{"title":"CrossmintWalletStateRepository","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-state-repository"},{"title":"CrossmintWalletStateView","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallet-state-view"},{"title":"CrossmintWallets","href":"/sdk-reference/wallets/flutter/classes/crossmint-wallets"},{"title":"DefaultCrossmintAppIdentityResolver","href":"/sdk-reference/wallets/flutter/classes/default-crossmint-app-identity-resolver"},{"title":"SoftwareDeviceSignerKeyStorage","href":"/sdk-reference/wallets/flutter/classes/software-device-signer-key-storage"},{"title":"UnsupportedPasskeySignerFactory","href":"/sdk-reference/wallets/flutter/classes/unsupported-passkey-signer-factory"},{"title":"WalletResponseParser","href":"/sdk-reference/wallets/flutter/classes/wallet-response-parser"},{"title":"WalletSerializationCodec","href":"/sdk-reference/wallets/flutter/classes/wallet-serialization-codec"}]},{"group":"Enums","pages":[{"title":"CrossmintChain","href":"/sdk-reference/wallets/flutter/enums/crossmint-chain"},{"title":"CrossmintChainFamily","href":"/sdk-reference/wallets/flutter/enums/crossmint-chain-family"},{"title":"CrossmintErrorCode","href":"/sdk-reference/wallets/flutter/enums/crossmint-error-code"},{"title":"CrossmintWalletStatus","href":"/sdk-reference/wallets/flutter/enums/crossmint-wallet-status"}]},{"group":"Type Aliases","pages":[{"title":"CrossmintExportPrivateKeyButtonBuilder","href":"/sdk-reference/wallets/flutter/type-aliases/crossmint-export-private-key-button-builder"},{"title":"CrossmintExternalWalletSignCallback","href":"/sdk-reference/wallets/flutter/type-aliases/crossmint-external-wallet-sign-callback"},{"title":"CrossmintOtpPromptBuilder","href":"/sdk-reference/wallets/flutter/type-aliases/crossmint-otp-prompt-builder"},{"title":"CrossmintOtpRejectCallback","href":"/sdk-reference/wallets/flutter/type-aliases/crossmint-otp-reject-callback"},{"title":"CrossmintOtpSendCallback","href":"/sdk-reference/wallets/flutter/type-aliases/crossmint-otp-send-callback"},{"title":"CrossmintOtpVerifyCallback","href":"/sdk-reference/wallets/flutter/type-aliases/crossmint-otp-verify-callback"},{"title":"CrossmintSignerAuthRequiredCallback","href":"/sdk-reference/wallets/flutter/type-aliases/crossmint-signer-auth-required-callback"}]}]},{"group":"Swift SDK","icon":"/images/icons/swift.svg","pages":[{"group":"Classes","pages":[{"title":"ABI","href":"/sdk-reference/wallets/swift/classes/abi"},{"title":"ApiKeySigner","href":"/sdk-reference/wallets/swift/classes/apikeysigner"},{"title":"CrossmintAuthManager","href":"/sdk-reference/wallets/swift/classes/crossmintauthmanager"},{"title":"CrossmintSDK","href":"/sdk-reference/wallets/swift/classes/crossmintsdk"},{"title":"DefaultAuthClient","href":"/sdk-reference/wallets/swift/classes/defaultauthclient"},{"title":"DefaultAuthService","href":"/sdk-reference/wallets/swift/classes/defaultauthservice"},{"title":"DefaultCrossmintWallets","href":"/sdk-reference/wallets/swift/classes/defaultcrossmintwallets"},{"title":"DefaultSmartWalletService","href":"/sdk-reference/wallets/swift/classes/defaultsmartwalletservice"},{"title":"EVMEmailSigner","href":"/sdk-reference/wallets/swift/classes/evmemailsigner"},{"title":"EVMKeyPairSigner","href":"/sdk-reference/wallets/swift/classes/evmkeypairsigner"},{"title":"EVMWallet","href":"/sdk-reference/wallets/swift/classes/evmwallet"},{"title":"PasskeySigner","href":"/sdk-reference/wallets/swift/classes/passkeysigner"},{"title":"PhoneSigner","href":"/sdk-reference/wallets/swift/classes/phonesigner"},{"title":"SolanaEmailSigner","href":"/sdk-reference/wallets/swift/classes/solanaemailsigner"},{"title":"SolanaWallet","href":"/sdk-reference/wallets/swift/classes/solanawallet"},{"title":"StellarEmailSigner","href":"/sdk-reference/wallets/swift/classes/stellaremailsigner"},{"title":"StellarWallet","href":"/sdk-reference/wallets/swift/classes/stellarwallet"},{"title":"Wallet","href":"/sdk-reference/wallets/swift/classes/wallet"}]},{"group":"Protocols","pages":[{"title":"AdminSignerApiModel","href":"/sdk-reference/wallets/swift/protocols/adminsignerapimodel"},{"title":"AdminSignerData","href":"/sdk-reference/wallets/swift/protocols/adminsignerdata"},{"title":"AnyChain","href":"/sdk-reference/wallets/swift/protocols/anychain"},{"title":"ApprovalSigner","href":"/sdk-reference/wallets/swift/protocols/approvalsigner"},{"title":"AuthClient","href":"/sdk-reference/wallets/swift/protocols/authclient"},{"title":"AuthManager","href":"/sdk-reference/wallets/swift/protocols/authmanager"},{"title":"AuthService","href":"/sdk-reference/wallets/swift/protocols/authservice"},{"title":"BalanceService","href":"/sdk-reference/wallets/swift/protocols/balanceservice"},{"title":"BlockchainAddress","href":"/sdk-reference/wallets/swift/protocols/blockchainaddress"},{"title":"ChainWithSigners","href":"/sdk-reference/wallets/swift/protocols/chainwithsigners"},{"title":"CrossmintWallets","href":"/sdk-reference/wallets/swift/protocols/crossmintwallets"},{"title":"EVMCompatibleSigner","href":"/sdk-reference/wallets/swift/protocols/evmcompatiblesigner"},{"title":"NFTService","href":"/sdk-reference/wallets/swift/protocols/nftservice"},{"title":"SignatureApiModel","href":"/sdk-reference/wallets/swift/protocols/signatureapimodel"},{"title":"SignatureService","href":"/sdk-reference/wallets/swift/protocols/signatureservice"},{"title":"Signer","href":"/sdk-reference/wallets/swift/protocols/signer"},{"title":"SignerProvider","href":"/sdk-reference/wallets/swift/protocols/signerprovider"},{"title":"SmartWalletCreationQueryParams","href":"/sdk-reference/wallets/swift/protocols/smartwalletcreationqueryparams"},{"title":"SmartWalletService","href":"/sdk-reference/wallets/swift/protocols/smartwalletservice"},{"title":"SolanaCompatibleSigner","href":"/sdk-reference/wallets/swift/protocols/solanacompatiblesigner"},{"title":"SpecificChain","href":"/sdk-reference/wallets/swift/protocols/specificchain"},{"title":"StellarCompatibleSigner","href":"/sdk-reference/wallets/swift/protocols/stellarcompatiblesigner"},{"title":"TransactionApiModel","href":"/sdk-reference/wallets/swift/protocols/transactionapimodel"},{"title":"TransactionRequest","href":"/sdk-reference/wallets/swift/protocols/transactionrequest"},{"title":"TransactionService","href":"/sdk-reference/wallets/swift/protocols/transactionservice"},{"title":"TransferService","href":"/sdk-reference/wallets/swift/protocols/transferservice"},{"title":"WalletOnChain","href":"/sdk-reference/wallets/swift/protocols/walletonchain"},{"title":"WalletService","href":"/sdk-reference/wallets/swift/protocols/walletservice"},{"title":"WalletTypeTransactionMapping","href":"/sdk-reference/wallets/swift/protocols/wallettypetransactionmapping"}]},{"group":"Enums","pages":[{"title":"Address","href":"/sdk-reference/wallets/swift/enums/address"},{"title":"AdminSignerDataType","href":"/sdk-reference/wallets/swift/enums/adminsignerdatatype"},{"title":"AuthenticationStatus","href":"/sdk-reference/wallets/swift/enums/authenticationstatus"},{"title":"AuthError","href":"/sdk-reference/wallets/swift/enums/autherror"},{"title":"AuthManagerError","href":"/sdk-reference/wallets/swift/enums/authmanagererror"},{"title":"BlockchainAddressError","href":"/sdk-reference/wallets/swift/enums/blockchainaddresserror"},{"title":"BlockchainExplorerLinkType","href":"/sdk-reference/wallets/swift/enums/blockchainexplorerlinktype"},{"title":"Chain","href":"/sdk-reference/wallets/swift/enums/chain"},{"title":"ChainAndAddress","href":"/sdk-reference/wallets/swift/enums/chainandaddress"},{"title":"ChainType","href":"/sdk-reference/wallets/swift/enums/chaintype"},{"title":"CryptoCurrency","href":"/sdk-reference/wallets/swift/enums/cryptocurrency"},{"title":"CryptoPaymentFailureCode","href":"/sdk-reference/wallets/swift/enums/cryptopaymentfailurecode"},{"title":"EIP712","href":"/sdk-reference/wallets/swift/enums/eip712"},{"title":"EVMChain","href":"/sdk-reference/wallets/swift/enums/evmchain"},{"title":"EVMSigners","href":"/sdk-reference/wallets/swift/enums/evmsigners"},{"title":"EVMSmartWalletMapping","href":"/sdk-reference/wallets/swift/enums/evmsmartwalletmapping"},{"title":"FiatCurrency","href":"/sdk-reference/wallets/swift/enums/fiatcurrency"},{"title":"LinkedUserError","href":"/sdk-reference/wallets/swift/enums/linkedusererror"},{"title":"NonCustodialSignerError","href":"/sdk-reference/wallets/swift/enums/noncustodialsignererror"},{"title":"OTPAuthenticationStatus","href":"/sdk-reference/wallets/swift/enums/otpauthenticationstatus"},{"title":"OTPDeliveryChannel","href":"/sdk-reference/wallets/swift/enums/otpdeliverychannel"},{"title":"Owner","href":"/sdk-reference/wallets/swift/enums/owner"},{"title":"SignatureError","href":"/sdk-reference/wallets/swift/enums/signatureerror"},{"title":"SignerConfig","href":"/sdk-reference/wallets/swift/enums/signerconfig"},{"title":"SignerError","href":"/sdk-reference/wallets/swift/enums/signererror"},{"title":"SignerLocator","href":"/sdk-reference/wallets/swift/enums/signerlocator"},{"title":"Signers","href":"/sdk-reference/wallets/swift/enums/signers"},{"title":"SignerStatus","href":"/sdk-reference/wallets/swift/enums/signerstatus"},{"title":"SignerType","href":"/sdk-reference/wallets/swift/enums/signertype"},{"title":"SolanaChain","href":"/sdk-reference/wallets/swift/enums/solanachain"},{"title":"SolanaSigners","href":"/sdk-reference/wallets/swift/enums/solanasigners"},{"title":"SolanaSmartWalletMapping","href":"/sdk-reference/wallets/swift/enums/solanasmartwalletmapping"},{"title":"SolanaSupportedToken","href":"/sdk-reference/wallets/swift/enums/solanasupportedtoken"},{"title":"StellarChain","href":"/sdk-reference/wallets/swift/enums/stellarchain"},{"title":"StellarSigners","href":"/sdk-reference/wallets/swift/enums/stellarsigners"},{"title":"StellarSmartWalletMapping","href":"/sdk-reference/wallets/swift/enums/stellarsmartwalletmapping"},{"title":"StellarSupportedToken","href":"/sdk-reference/wallets/swift/enums/stellarsupportedtoken"},{"title":"TokenAccountType","href":"/sdk-reference/wallets/swift/enums/tokenaccounttype"},{"title":"TransactionError","href":"/sdk-reference/wallets/swift/enums/transactionerror"},{"title":"TransactionStatus","href":"/sdk-reference/wallets/swift/enums/transactionstatus"},{"title":"TransactionStatusApiModel","href":"/sdk-reference/wallets/swift/enums/transactionstatusapimodel"},{"title":"TransferTokenLocator","href":"/sdk-reference/wallets/swift/enums/transfertokenlocator"},{"title":"TransferTokenRecipient","href":"/sdk-reference/wallets/swift/enums/transfertokenrecipient"},{"title":"TransferType","href":"/sdk-reference/wallets/swift/enums/transfertype"},{"title":"UnknownChain","href":"/sdk-reference/wallets/swift/enums/unknownchain"},{"title":"WalletError","href":"/sdk-reference/wallets/swift/enums/walleterror"},{"title":"WalletLocator","href":"/sdk-reference/wallets/swift/enums/walletlocator"},{"title":"WalletType","href":"/sdk-reference/wallets/swift/enums/wallettype"}]},{"group":"Structs","pages":[{"title":"ABIAddress","href":"/sdk-reference/wallets/swift/structs/abiaddress"},{"title":"ABIUInt64","href":"/sdk-reference/wallets/swift/structs/abiuint64"},{"title":"AddDelegatedSignerResponse","href":"/sdk-reference/wallets/swift/structs/adddelegatedsignerresponse"},{"title":"ApiKeySignerApiModel","href":"/sdk-reference/wallets/swift/structs/apikeysignerapimodel"},{"title":"ApiKeySignerData","href":"/sdk-reference/wallets/swift/structs/apikeysignerdata"},{"title":"ApprovalEntry","href":"/sdk-reference/wallets/swift/structs/approvalentry"},{"title":"Approvals","href":"/sdk-reference/wallets/swift/structs/approvals"},{"title":"AuthSession","href":"/sdk-reference/wallets/swift/structs/authsession"},{"title":"AuthUser","href":"/sdk-reference/wallets/swift/structs/authuser"},{"title":"Balance","href":"/sdk-reference/wallets/swift/structs/balance"},{"title":"Balances","href":"/sdk-reference/wallets/swift/structs/balances"},{"title":"BlockchainAddressLink","href":"/sdk-reference/wallets/swift/structs/blockchainaddresslink"},{"title":"BlockchainTokenLink","href":"/sdk-reference/wallets/swift/structs/blockchaintokenlink"},{"title":"BlockchainTransactionLink","href":"/sdk-reference/wallets/swift/structs/blockchaintransactionlink"},{"title":"ChainBalances","href":"/sdk-reference/wallets/swift/structs/chainbalances"},{"title":"ChainRegistrationEntry","href":"/sdk-reference/wallets/swift/structs/chainregistrationentry"},{"title":"ChainRegistrationOnChain","href":"/sdk-reference/wallets/swift/structs/chainregistrationonchain"},{"title":"CreateEVMTransactionRequest","href":"/sdk-reference/wallets/swift/structs/createevmtransactionrequest"},{"title":"CreateSignatureRequest","href":"/sdk-reference/wallets/swift/structs/createsignaturerequest"},{"title":"CreateSolanaTransactionRequest","href":"/sdk-reference/wallets/swift/structs/createsolanatransactionrequest"},{"title":"CreateStellarTransactionRequest","href":"/sdk-reference/wallets/swift/structs/createstellartransactionrequest"},{"title":"CreateTransactionRequest","href":"/sdk-reference/wallets/swift/structs/createtransactionrequest"},{"title":"CreateWalletParams","href":"/sdk-reference/wallets/swift/structs/createwalletparams"},{"title":"DelegatedSignerEntry","href":"/sdk-reference/wallets/swift/structs/delegatedsignerentry"},{"title":"DevicePublicKey","href":"/sdk-reference/wallets/swift/structs/devicepublickey"},{"title":"EmailSignerApiModel","href":"/sdk-reference/wallets/swift/structs/emailsignerapimodel"},{"title":"EmailSignerData","href":"/sdk-reference/wallets/swift/structs/emailsignerdata"},{"title":"ERC20Encoder","href":"/sdk-reference/wallets/swift/structs/erc20encoder"},{"title":"EVMAddress","href":"/sdk-reference/wallets/swift/structs/evmaddress"},{"title":"EvmPasskeySignerApiModel","href":"/sdk-reference/wallets/swift/structs/evmpasskeysignerapimodel"},{"title":"EVMTransactionApiModel","href":"/sdk-reference/wallets/swift/structs/evmtransactionapimodel"},{"title":"ExternalWalletSigner","href":"/sdk-reference/wallets/swift/structs/externalwalletsigner"},{"title":"ExternalWalletSignerApiModel","href":"/sdk-reference/wallets/swift/structs/externalwalletsignerapimodel"},{"title":"ExternalWalletSignerData","href":"/sdk-reference/wallets/swift/structs/externalwalletsignerdata"},{"title":"FetchTransactionRequest","href":"/sdk-reference/wallets/swift/structs/fetchtransactionrequest"},{"title":"FundWalletApiRequest","href":"/sdk-reference/wallets/swift/structs/fundwalletapirequest"},{"title":"FundWalletRequest","href":"/sdk-reference/wallets/swift/structs/fundwalletrequest"},{"title":"GetBalanceQueryParams","href":"/sdk-reference/wallets/swift/structs/getbalancequeryparams"},{"title":"GetMeWalletRequest","href":"/sdk-reference/wallets/swift/structs/getmewalletrequest"},{"title":"GetNTFQueryParams","href":"/sdk-reference/wallets/swift/structs/getntfqueryparams"},{"title":"GetTransationQueryParams","href":"/sdk-reference/wallets/swift/structs/gettransationqueryparams"},{"title":"ListTransactionsRequest","href":"/sdk-reference/wallets/swift/structs/listtransactionsrequest"},{"title":"ListTransfersQueryParams","href":"/sdk-reference/wallets/swift/structs/listtransfersqueryparams"},{"title":"LogoutRequest","href":"/sdk-reference/wallets/swift/structs/logoutrequest"},{"title":"MessageSignatureResponse","href":"/sdk-reference/wallets/swift/structs/messagesignatureresponse"},{"title":"NFT","href":"/sdk-reference/wallets/swift/structs/nft"},{"title":"NonCustodialSignerCallback","href":"/sdk-reference/wallets/swift/structs/noncustodialsignercallback"},{"title":"OTPRequest","href":"/sdk-reference/wallets/swift/structs/otprequest"},{"title":"PasskeySignerData","href":"/sdk-reference/wallets/swift/structs/passkeysignerdata"},{"title":"PhoneSignerApiModel","href":"/sdk-reference/wallets/swift/structs/phonesignerapimodel"},{"title":"PhoneSignerData","href":"/sdk-reference/wallets/swift/structs/phonesignerdata"},{"title":"RecoveryMethod","href":"/sdk-reference/wallets/swift/structs/recoverymethod"},{"title":"RefreshJWTRequest","href":"/sdk-reference/wallets/swift/structs/refreshjwtrequest"},{"title":"RefreshJWTResponse","href":"/sdk-reference/wallets/swift/structs/refreshjwtresponse"},{"title":"RegistrationApprovals","href":"/sdk-reference/wallets/swift/structs/registrationapprovals"},{"title":"RegistrationTransaction","href":"/sdk-reference/wallets/swift/structs/registrationtransaction"},{"title":"ServerSignerApiModel","href":"/sdk-reference/wallets/swift/structs/serversignerapimodel"},{"title":"ServerSignerData","href":"/sdk-reference/wallets/swift/structs/serversignerdata"},{"title":"SignerApiModel","href":"/sdk-reference/wallets/swift/structs/signerapimodel"},{"title":"SignMessageRequest","href":"/sdk-reference/wallets/swift/structs/signmessagerequest"},{"title":"SignRequest","href":"/sdk-reference/wallets/swift/structs/signrequest"},{"title":"SignRequestApi","href":"/sdk-reference/wallets/swift/structs/signrequestapi"},{"title":"SignTypedDataRequest","href":"/sdk-reference/wallets/swift/structs/signtypeddatarequest"},{"title":"SolanaAddress","href":"/sdk-reference/wallets/swift/structs/solanaaddress"},{"title":"SolanaTransactionApiModel","href":"/sdk-reference/wallets/swift/structs/solanatransactionapimodel"},{"title":"StellarAddress","href":"/sdk-reference/wallets/swift/structs/stellaraddress"},{"title":"StellarTransactionApiModel","href":"/sdk-reference/wallets/swift/structs/stellartransactionapimodel"},{"title":"SubmittedApprovalEntry","href":"/sdk-reference/wallets/swift/structs/submittedapprovalentry"},{"title":"TokenAccountBalance","href":"/sdk-reference/wallets/swift/structs/tokenaccountbalance"},{"title":"TokenAmount","href":"/sdk-reference/wallets/swift/structs/tokenamount"},{"title":"TokenBalance","href":"/sdk-reference/wallets/swift/structs/tokenbalance"},{"title":"TokenLinkOptions","href":"/sdk-reference/wallets/swift/structs/tokenlinkoptions"},{"title":"Transaction","href":"/sdk-reference/wallets/swift/structs/transaction"},{"title":"TransactionErrorApiModel","href":"/sdk-reference/wallets/swift/structs/transactionerrorapimodel"},{"title":"TransactionSummary","href":"/sdk-reference/wallets/swift/structs/transactionsummary"},{"title":"Transfer","href":"/sdk-reference/wallets/swift/structs/transfer"},{"title":"TransferListResult","href":"/sdk-reference/wallets/swift/structs/transferlistresult"},{"title":"TransferTokenRequest","href":"/sdk-reference/wallets/swift/structs/transfertokenrequest"},{"title":"TypedDataSignatureResponse","href":"/sdk-reference/wallets/swift/structs/typeddatasignatureresponse"},{"title":"ValidateEmailRequest","href":"/sdk-reference/wallets/swift/structs/validateemailrequest"},{"title":"ValidateEmailResponse","href":"/sdk-reference/wallets/swift/structs/validateemailresponse"},{"title":"ValidateTokenRequest","href":"/sdk-reference/wallets/swift/structs/validatetokenrequest"},{"title":"ValidateTokenResponse","href":"/sdk-reference/wallets/swift/structs/validatetokenresponse"},{"title":"WalletApiModel","href":"/sdk-reference/wallets/swift/structs/walletapimodel"},{"title":"WalletConfig","href":"/sdk-reference/wallets/swift/structs/walletconfig"},{"title":"WalletConfigApiModel","href":"/sdk-reference/wallets/swift/structs/walletconfigapimodel"},{"title":"WalletOptions","href":"/sdk-reference/wallets/swift/structs/walletoptions"},{"title":"WalletSigner","href":"/sdk-reference/wallets/swift/structs/walletsigner"}]},{"group":"Type Aliases","pages":[{"title":"EmailSignerError","href":"/sdk-reference/wallets/swift/type-aliases/emailsignererror"},{"title":"Secp256k1PrivateKey","href":"/sdk-reference/wallets/swift/type-aliases/secp256k1privatekey"},{"title":"Secp256k1PublicKey","href":"/sdk-reference/wallets/swift/type-aliases/secp256k1publickey"}]},{"group":"Functions","pages":[{"title":"getBlockchainExplorerURL(for:)","href":"/sdk-reference/wallets/swift/functions/getblockchainexplorerurl-for"}]},{"group":"Extensions","pages":[{"title":"Logger","href":"/sdk-reference/wallets/swift/extensions/logger"},{"title":"SwiftUICore","href":"/sdk-reference/wallets/swift/extensions/swiftuicore"}]}]},{"group":"Kotlin SDK","icon":"/images/icons/kotlin.png","pages":[{"title":"Kotlin SDK Reference","href":"/sdk-reference/wallets/kotlin/index"},{"group":"Classes","pages":[{"title":"AndroidCrossmintTEE","href":"/sdk-reference/wallets/kotlin/classes/android-crossmint-tee"},{"title":"AndroidPasskeyProvider","href":"/sdk-reference/wallets/kotlin/classes/android-passkey-provider"},{"title":"AndroidWebViewBridge","href":"/sdk-reference/wallets/kotlin/classes/android-web-view-bridge"},{"title":"AuthSessionStore","href":"/sdk-reference/wallets/kotlin/classes/auth-session-store"},{"title":"Crossmint","deprecated":true,"href":"/sdk-reference/wallets/kotlin/classes/crossmint"},{"title":"CrossmintAuthManager","href":"/sdk-reference/wallets/kotlin/classes/crossmint-auth-manager"},{"title":"CrossmintSDK","href":"/sdk-reference/wallets/kotlin/classes/crossmint-sdk"},{"title":"DelegatedSigner.PasskeyActivation","href":"/sdk-reference/wallets/kotlin/classes/delegated-signer-passkey-activation"},{"title":"DeviceSignerStorageFactory","href":"/sdk-reference/wallets/kotlin/classes/device-signer-storage-factory"},{"title":"EncryptedSharedPreferenceStorage","href":"/sdk-reference/wallets/kotlin/classes/encrypted-shared-preference-storage"},{"title":"EVMWallet","href":"/sdk-reference/wallets/kotlin/classes/evm-wallet"},{"title":"FallbackPolicy.InsecurePersistent","href":"/sdk-reference/wallets/kotlin/classes/fallback-policy-insecure-persistent"},{"title":"FallbackPolicy.MemoryOnly","href":"/sdk-reference/wallets/kotlin/classes/fallback-policy-memory-only"},{"title":"InsecurePersistentSessionStore","href":"/sdk-reference/wallets/kotlin/classes/insecure-persistent-session-store"},{"title":"InvalidEnvironmentKeyException","href":"/sdk-reference/wallets/kotlin/classes/invalid-environment-key-exception"},{"title":"JvmWebViewBridge","href":"/sdk-reference/wallets/kotlin/classes/jvm-web-view-bridge"},{"title":"KeystoreKeyStorage","href":"/sdk-reference/wallets/kotlin/classes/keystore-key-storage"},{"title":"MalformedKeyException","href":"/sdk-reference/wallets/kotlin/classes/malformed-key-exception"},{"title":"OldKeyException","href":"/sdk-reference/wallets/kotlin/classes/old-key-exception"},{"title":"SolanaWallet","href":"/sdk-reference/wallets/kotlin/classes/solana-wallet"},{"title":"StellarWallet","href":"/sdk-reference/wallets/kotlin/classes/stellar-wallet"},{"title":"TinkSecureStorage","href":"/sdk-reference/wallets/kotlin/classes/tink-secure-storage"},{"title":"TinkWithFallbackSessionStore","href":"/sdk-reference/wallets/kotlin/classes/tink-with-fallback-session-store"},{"title":"Wallet","href":"/sdk-reference/wallets/kotlin/classes/wallet"},{"title":"WebViewNotAvailableException","href":"/sdk-reference/wallets/kotlin/classes/web-view-not-available-exception"}]},{"group":"Interfaces","pages":[{"title":"AuthManager","href":"/sdk-reference/wallets/kotlin/interfaces/auth-manager"},{"title":"AuthService","href":"/sdk-reference/wallets/kotlin/interfaces/auth-service"},{"title":"BalanceOperations","href":"/sdk-reference/wallets/kotlin/interfaces/balance-operations"},{"title":"CrossmintTEE","href":"/sdk-reference/wallets/kotlin/interfaces/crossmint-tee"},{"title":"CrossmintWallets","href":"/sdk-reference/wallets/kotlin/interfaces/crossmint-wallets"},{"title":"DeviceSignerKeyStorage","href":"/sdk-reference/wallets/kotlin/interfaces/device-signer-key-storage"},{"title":"EmailSigner","href":"/sdk-reference/wallets/kotlin/interfaces/email-signer"},{"title":"FailureAwareSessionStore","href":"/sdk-reference/wallets/kotlin/interfaces/failure-aware-session-store"},{"title":"NFTOperations","href":"/sdk-reference/wallets/kotlin/interfaces/nft-operations"},{"title":"NonCustodialSigner","href":"/sdk-reference/wallets/kotlin/interfaces/non-custodial-signer"},{"title":"PasskeyProvider","href":"/sdk-reference/wallets/kotlin/interfaces/passkey-provider"},{"title":"SessionStore","href":"/sdk-reference/wallets/kotlin/interfaces/session-store"},{"title":"Signer","href":"/sdk-reference/wallets/kotlin/interfaces/signer"},{"title":"SignerManagementOperations","href":"/sdk-reference/wallets/kotlin/interfaces/signer-management-operations"},{"title":"TransactionOperations","href":"/sdk-reference/wallets/kotlin/interfaces/transaction-operations"}]},{"group":"Enums","pages":[{"title":"ApiKey.Type","href":"/sdk-reference/wallets/kotlin/enums/api-key-type"},{"title":"AuthErrorCode","href":"/sdk-reference/wallets/kotlin/enums/auth-error-code"},{"title":"BalanceErrorCode","href":"/sdk-reference/wallets/kotlin/enums/balance-error-code"},{"title":"ChainType","href":"/sdk-reference/wallets/kotlin/enums/chain-type"},{"title":"ConfigurationErrorCode","href":"/sdk-reference/wallets/kotlin/enums/configuration-error-code"},{"title":"DelegatedSignerStatus","href":"/sdk-reference/wallets/kotlin/enums/delegated-signer-status"},{"title":"DelegatedSignerType","href":"/sdk-reference/wallets/kotlin/enums/delegated-signer-type"},{"title":"Environment","href":"/sdk-reference/wallets/kotlin/enums/environment"},{"title":"FallbackPolicy","href":"/sdk-reference/wallets/kotlin/enums/fallback-policy"},{"title":"IdentityVerificationErrorCode","href":"/sdk-reference/wallets/kotlin/enums/identity-verification-error-code"},{"title":"LogLevel","href":"/sdk-reference/wallets/kotlin/enums/log-level"},{"title":"NetworkErrorCode","href":"/sdk-reference/wallets/kotlin/enums/network-error-code"},{"title":"OTPDeliveryChannel","href":"/sdk-reference/wallets/kotlin/enums/otp-delivery-channel"},{"title":"PasskeyErrorCode","href":"/sdk-reference/wallets/kotlin/enums/passkey-error-code"},{"title":"SignatureErrorCode","href":"/sdk-reference/wallets/kotlin/enums/signature-error-code"},{"title":"TransactionErrorCode","href":"/sdk-reference/wallets/kotlin/enums/transaction-error-code"},{"title":"TransactionStatus","href":"/sdk-reference/wallets/kotlin/enums/transaction-status"},{"title":"TransferErrorCode","href":"/sdk-reference/wallets/kotlin/enums/transfer-error-code"},{"title":"TransferType","href":"/sdk-reference/wallets/kotlin/enums/transfer-type"},{"title":"WalletErrorCode","href":"/sdk-reference/wallets/kotlin/enums/wallet-error-code"},{"title":"WalletType","href":"/sdk-reference/wallets/kotlin/enums/wallet-type"}]},{"group":"Data Classes","pages":[{"title":"ApiKey","href":"/sdk-reference/wallets/kotlin/data-classes/api-key"},{"title":"ApiKeyError.InvalidEnvironmentKey","href":"/sdk-reference/wallets/kotlin/data-classes/api-key-error-invalid-environment-key"},{"title":"ApiKeyError.MalformedKey","href":"/sdk-reference/wallets/kotlin/data-classes/api-key-error-malformed-key"},{"title":"ApiKeyError.OldKey","href":"/sdk-reference/wallets/kotlin/data-classes/api-key-error-old-key"},{"title":"Approval","href":"/sdk-reference/wallets/kotlin/data-classes/approval"},{"title":"ApprovalMetadata.Passkey","href":"/sdk-reference/wallets/kotlin/data-classes/approval-metadata-passkey"},{"title":"ApprovalSignature.Device","href":"/sdk-reference/wallets/kotlin/data-classes/approval-signature-device"},{"title":"ApprovalSignature.Passkey","href":"/sdk-reference/wallets/kotlin/data-classes/approval-signature-passkey"},{"title":"ApprovalSignature.Raw","href":"/sdk-reference/wallets/kotlin/data-classes/approval-signature-raw"},{"title":"Approvals","href":"/sdk-reference/wallets/kotlin/data-classes/approvals"},{"title":"Approvals.PendingApproval","href":"/sdk-reference/wallets/kotlin/data-classes/approvals-pending-approval"},{"title":"Approvals.SubmittedApproval","href":"/sdk-reference/wallets/kotlin/data-classes/approvals-submitted-approval"},{"title":"AuthError.InvalidCredentials","href":"/sdk-reference/wallets/kotlin/data-classes/auth-error-invalid-credentials"},{"title":"AuthError.NotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/auth-error-not-initialized"},{"title":"AuthError.RateLimited","href":"/sdk-reference/wallets/kotlin/data-classes/auth-error-rate-limited"},{"title":"AuthError.ServerError","href":"/sdk-reference/wallets/kotlin/data-classes/auth-error-server-error"},{"title":"AuthError.TokenExpired","href":"/sdk-reference/wallets/kotlin/data-classes/auth-error-token-expired"},{"title":"AuthError.Unauthorized","href":"/sdk-reference/wallets/kotlin/data-classes/auth-error-unauthorized"},{"title":"BalanceError.BalanceNotFound","href":"/sdk-reference/wallets/kotlin/data-classes/balance-error-balance-not-found"},{"title":"BalanceError.BalanceOperationFailed","href":"/sdk-reference/wallets/kotlin/data-classes/balance-error-balance-operation-failed"},{"title":"BalanceError.Forbidden","href":"/sdk-reference/wallets/kotlin/data-classes/balance-error-forbidden"},{"title":"BalanceError.RateLimited","href":"/sdk-reference/wallets/kotlin/data-classes/balance-error-rate-limited"},{"title":"BalanceError.ServiceNotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/balance-error-service-not-initialized"},{"title":"BalanceError.Unauthorized","href":"/sdk-reference/wallets/kotlin/data-classes/balance-error-unauthorized"},{"title":"Balances","href":"/sdk-reference/wallets/kotlin/data-classes/balances"},{"title":"Call","href":"/sdk-reference/wallets/kotlin/data-classes/call"},{"title":"ChainInfo.Solana","href":"/sdk-reference/wallets/kotlin/data-classes/chain-info-solana"},{"title":"ChainInfo.Stellar","href":"/sdk-reference/wallets/kotlin/data-classes/chain-info-stellar"},{"title":"Chain.Unknown","href":"/sdk-reference/wallets/kotlin/data-classes/chain-unknown"},{"title":"Configuration","href":"/sdk-reference/wallets/kotlin/data-classes/configuration"},{"title":"DelegatedSigner.ApiKey","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-api-key"},{"title":"DelegatedSignerData","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-data"},{"title":"DelegatedSigner.Device","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-device"},{"title":"DelegatedSigner.Email","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-email"},{"title":"DelegatedSigner.ExternalWallet","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-external-wallet"},{"title":"DelegatedSigner.Locator","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-locator"},{"title":"DelegatedSigner.Passkey","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-passkey"},{"title":"DelegatedSigner.Phone","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-phone"},{"title":"DeviceSignerError.StorageError","href":"/sdk-reference/wallets/kotlin/data-classes/device-signer-error-storage-error"},{"title":"EVMTransactionParams","href":"/sdk-reference/wallets/kotlin/data-classes/evm-transaction-params"},{"title":"FeeConfig","href":"/sdk-reference/wallets/kotlin/data-classes/fee-config"},{"title":"IdentityVerificationError","href":"/sdk-reference/wallets/kotlin/data-classes/identity-verification-error"},{"title":"NetworkError.ConnectionError","href":"/sdk-reference/wallets/kotlin/data-classes/network-error-connection-error"},{"title":"NetworkError.HttpError","href":"/sdk-reference/wallets/kotlin/data-classes/network-error-http-error"},{"title":"NetworkError.ParseError","href":"/sdk-reference/wallets/kotlin/data-classes/network-error-parse-error"},{"title":"NetworkError.ServiceNotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/network-error-service-not-initialized"},{"title":"NetworkError.TimeoutError","href":"/sdk-reference/wallets/kotlin/data-classes/network-error-timeout-error"},{"title":"NetworkError.UnknownError","href":"/sdk-reference/wallets/kotlin/data-classes/network-error-unknown-error"},{"title":"OnChainData","href":"/sdk-reference/wallets/kotlin/data-classes/on-chain-data"},{"title":"Owner.Address","href":"/sdk-reference/wallets/kotlin/data-classes/owner-address"},{"title":"Owner.Email","href":"/sdk-reference/wallets/kotlin/data-classes/owner-email"},{"title":"Owner.PhoneNumber","href":"/sdk-reference/wallets/kotlin/data-classes/owner-phone-number"},{"title":"Owner.Twitter","href":"/sdk-reference/wallets/kotlin/data-classes/owner-twitter"},{"title":"Owner.UserId","href":"/sdk-reference/wallets/kotlin/data-classes/owner-user-id"},{"title":"PasskeyCredentialInfo","href":"/sdk-reference/wallets/kotlin/data-classes/passkey-credential-info"},{"title":"PasskeyError.Cancelled","href":"/sdk-reference/wallets/kotlin/data-classes/passkey-error-cancelled"},{"title":"PasskeyError.Failed","href":"/sdk-reference/wallets/kotlin/data-classes/passkey-error-failed"},{"title":"PasskeySignMetadata","href":"/sdk-reference/wallets/kotlin/data-classes/passkey-sign-metadata"},{"title":"PasskeySignResult","href":"/sdk-reference/wallets/kotlin/data-classes/passkey-sign-result"},{"title":"RawTransactionParams.Solana","href":"/sdk-reference/wallets/kotlin/data-classes/raw-transaction-params-solana"},{"title":"RawTransactionParams.Stellar","href":"/sdk-reference/wallets/kotlin/data-classes/raw-transaction-params-stellar"},{"title":"RawTransactionParams.StellarSerialized","href":"/sdk-reference/wallets/kotlin/data-classes/raw-transaction-params-stellar-serialized"},{"title":"RecoveryMethod","href":"/sdk-reference/wallets/kotlin/data-classes/recovery-method"},{"title":"Result.Failure","href":"/sdk-reference/wallets/kotlin/data-classes/result-failure"},{"title":"Result.Success","href":"/sdk-reference/wallets/kotlin/data-classes/result-success"},{"title":"SignatureError.ChainNotSupported","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-chain-not-supported"},{"title":"SignatureError.CreationFailed","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-creation-failed"},{"title":"SignatureError.Forbidden","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-forbidden"},{"title":"SignatureError.ServiceNotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-service-not-initialized"},{"title":"SignatureError.SigningFailed","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-signing-failed"},{"title":"SignatureError.Timeout","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-timeout"},{"title":"SignatureError.Unauthorized","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-unauthorized"},{"title":"SignatureError.Unknown","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-unknown"},{"title":"SignatureError.UserCancelled","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-user-cancelled"},{"title":"SignerData.ApiKey","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-api-key"},{"title":"SignerData.Device","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-device"},{"title":"SignerData.Email","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-email"},{"title":"SignerData.ExternalWallet","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-external-wallet"},{"title":"SignerData.Passkey","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-passkey"},{"title":"SignerData.Phone","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-phone"},{"title":"SignerData.Server","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-server"},{"title":"SignerData.Unknown","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-unknown"},{"title":"SignerError.Generic","href":"/sdk-reference/wallets/kotlin/data-classes/signer-error-generic"},{"title":"SignerError.SigningFailed","href":"/sdk-reference/wallets/kotlin/data-classes/signer-error-signing-failed"},{"title":"SignerSelection.Delegated","href":"/sdk-reference/wallets/kotlin/data-classes/signer-selection-delegated"},{"title":"SignerType.Email","href":"/sdk-reference/wallets/kotlin/data-classes/signer-type-email"},{"title":"SignerType.ExternalWallet","href":"/sdk-reference/wallets/kotlin/data-classes/signer-type-external-wallet"},{"title":"SignerType.Passkey","href":"/sdk-reference/wallets/kotlin/data-classes/signer-type-passkey"},{"title":"SignerType.Phone","href":"/sdk-reference/wallets/kotlin/data-classes/signer-type-phone"},{"title":"SigningOutput.Passkey","href":"/sdk-reference/wallets/kotlin/data-classes/signing-output-passkey"},{"title":"SigningOutput.Standard","href":"/sdk-reference/wallets/kotlin/data-classes/signing-output-standard"},{"title":"SolanaTransactionParams","href":"/sdk-reference/wallets/kotlin/data-classes/solana-transaction-params"},{"title":"StellarTransactionParams","href":"/sdk-reference/wallets/kotlin/data-classes/stellar-transaction-params"},{"title":"TEEError.Generic","href":"/sdk-reference/wallets/kotlin/data-classes/tee-error-generic"},{"title":"TEEError.InvalidPayload","href":"/sdk-reference/wallets/kotlin/data-classes/tee-error-invalid-payload"},{"title":"TokenAccountBalance","href":"/sdk-reference/wallets/kotlin/data-classes/token-account-balance"},{"title":"TokenAccountType.Card","href":"/sdk-reference/wallets/kotlin/data-classes/token-account-type-card"},{"title":"TokenAccountType.Unknown","href":"/sdk-reference/wallets/kotlin/data-classes/token-account-type-unknown"},{"title":"TokenAmount","href":"/sdk-reference/wallets/kotlin/data-classes/token-amount"},{"title":"TokenBalance","href":"/sdk-reference/wallets/kotlin/data-classes/token-balance"},{"title":"Transaction","href":"/sdk-reference/wallets/kotlin/data-classes/transaction"},{"title":"TransactionErrorDetails","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-details"},{"title":"TransactionErrorDetails.Revert","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-details-revert"},{"title":"TransactionError.Forbidden","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-forbidden"},{"title":"TransactionError.InvalidTransactionState","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-invalid-transaction-state"},{"title":"TransactionError.RateLimited","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-rate-limited"},{"title":"TransactionError.ServiceNotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-service-not-initialized"},{"title":"TransactionError.SigningFailed","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-signing-failed"},{"title":"TransactionError.Timeout","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-timeout"},{"title":"TransactionError.TransactionCreationFailed","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-transaction-creation-failed"},{"title":"TransactionError.TransactionFailed","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-transaction-failed"},{"title":"TransactionError.TransactionNotFound","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-transaction-not-found"},{"title":"TransactionError.TransactionOperationFailed","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-transaction-operation-failed"},{"title":"TransactionError.Unauthorized","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-unauthorized"},{"title":"TransactionError.UserCancelled","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-user-cancelled"},{"title":"Transfer","href":"/sdk-reference/wallets/kotlin/data-classes/transfer"},{"title":"TransferError.LoadFailed","href":"/sdk-reference/wallets/kotlin/data-classes/transfer-error-load-failed"},{"title":"TransferError.ServiceNotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/transfer-error-service-not-initialized"},{"title":"TransferError.Unauthorized","href":"/sdk-reference/wallets/kotlin/data-classes/transfer-error-unauthorized"},{"title":"TransferError.Unknown","href":"/sdk-reference/wallets/kotlin/data-classes/transfer-error-unknown"},{"title":"TransferList","href":"/sdk-reference/wallets/kotlin/data-classes/transfer-list"},{"title":"UserOperation","href":"/sdk-reference/wallets/kotlin/data-classes/user-operation"},{"title":"WalletConfig","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-config"},{"title":"WalletError.ChainNotSupported","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-chain-not-supported"},{"title":"WalletError.DelegatedSignerConflict","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-delegated-signer-conflict"},{"title":"WalletError.DeviceKeyIndexUnreadable","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-device-key-index-unreadable"},{"title":"WalletError.DeviceSignerNotSupported","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-device-signer-not-supported"},{"title":"WalletError.DuplicateRecoverySigner","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-duplicate-recovery-signer"},{"title":"WalletError.Forbidden","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-forbidden"},{"title":"WalletError.InvalidInput","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-invalid-input"},{"title":"WalletError.InvalidRecoveryConfig","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-invalid-recovery-config"},{"title":"WalletError.InvalidSigner","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-invalid-signer"},{"title":"WalletError.LastRecoverySigner","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-last-recovery-signer"},{"title":"WalletError.RateLimited","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-rate-limited"},{"title":"WalletError.RecoveryAdminSignerConflict","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-recovery-admin-signer-conflict"},{"title":"WalletError.RecoveryNotSupportedOnApiVersion","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-recovery-not-supported-on-api-version"},{"title":"WalletError.RecoveryNotSupportedOnChain","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-recovery-not-supported-on-chain"},{"title":"WalletError.RecoverySignerConflict","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-recovery-signer-conflict"},{"title":"WalletError.RecoverySignerNotAllowed","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-recovery-signer-not-allowed"},{"title":"WalletError.ServiceNotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-service-not-initialized"},{"title":"WalletError.SignerLimitExceeded","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-signer-limit-exceeded"},{"title":"WalletError.SignerNotRegistered","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-signer-not-registered"},{"title":"WalletError.SignerRequired","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-signer-required"},{"title":"WalletError.SigningError","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-signing-error"},{"title":"WalletError.Unauthorized","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-unauthorized"},{"title":"WalletError.WalletNotFound","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-wallet-not-found"},{"title":"WalletError.WalletOperationFailed","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-wallet-operation-failed"},{"title":"WebViewMessage.Custom","href":"/sdk-reference/wallets/kotlin/data-classes/web-view-message-custom"}]},{"group":"Sealed Classes","pages":[{"title":"ApprovalMetadata","href":"/sdk-reference/wallets/kotlin/sealed-classes/approval-metadata"},{"title":"ApprovalSignature","href":"/sdk-reference/wallets/kotlin/sealed-classes/approval-signature"},{"title":"DelegatedSigner","href":"/sdk-reference/wallets/kotlin/sealed-classes/delegated-signer"},{"title":"DeviceSignerError","href":"/sdk-reference/wallets/kotlin/sealed-classes/device-signer-error"},{"title":"Owner","href":"/sdk-reference/wallets/kotlin/sealed-classes/owner"},{"title":"RawTransactionParams","href":"/sdk-reference/wallets/kotlin/sealed-classes/raw-transaction-params"},{"title":"SignerData","href":"/sdk-reference/wallets/kotlin/sealed-classes/signer-data"},{"title":"SignerError","href":"/sdk-reference/wallets/kotlin/sealed-classes/signer-error"},{"title":"SignerSelection","href":"/sdk-reference/wallets/kotlin/sealed-classes/signer-selection"},{"title":"SignerType","href":"/sdk-reference/wallets/kotlin/sealed-classes/signer-type"},{"title":"SigningOutput","href":"/sdk-reference/wallets/kotlin/sealed-classes/signing-output"},{"title":"TEEError","href":"/sdk-reference/wallets/kotlin/sealed-classes/tee-error"}]},{"group":"Sealed Interfaces","pages":[{"title":"ApiKeyError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/api-key-error"},{"title":"AuthError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/auth-error"},{"title":"BalanceError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/balance-error"},{"title":"Chain","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/chain"},{"title":"ChainInfo","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/chain-info"},{"title":"ConfigurationError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/configuration-error"},{"title":"CrossmintError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/crossmint-error"},{"title":"CrossmintErrorCode","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/crossmint-error-code"},{"title":"EVMChain","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/evm-chain"},{"title":"NetworkError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/network-error"},{"title":"PasskeyError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/passkey-error"},{"title":"Result","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/result"},{"title":"SignatureError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/signature-error"},{"title":"SolanaChain","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/solana-chain"},{"title":"StellarChain","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/stellar-chain"},{"title":"SupportedChain","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/supported-chain"},{"title":"TokenAccountType","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/token-account-type"},{"title":"TransactionError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/transaction-error"},{"title":"TransactionParams","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/transaction-params"},{"title":"TransferError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/transfer-error"},{"title":"WalletError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/wallet-error"}]},{"group":"Objects","pages":[{"title":"ApiKey.Companion","href":"/sdk-reference/wallets/kotlin/objects/api-key-companion"},{"title":"Chain.Companion","href":"/sdk-reference/wallets/kotlin/objects/chain-companion"},{"title":"Configuration.Companion","href":"/sdk-reference/wallets/kotlin/objects/configuration-companion"},{"title":"CrossmintAuthManager.Companion","href":"/sdk-reference/wallets/kotlin/objects/crossmint-auth-manager-companion"},{"title":"Crossmint.Companion","href":"/sdk-reference/wallets/kotlin/objects/crossmint-companion"},{"title":"CrossmintSDK.Companion","href":"/sdk-reference/wallets/kotlin/objects/crossmint-sdk-companion"},{"title":"DelegatedSignerStatus.Companion","href":"/sdk-reference/wallets/kotlin/objects/delegated-signer-status-companion"},{"title":"DelegatedSignerType.Companion","href":"/sdk-reference/wallets/kotlin/objects/delegated-signer-type-companion"},{"title":"DeviceSignerError.HardwareUnavailable","href":"/sdk-reference/wallets/kotlin/objects/device-signer-error-hardware-unavailable"},{"title":"DeviceSignerError.InvalidMessage","href":"/sdk-reference/wallets/kotlin/objects/device-signer-error-invalid-message"},{"title":"DeviceSignerError.KeyGenerationFailed","href":"/sdk-reference/wallets/kotlin/objects/device-signer-error-key-generation-failed"},{"title":"DeviceSignerError.KeyNotFound","href":"/sdk-reference/wallets/kotlin/objects/device-signer-error-key-not-found"},{"title":"DeviceSignerError.SigningFailed","href":"/sdk-reference/wallets/kotlin/objects/device-signer-error-signing-failed"},{"title":"EncryptedSharedPreferenceStorage.Companion","href":"/sdk-reference/wallets/kotlin/objects/encrypted-shared-preference-storage-companion"},{"title":"EVMChain.Apechain","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-apechain"},{"title":"EVMChain.Apex","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-apex"},{"title":"EVMChain.Arbitrum","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-arbitrum"},{"title":"EVMChain.ArbitrumNova","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-arbitrum-nova"},{"title":"EVMChain.ArbitrumSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-arbitrum-sepolia"},{"title":"EVMChain.AstarZkEVM","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-astar-zk-evm"},{"title":"EVMChain.Avalanche","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-avalanche"},{"title":"EVMChain.AvalancheFuji","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-avalanche-fuji"},{"title":"EVMChain.BarretTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-barret-testnet"},{"title":"EVMChain.Base","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-base"},{"title":"EVMChain.BaseGoerli","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-base-goerli"},{"title":"EVMChain.BaseSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-base-sepolia"},{"title":"EVMChain.Boss","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-boss"},{"title":"EVMChain.BSCTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-bsc-testnet"},{"title":"EVMChain.Chiliz","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-chiliz"},{"title":"EVMChain.ChilizSpicyTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-chiliz-spicy-testnet"},{"title":"EVMChain.Coti","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-coti"},{"title":"EVMChain.CotiTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-coti-testnet"},{"title":"EVMChain.Curtis","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-curtis"},{"title":"EVMChain.Ethereum","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-ethereum"},{"title":"EVMChain.EthereumGoerli","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-ethereum-goerli"},{"title":"EVMChain.EthereumSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-ethereum-sepolia"},{"title":"EVMChain.HypersonicTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-hypersonic-testnet"},{"title":"EVMChain.Lightlink","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-lightlink"},{"title":"EVMChain.LightlinkPegasus","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-lightlink-pegasus"},{"title":"EVMChain.Mode","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-mode"},{"title":"EVMChain.ModeSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-mode-sepolia"},{"title":"EVMChain.Optimism","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-optimism"},{"title":"EVMChain.OptimismGoerli","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-optimism-goerli"},{"title":"EVMChain.OptimismSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-optimism-sepolia"},{"title":"EVMChain.Polygon","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-polygon"},{"title":"EVMChain.PolygonAmoy","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-polygon-amoy"},{"title":"EVMChain.PolygonMumbai","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-polygon-mumbai"},{"title":"EVMChain.Rari","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-rari"},{"title":"EVMChain.RariTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-rari-testnet"},{"title":"EVMChain.Scroll","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-scroll"},{"title":"EVMChain.ScrollSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-scroll-sepolia"},{"title":"EVMChain.SeiAtlantic2Testnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-sei-atlantic2testnet"},{"title":"EVMChain.SeiPacific1","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-sei-pacific1"},{"title":"EVMChain.Shape","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-shape"},{"title":"EVMChain.ShapeSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-shape-sepolia"},{"title":"EVMChain.SkaleNebula","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-skale-nebula"},{"title":"EVMChain.SkaleNebulaTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-skale-nebula-testnet"},{"title":"EVMChain.Soneium","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-soneium"},{"title":"EVMChain.SoneiumMinatoTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-soneium-minato-testnet"},{"title":"EVMChain.Space","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-space"},{"title":"EVMChain.SpaceTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-space-testnet"},{"title":"EVMChain.Story","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-story"},{"title":"EVMChain.StoryTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-story-testnet"},{"title":"EVMChain.VerifyTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-verify-testnet"},{"title":"EVMChain.Viction","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-viction"},{"title":"EVMChain.VictionTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-viction-testnet"},{"title":"EVMChain.Xai","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-xai"},{"title":"EVMChain.XaiSepoliaTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-xai-sepolia-testnet"},{"title":"EVMChain.ZenchainTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-zenchain-testnet"},{"title":"EVMChain.Zkatana","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-zkatana"},{"title":"EVMChain.Zkyoto","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-zkyoto"},{"title":"EVMChain.Zora","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-zora"},{"title":"EVMChain.ZoraGoerli","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-zora-goerli"},{"title":"EVMChain.ZoraSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-zora-sepolia"},{"title":"InsecurePersistentSessionStore.Companion","href":"/sdk-reference/wallets/kotlin/objects/insecure-persistent-session-store-companion"},{"title":"KeystoreKeyStorage.Companion","href":"/sdk-reference/wallets/kotlin/objects/keystore-key-storage-companion"},{"title":"SignerError.Cancelled","href":"/sdk-reference/wallets/kotlin/objects/signer-error-cancelled"},{"title":"SignerError.InvalidEmail","href":"/sdk-reference/wallets/kotlin/objects/signer-error-invalid-email"},{"title":"SignerError.NotInitialized","href":"/sdk-reference/wallets/kotlin/objects/signer-error-not-initialized"},{"title":"SignerError.NotStarted","href":"/sdk-reference/wallets/kotlin/objects/signer-error-not-started"},{"title":"SignerError.TeeNotStarted","href":"/sdk-reference/wallets/kotlin/objects/signer-error-tee-not-started"},{"title":"SignerSelection.Admin","href":"/sdk-reference/wallets/kotlin/objects/signer-selection-admin"},{"title":"SignerType.ApiKey","href":"/sdk-reference/wallets/kotlin/objects/signer-type-api-key"},{"title":"SolanaChain.Solana","href":"/sdk-reference/wallets/kotlin/objects/solana-chain-solana"},{"title":"StellarChain.Stellar","href":"/sdk-reference/wallets/kotlin/objects/stellar-chain-stellar"},{"title":"TEEError.EncryptionUnavailable","href":"/sdk-reference/wallets/kotlin/objects/tee-error-encryption-unavailable"},{"title":"TEEError.ErrorLoadingService","href":"/sdk-reference/wallets/kotlin/objects/tee-error-error-loading-service"},{"title":"TEEError.HandshakeFailed","href":"/sdk-reference/wallets/kotlin/objects/tee-error-handshake-failed"},{"title":"TEEError.HandshakeRequired","href":"/sdk-reference/wallets/kotlin/objects/tee-error-handshake-required"},{"title":"TEEError.InvalidSignature","href":"/sdk-reference/wallets/kotlin/objects/tee-error-invalid-signature"},{"title":"TEEError.JWTRequired","href":"/sdk-reference/wallets/kotlin/objects/tee-error-jwt-required"},{"title":"TEEError.SignerStatusUnavailable","href":"/sdk-reference/wallets/kotlin/objects/tee-error-signer-status-unavailable"},{"title":"TEEError.Timeout","href":"/sdk-reference/wallets/kotlin/objects/tee-error-timeout"},{"title":"TEEError.UserCancelled","href":"/sdk-reference/wallets/kotlin/objects/tee-error-user-cancelled"},{"title":"TinkSecureStorage.Companion","href":"/sdk-reference/wallets/kotlin/objects/tink-secure-storage-companion"},{"title":"TinkWithFallbackSessionStore.Companion","href":"/sdk-reference/wallets/kotlin/objects/tink-with-fallback-session-store-companion"},{"title":"TokenAccountType.Wallet","href":"/sdk-reference/wallets/kotlin/objects/token-account-type-wallet"}]},{"group":"Composables","pages":[{"title":"CrossmintNonCustodialSignerProvider","href":"/sdk-reference/wallets/kotlin/composables/crossmint-non-custodial-signer-provider"},{"title":"CrossmintTEEWebView","href":"/sdk-reference/wallets/kotlin/composables/crossmint-tee-web-view"},{"title":"CrossmintTEEWebViewContainer","href":"/sdk-reference/wallets/kotlin/composables/crossmint-tee-web-view-container"},{"title":"PlatformSpecificProvider","href":"/sdk-reference/wallets/kotlin/composables/platform-specific-provider"}]},{"group":"Functions","pages":[{"title":"configure","href":"/sdk-reference/wallets/kotlin/functions/configure"},{"title":"createAndroidTEE","href":"/sdk-reference/wallets/kotlin/functions/create-android-tee"},{"title":"createAuthManager","href":"/sdk-reference/wallets/kotlin/functions/create-auth-manager"},{"title":"createCrossmintWallets","href":"/sdk-reference/wallets/kotlin/functions/create-crossmint-wallets"},{"title":"createDefaultAuthManager","href":"/sdk-reference/wallets/kotlin/functions/create-default-auth-manager"},{"title":"createDefaultSessionStore","href":"/sdk-reference/wallets/kotlin/functions/create-default-session-store"},{"title":"createEVMWallet","href":"/sdk-reference/wallets/kotlin/functions/create-evm-wallet"},{"title":"createPasskeyCredential","href":"/sdk-reference/wallets/kotlin/functions/create-passkey-credential"},{"title":"createSolanaWallet","href":"/sdk-reference/wallets/kotlin/functions/create-solana-wallet"},{"title":"createStellarWallet","href":"/sdk-reference/wallets/kotlin/functions/create-stellar-wallet"},{"title":"createWallet","href":"/sdk-reference/wallets/kotlin/functions/create-wallet"},{"title":"CrossmintTEEWebView","href":"/sdk-reference/wallets/kotlin/functions/crossmint-tee-web-view"},{"title":"flatMap","href":"/sdk-reference/wallets/kotlin/functions/flat-map"},{"title":"fold","href":"/sdk-reference/wallets/kotlin/functions/fold"},{"title":"getOrNull","href":"/sdk-reference/wallets/kotlin/functions/get-or-null"},{"title":"getOrThrow","href":"/sdk-reference/wallets/kotlin/functions/get-or-throw"},{"title":"isMainThread","href":"/sdk-reference/wallets/kotlin/functions/is-main-thread"},{"title":"makePasskeySignerCallback","href":"/sdk-reference/wallets/kotlin/functions/make-passkey-signer-callback"},{"title":"map","href":"/sdk-reference/wallets/kotlin/functions/map"},{"title":"mapError","href":"/sdk-reference/wallets/kotlin/functions/map-error"},{"title":"normalizeEmail","href":"/sdk-reference/wallets/kotlin/functions/normalize-email"},{"title":"runCatching","href":"/sdk-reference/wallets/kotlin/functions/run-catching"},{"title":"useSigner","href":"/sdk-reference/wallets/kotlin/functions/use-signer"},{"title":"waitForMessage","href":"/sdk-reference/wallets/kotlin/functions/wait-for-message"}]},{"group":"Properties","pages":[{"title":"LocalCrossmintSDK","href":"/sdk-reference/wallets/kotlin/properties/local-crossmint-sdk"}]}]},{"group":"Crossmint Auth","pages":[{"group":"Typescript SDK","icon":"/images/icons/ts-logo-128.png","pages":[{"title":"Getting Started","href":"/sdk-reference/auth/typescript/overview"},{"title":"Reference","href":"/sdk-reference/auth/typescript/reference"},{"group":"Classes","pages":[{"title":"CrossmintAuth","href":"/sdk-reference/auth/typescript/classes/CrossmintAuth"},{"title":"JwksUnavailableError","href":"/sdk-reference/auth/typescript/classes/JwksUnavailableError"}]},{"group":"Type Aliases","pages":[{"title":"CrossmintAuthServerOptions","href":"/sdk-reference/auth/typescript/type-aliases/CrossmintAuthServerOptions"},{"title":"GenericRequest","href":"/sdk-reference/auth/typescript/type-aliases/GenericRequest"},{"title":"GenericResponse","href":"/sdk-reference/auth/typescript/type-aliases/GenericResponse"},{"title":"JWKSInput","href":"/sdk-reference/auth/typescript/type-aliases/JWKSInput"},{"title":"VerifyCrossmintJwtOptions","href":"/sdk-reference/auth/typescript/type-aliases/VerifyCrossmintJwtOptions"}]},{"group":"Variables","pages":[{"title":"CROSSMINT_API_VERSION","href":"/sdk-reference/auth/typescript/variables/CROSSMINT_API_VERSION"},{"title":"SDK_NAME","href":"/sdk-reference/auth/typescript/variables/SDK_NAME"},{"title":"SDK_VERSION","href":"/sdk-reference/auth/typescript/variables/SDK_VERSION"}]},{"group":"Functions","pages":[{"title":"assertJwtAudience","href":"/sdk-reference/auth/typescript/functions/assertJwtAudience"},{"title":"createCrossmint","href":"/sdk-reference/auth/typescript/functions/createCrossmint"},{"title":"verifyCrossmintJwt","href":"/sdk-reference/auth/typescript/functions/verifyCrossmintJwt"}]}]},{"group":"React SDK","icon":"/images/icons/react.svg","pages":[{"title":"Get Started","href":"/sdk-reference/auth/react/get-started"},{"title":"Providers","href":"/sdk-reference/auth/react/providers"},{"title":"Hooks","href":"/sdk-reference/auth/react/hooks"},{"title":"Components","href":"/sdk-reference/auth/react/components"}]},{"group":"React Native SDK","icon":"/images/icons/react-native.svg","pages":[{"title":"Get Started","href":"/sdk-reference/auth/react-native/get-started"},{"title":"Providers","href":"/sdk-reference/auth/react-native/providers"},{"title":"Hooks","href":"/sdk-reference/auth/react-native/hooks"}]}]}]}]},{"dropdown":"Wallets V0","icon":"tag","groups":[{"group":"Introduction","pages":[{"title":"Overview","href":"/wallets/v0/overview"},{"title":"Why Smart Contract Wallets","href":"/wallets/v0/why-smart-wallets"}]},{"group":"Quickstarts ⚡","pages":[{"title":"React","href":"/wallets/v0/quickstarts/react"},{"title":"Node.js","href":"/wallets/v0/quickstarts/nodejs"},{"title":"REST API","href":"/wallets/v0/quickstarts/restapi"},{"title":"React Native","href":"/wallets/v0/quickstarts/react-native"},{"title":"Swift","href":"/wallets/v0/quickstarts/swift"},{"title":"Kotlin","href":"/wallets/v0/quickstarts/kotlin"}]},{"group":"Concepts","pages":[{"title":"Architecture","href":"/wallets/v0/architecture"},{"group":"Signers and Custody","pages":[{"title":"Custody Modalities","href":"/wallets/v0/concepts/custody-modalities"},{"title":"Wallet Signers","href":"/wallets/v0/concepts/wallet-signers"},{"title":"Signer Decision Tree","href":"/wallets/v0/concepts/decision-tree"},{"title":"Common Signer Configurations","href":"/wallets/v0/concepts/common-signer-configurations"}]}]},{"group":"Guides","pages":[{"group":"Wallet Actions","pages":[{"title":"Create Wallet","href":"/wallets/v0/guides/create-wallet"},{"title":"Transfer Tokens","href":"/wallets/v0/guides/transfer-tokens"},{"title":"Check Balances","href":"/wallets/v0/guides/check-balances"},{"title":"Get Staging Tokens (USDXM)","href":"/wallets/v0/guides/get-staging-tokens"},{"title":"List Wallet Transfers","href":"/wallets/v0/guides/list-transfers"},{"group":"Send Transaction","pages":[{"title":"EVM","href":"/wallets/v0/guides/send-transaction-evm"},{"title":"Solana","href":"/wallets/v0/guides/send-transaction-solana"},{"title":"Stellar","href":"/wallets/v0/guides/send-transaction-stellar"}]},{"group":"Sign Message","pages":[{"title":"EVM","href":"/wallets/v0/guides/sign-message-evm"},{"title":"Solana","href":"/wallets/v0/guides/sign-message-solana"},{"title":"Stellar","href":"/wallets/v0/guides/sign-message-stellar"}]}]},{"group":"Wallet Extensions","pages":[{"group":"Swapping \u0026 Bridging","pages":[{"title":"Swapping \u0026 Bridging Overview","sidebarTitle":"Overview","href":"/wallets/guides/wallet-extensions/swapping-and-bridging"},{"title":"Jupiter","href":"/wallets/v0/guides/wallet-extensions/swap-jupiter"},{"title":"LI.FI","href":"/wallets/v0/guides/wallet-extensions/bridge-lifi"}]},{"title":"Yield Generation","href":"/wallets/v0/guides/wallet-extensions/generate-yield"},{"title":"Rain Card Issuance","sidebarTitle":"Rain","href":"/wallets/guides/wallet-extensions/credit-cards"}]},{"group":"Signers","pages":[{"title":"Registering a Signer","href":"/wallets/v0/guides/signers/registering-a-signer"},{"title":"Email OTP Signer","href":"/wallets/v0/guides/signers/email-otp"},{"title":"SMS OTP Signer","href":"/wallets/v0/guides/signers/sms-otp"},{"title":"Passkey Signer","href":"/wallets/v0/guides/signers/passkey"},{"title":"External Wallet Signer","href":"/wallets/v0/guides/signers/external-wallet"},{"title":"Device Key Signer","href":"/wallets/v0/guides/signers/device-key"},{"title":"Server Signer","href":"/wallets/v0/guides/signers/server-key"},{"title":"Cloud KMS Signers","href":"/wallets/guides/signers/cloud-kms"},{"title":"API Key Signer (Deprecated)","href":"/wallets/v0/guides/signers/api-key"},{"title":"Social Recovery Signer","href":"/wallets/v0/guides/signers/social-recovery"},{"title":"Recover a Wallet","href":"/wallets/guides/recovery/wallet-recovery"}]},{"group":"Advanced","pages":[{"title":"Bring Your Own Auth","href":"/wallets/v0/guides/bring-your-own-auth"},{"title":"Export Private Key","href":"/wallets/v0/guides/export-private-key"},{"title":"Cover Transaction Fees for Your Users","href":"/wallets/guides/gas-sponsorship"},{"title":"Wallet Webhooks","href":"/wallets/guides/webhooks"},{"title":"Error Handling","href":"/wallets/v0/guides/error-handling"}]}]},{"group":"API Reference","pages":[{"group":"REST","icon":"brackets-curly","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets","title":"Create Wallet","href":"/api-reference/wallets/create-wallet"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}","title":"Get Wallet By Locator","href":"/api-reference/wallets/get-wallet-by-locator"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/balances","title":"Get Wallet Balance","href":"/api-reference/wallets/get-wallet-balance"},{"openapi":"api-reference/_open-api/Wallets.json POST /v1-alpha2/wallets/{walletLocator}/balances","title":"Fund Wallet","href":"/api-reference/wallets/fund-wallet"},{"openapi":"api-reference/_open-api/Wallets.json GET /2022-06-09/wallets/{locator}/nfts","title":"Get NFTs from Wallet","href":"/api-reference/wallets/get-nfts-from-wallet"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/transactions","title":"Create Transaction","href":"/api-reference/wallets/create-transaction"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/transactions/{transactionId}","title":"Get Transaction","href":"/api-reference/wallets/get-transaction"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/transactions","title":"Get Wallet Transactions","href":"/api-reference/wallets/get-transactions"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/transactions/{transactionId}/approvals","title":"Approve Transaction","href":"/api-reference/wallets/approve-transaction"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/signatures","title":"Create Signature","href":"/api-reference/wallets/create-signature"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/signatures","title":"Get All Signatures","href":"/api-reference/wallets/get-signatures"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/signatures/{signatureId}","title":"Get Signature","href":"/api-reference/wallets/get-signature"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/signatures/{signatureId}/approvals","title":"Approve Signature","href":"/api-reference/wallets/approve-signature"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/signers","title":"Create Delegated Signer","href":"/api-reference/wallets/register-delegated-key"},{"openapi":"api-reference/_open-api/Wallets.json DELETE /2025-06-09/wallets/{walletLocator}/signers/{signer}","title":"Remove Delegated Signer","href":"/api-reference/wallets/remove-delegated-key"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/signers/{signer}","title":"Get Delegated Signer","description":"Retrieve details about a specific delegated signer by its locator.\n\n**API scope required**: `wallets.read`","href":"/api-reference/wallets/get-signer"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/recovery-methods","title":"Add Recovery Method","href":"/api-reference/wallets/add-recovery-method"},{"openapi":"api-reference/_open-api/Wallets.json DELETE /2025-06-09/wallets/{walletLocator}/recovery-methods/{signer}","title":"Remove Recovery Method","description":"Remove one recovery method from a wallet.","href":"/api-reference/wallets/remove-recovery-method"},{"openapi":"api-reference/_open-api/Wallets.json POST /2025-06-09/wallets/{walletLocator}/tokens/{tokenLocator}/transfers","title":"Transfer Token","href":"/api-reference/wallets/transfer-token"},{"openapi":"api-reference/_open-api/Wallets.json GET /2025-06-09/wallets/{walletLocator}/tokens/{tokenLocator}/transfers/{transactionId}","title":"Get Transfer Transaction","href":"/api-reference/wallets/get-transfer-token"},{"title":"List Wallet Transfers","openapi":"api-reference/_open-api/Wallets.json GET /unstable/wallets/{walletLocator}/transfers","href":"/api-reference/wallets/list-transfers"}]},{"group":"Typescript SDK","icon":"/images/icons/ts-logo-128.png","pages":[{"title":"Getting Started","href":"/sdk-reference/wallets/v0/typescript/overview"},{"title":"Reference","href":"/sdk-reference/wallets/v0/typescript/reference"},{"group":"Classes","pages":[{"title":"CrossmintWallets","href":"/sdk-reference/wallets/v0/typescript/classes/CrossmintWallets"},{"title":"Wallet","href":"/sdk-reference/wallets/v0/typescript/classes/Wallet"},{"title":"EVMWallet","href":"/sdk-reference/wallets/v0/typescript/classes/EVMWallet"},{"title":"SolanaWallet","href":"/sdk-reference/wallets/v0/typescript/classes/SolanaWallet"},{"title":"StellarWallet","href":"/sdk-reference/wallets/v0/typescript/classes/StellarWallet"},{"title":"WalletsApiClient","href":"/sdk-reference/wallets/v0/typescript/classes/WalletsApiClient"}]},{"group":"Interfaces","pages":[{"title":"ExportableSigner","href":"/sdk-reference/wallets/v0/typescript/interfaces/ExportableSigner"},{"title":"Signer","href":"/sdk-reference/wallets/v0/typescript/interfaces/Signer"}]},{"group":"Type Aliases","pages":[{"title":"Activity","href":"/sdk-reference/wallets/v0/typescript/type-aliases/Activity"},{"title":"Balances","href":"/sdk-reference/wallets/v0/typescript/type-aliases/Balances"},{"title":"Chain","href":"/sdk-reference/wallets/v0/typescript/type-aliases/Chain"},{"title":"DelegatedSigner","href":"/sdk-reference/wallets/v0/typescript/type-aliases/DelegatedSigner"},{"title":"EVMChain","href":"/sdk-reference/wallets/v0/typescript/type-aliases/EVMChain"},{"title":"EVMTransactionInput","href":"/sdk-reference/wallets/v0/typescript/type-aliases/EVMTransactionInput"},{"title":"EmailSignerConfig","href":"/sdk-reference/wallets/v0/typescript/type-aliases/EmailSignerConfig"},{"title":"EvmExternalWalletSignerConfig","href":"/sdk-reference/wallets/v0/typescript/type-aliases/EvmExternalWalletSignerConfig"},{"title":"ExportSignerTEEConnection","href":"/sdk-reference/wallets/v0/typescript/type-aliases/ExportSignerTEEConnection"},{"title":"ExternalWalletSignerConfigForChain","href":"/sdk-reference/wallets/v0/typescript/type-aliases/ExternalWalletSignerConfigForChain"},{"title":"PhoneSignerConfig","href":"/sdk-reference/wallets/v0/typescript/type-aliases/PhoneSignerConfig"},{"title":"Signature","href":"/sdk-reference/wallets/v0/typescript/type-aliases/Signature"},{"title":"SignerConfigForChain","href":"/sdk-reference/wallets/v0/typescript/type-aliases/SignerConfigForChain"},{"title":"SolanaChain","href":"/sdk-reference/wallets/v0/typescript/type-aliases/SolanaChain"},{"title":"SolanaExternalWalletSignerConfig","href":"/sdk-reference/wallets/v0/typescript/type-aliases/SolanaExternalWalletSignerConfig"},{"title":"SolanaTransactionInput","href":"/sdk-reference/wallets/v0/typescript/type-aliases/SolanaTransactionInput"},{"title":"StellarChain","href":"/sdk-reference/wallets/v0/typescript/type-aliases/StellarChain"},{"title":"StellarExternalWalletSignerConfig","href":"/sdk-reference/wallets/v0/typescript/type-aliases/StellarExternalWalletSignerConfig"},{"title":"Transaction","href":"/sdk-reference/wallets/v0/typescript/type-aliases/Transaction"},{"title":"WalletArgsFor","href":"/sdk-reference/wallets/v0/typescript/type-aliases/WalletArgsFor"},{"title":"WalletPlugin","href":"/sdk-reference/wallets/v0/typescript/type-aliases/WalletPlugin"}]},{"group":"Functions","pages":[{"title":"createCrossmint","href":"/sdk-reference/wallets/v0/typescript/functions/createCrossmint"},{"title":"isExportableSigner","href":"/sdk-reference/wallets/v0/typescript/functions/isExportableSigner"}]}]},{"group":"React SDK","icon":"/images/icons/react.svg","pages":[{"title":"Get Started","href":"/sdk-reference/wallets/v0/react/get-started"},{"title":"Providers","href":"/sdk-reference/wallets/v0/react/providers"},{"title":"Hooks","href":"/sdk-reference/wallets/v0/react/hooks"},{"title":"Components","href":"/sdk-reference/wallets/react/components"}]},{"group":"React Native SDK","icon":"/images/icons/react-native.svg","pages":[{"title":"Get Started","href":"/sdk-reference/wallets/v0/react-native/get-started"},{"title":"Providers","href":"/sdk-reference/wallets/v0/react-native/providers"},{"title":"Hooks","href":"/sdk-reference/wallets/v0/react-native/hooks"},{"title":"Components","href":"/sdk-reference/wallets/react-native/components"}]},{"group":"Swift SDK","icon":"/images/icons/swift.svg","pages":[{"group":"Classes","pages":[{"title":"ABI","href":"/sdk-reference/wallets/swift/classes/abi"},{"title":"ApiKeySigner","href":"/sdk-reference/wallets/swift/classes/apikeysigner"},{"title":"CrossmintAuthManager","href":"/sdk-reference/wallets/swift/classes/crossmintauthmanager"},{"title":"CrossmintSDK","href":"/sdk-reference/wallets/swift/classes/crossmintsdk"},{"title":"DefaultAuthClient","href":"/sdk-reference/wallets/swift/classes/defaultauthclient"},{"title":"DefaultAuthService","href":"/sdk-reference/wallets/swift/classes/defaultauthservice"},{"title":"DefaultCrossmintWallets","href":"/sdk-reference/wallets/swift/classes/defaultcrossmintwallets"},{"title":"DefaultSmartWalletService","href":"/sdk-reference/wallets/swift/classes/defaultsmartwalletservice"},{"title":"EVMEmailSigner","href":"/sdk-reference/wallets/swift/classes/evmemailsigner"},{"title":"EVMKeyPairSigner","href":"/sdk-reference/wallets/swift/classes/evmkeypairsigner"},{"title":"EVMWallet","href":"/sdk-reference/wallets/swift/classes/evmwallet"},{"title":"PasskeySigner","href":"/sdk-reference/wallets/swift/classes/passkeysigner"},{"title":"PhoneSigner","href":"/sdk-reference/wallets/swift/classes/phonesigner"},{"title":"SolanaEmailSigner","href":"/sdk-reference/wallets/swift/classes/solanaemailsigner"},{"title":"SolanaWallet","href":"/sdk-reference/wallets/swift/classes/solanawallet"},{"title":"StellarEmailSigner","href":"/sdk-reference/wallets/swift/classes/stellaremailsigner"},{"title":"StellarWallet","href":"/sdk-reference/wallets/swift/classes/stellarwallet"},{"title":"Wallet","href":"/sdk-reference/wallets/swift/classes/wallet"}]},{"group":"Protocols","pages":[{"title":"AdminSignerApiModel","href":"/sdk-reference/wallets/swift/protocols/adminsignerapimodel"},{"title":"AdminSignerData","href":"/sdk-reference/wallets/swift/protocols/adminsignerdata"},{"title":"AnyChain","href":"/sdk-reference/wallets/swift/protocols/anychain"},{"title":"ApprovalSigner","href":"/sdk-reference/wallets/swift/protocols/approvalsigner"},{"title":"AuthClient","href":"/sdk-reference/wallets/swift/protocols/authclient"},{"title":"AuthManager","href":"/sdk-reference/wallets/swift/protocols/authmanager"},{"title":"AuthService","href":"/sdk-reference/wallets/swift/protocols/authservice"},{"title":"BalanceService","href":"/sdk-reference/wallets/swift/protocols/balanceservice"},{"title":"BlockchainAddress","href":"/sdk-reference/wallets/swift/protocols/blockchainaddress"},{"title":"ChainWithSigners","href":"/sdk-reference/wallets/swift/protocols/chainwithsigners"},{"title":"CrossmintWallets","href":"/sdk-reference/wallets/swift/protocols/crossmintwallets"},{"title":"EVMCompatibleSigner","href":"/sdk-reference/wallets/swift/protocols/evmcompatiblesigner"},{"title":"NFTService","href":"/sdk-reference/wallets/swift/protocols/nftservice"},{"title":"SignatureApiModel","href":"/sdk-reference/wallets/swift/protocols/signatureapimodel"},{"title":"SignatureService","href":"/sdk-reference/wallets/swift/protocols/signatureservice"},{"title":"Signer","href":"/sdk-reference/wallets/swift/protocols/signer"},{"title":"SignerProvider","href":"/sdk-reference/wallets/swift/protocols/signerprovider"},{"title":"SmartWalletCreationQueryParams","href":"/sdk-reference/wallets/swift/protocols/smartwalletcreationqueryparams"},{"title":"SmartWalletService","href":"/sdk-reference/wallets/swift/protocols/smartwalletservice"},{"title":"SolanaCompatibleSigner","href":"/sdk-reference/wallets/swift/protocols/solanacompatiblesigner"},{"title":"SpecificChain","href":"/sdk-reference/wallets/swift/protocols/specificchain"},{"title":"StellarCompatibleSigner","href":"/sdk-reference/wallets/swift/protocols/stellarcompatiblesigner"},{"title":"TransactionApiModel","href":"/sdk-reference/wallets/swift/protocols/transactionapimodel"},{"title":"TransactionRequest","href":"/sdk-reference/wallets/swift/protocols/transactionrequest"},{"title":"TransactionService","href":"/sdk-reference/wallets/swift/protocols/transactionservice"},{"title":"TransferService","href":"/sdk-reference/wallets/swift/protocols/transferservice"},{"title":"WalletOnChain","href":"/sdk-reference/wallets/swift/protocols/walletonchain"},{"title":"WalletService","href":"/sdk-reference/wallets/swift/protocols/walletservice"},{"title":"WalletTypeTransactionMapping","href":"/sdk-reference/wallets/swift/protocols/wallettypetransactionmapping"}]},{"group":"Enums","pages":[{"title":"Address","href":"/sdk-reference/wallets/swift/enums/address"},{"title":"AdminSignerDataType","href":"/sdk-reference/wallets/swift/enums/adminsignerdatatype"},{"title":"AuthenticationStatus","href":"/sdk-reference/wallets/swift/enums/authenticationstatus"},{"title":"AuthError","href":"/sdk-reference/wallets/swift/enums/autherror"},{"title":"AuthManagerError","href":"/sdk-reference/wallets/swift/enums/authmanagererror"},{"title":"BlockchainAddressError","href":"/sdk-reference/wallets/swift/enums/blockchainaddresserror"},{"title":"BlockchainExplorerLinkType","href":"/sdk-reference/wallets/swift/enums/blockchainexplorerlinktype"},{"title":"Chain","href":"/sdk-reference/wallets/swift/enums/chain"},{"title":"ChainAndAddress","href":"/sdk-reference/wallets/swift/enums/chainandaddress"},{"title":"ChainType","href":"/sdk-reference/wallets/swift/enums/chaintype"},{"title":"CryptoCurrency","href":"/sdk-reference/wallets/swift/enums/cryptocurrency"},{"title":"CryptoPaymentFailureCode","href":"/sdk-reference/wallets/swift/enums/cryptopaymentfailurecode"},{"title":"EIP712","href":"/sdk-reference/wallets/swift/enums/eip712"},{"title":"EVMChain","href":"/sdk-reference/wallets/swift/enums/evmchain"},{"title":"EVMSigners","href":"/sdk-reference/wallets/swift/enums/evmsigners"},{"title":"EVMSmartWalletMapping","href":"/sdk-reference/wallets/swift/enums/evmsmartwalletmapping"},{"title":"FiatCurrency","href":"/sdk-reference/wallets/swift/enums/fiatcurrency"},{"title":"LinkedUserError","href":"/sdk-reference/wallets/swift/enums/linkedusererror"},{"title":"NonCustodialSignerError","href":"/sdk-reference/wallets/swift/enums/noncustodialsignererror"},{"title":"OTPAuthenticationStatus","href":"/sdk-reference/wallets/swift/enums/otpauthenticationstatus"},{"title":"OTPDeliveryChannel","href":"/sdk-reference/wallets/swift/enums/otpdeliverychannel"},{"title":"Owner","href":"/sdk-reference/wallets/swift/enums/owner"},{"title":"SignatureError","href":"/sdk-reference/wallets/swift/enums/signatureerror"},{"title":"SignerConfig","href":"/sdk-reference/wallets/swift/enums/signerconfig"},{"title":"SignerError","href":"/sdk-reference/wallets/swift/enums/signererror"},{"title":"SignerLocator","href":"/sdk-reference/wallets/swift/enums/signerlocator"},{"title":"Signers","href":"/sdk-reference/wallets/swift/enums/signers"},{"title":"SignerStatus","href":"/sdk-reference/wallets/swift/enums/signerstatus"},{"title":"SignerType","href":"/sdk-reference/wallets/swift/enums/signertype"},{"title":"SolanaChain","href":"/sdk-reference/wallets/swift/enums/solanachain"},{"title":"SolanaSigners","href":"/sdk-reference/wallets/swift/enums/solanasigners"},{"title":"SolanaSmartWalletMapping","href":"/sdk-reference/wallets/swift/enums/solanasmartwalletmapping"},{"title":"SolanaSupportedToken","href":"/sdk-reference/wallets/swift/enums/solanasupportedtoken"},{"title":"StellarChain","href":"/sdk-reference/wallets/swift/enums/stellarchain"},{"title":"StellarSigners","href":"/sdk-reference/wallets/swift/enums/stellarsigners"},{"title":"StellarSmartWalletMapping","href":"/sdk-reference/wallets/swift/enums/stellarsmartwalletmapping"},{"title":"StellarSupportedToken","href":"/sdk-reference/wallets/swift/enums/stellarsupportedtoken"},{"title":"TokenAccountType","href":"/sdk-reference/wallets/swift/enums/tokenaccounttype"},{"title":"TransactionError","href":"/sdk-reference/wallets/swift/enums/transactionerror"},{"title":"TransactionStatus","href":"/sdk-reference/wallets/swift/enums/transactionstatus"},{"title":"TransactionStatusApiModel","href":"/sdk-reference/wallets/swift/enums/transactionstatusapimodel"},{"title":"TransferTokenLocator","href":"/sdk-reference/wallets/swift/enums/transfertokenlocator"},{"title":"TransferTokenRecipient","href":"/sdk-reference/wallets/swift/enums/transfertokenrecipient"},{"title":"TransferType","href":"/sdk-reference/wallets/swift/enums/transfertype"},{"title":"UnknownChain","href":"/sdk-reference/wallets/swift/enums/unknownchain"},{"title":"WalletError","href":"/sdk-reference/wallets/swift/enums/walleterror"},{"title":"WalletLocator","href":"/sdk-reference/wallets/swift/enums/walletlocator"},{"title":"WalletType","href":"/sdk-reference/wallets/swift/enums/wallettype"}]},{"group":"Structs","pages":[{"title":"ABIAddress","href":"/sdk-reference/wallets/swift/structs/abiaddress"},{"title":"ABIUInt64","href":"/sdk-reference/wallets/swift/structs/abiuint64"},{"title":"AddDelegatedSignerResponse","href":"/sdk-reference/wallets/swift/structs/adddelegatedsignerresponse"},{"title":"ApiKeySignerApiModel","href":"/sdk-reference/wallets/swift/structs/apikeysignerapimodel"},{"title":"ApiKeySignerData","href":"/sdk-reference/wallets/swift/structs/apikeysignerdata"},{"title":"ApprovalEntry","href":"/sdk-reference/wallets/swift/structs/approvalentry"},{"title":"Approvals","href":"/sdk-reference/wallets/swift/structs/approvals"},{"title":"AuthSession","href":"/sdk-reference/wallets/swift/structs/authsession"},{"title":"AuthUser","href":"/sdk-reference/wallets/swift/structs/authuser"},{"title":"Balance","href":"/sdk-reference/wallets/swift/structs/balance"},{"title":"Balances","href":"/sdk-reference/wallets/swift/structs/balances"},{"title":"BlockchainAddressLink","href":"/sdk-reference/wallets/swift/structs/blockchainaddresslink"},{"title":"BlockchainTokenLink","href":"/sdk-reference/wallets/swift/structs/blockchaintokenlink"},{"title":"BlockchainTransactionLink","href":"/sdk-reference/wallets/swift/structs/blockchaintransactionlink"},{"title":"ChainBalances","href":"/sdk-reference/wallets/swift/structs/chainbalances"},{"title":"ChainRegistrationEntry","href":"/sdk-reference/wallets/swift/structs/chainregistrationentry"},{"title":"ChainRegistrationOnChain","href":"/sdk-reference/wallets/swift/structs/chainregistrationonchain"},{"title":"CreateEVMTransactionRequest","href":"/sdk-reference/wallets/swift/structs/createevmtransactionrequest"},{"title":"CreateSignatureRequest","href":"/sdk-reference/wallets/swift/structs/createsignaturerequest"},{"title":"CreateSolanaTransactionRequest","href":"/sdk-reference/wallets/swift/structs/createsolanatransactionrequest"},{"title":"CreateStellarTransactionRequest","href":"/sdk-reference/wallets/swift/structs/createstellartransactionrequest"},{"title":"CreateTransactionRequest","href":"/sdk-reference/wallets/swift/structs/createtransactionrequest"},{"title":"CreateWalletParams","href":"/sdk-reference/wallets/swift/structs/createwalletparams"},{"title":"DelegatedSignerEntry","href":"/sdk-reference/wallets/swift/structs/delegatedsignerentry"},{"title":"DevicePublicKey","href":"/sdk-reference/wallets/swift/structs/devicepublickey"},{"title":"EmailSignerApiModel","href":"/sdk-reference/wallets/swift/structs/emailsignerapimodel"},{"title":"EmailSignerData","href":"/sdk-reference/wallets/swift/structs/emailsignerdata"},{"title":"ERC20Encoder","href":"/sdk-reference/wallets/swift/structs/erc20encoder"},{"title":"EVMAddress","href":"/sdk-reference/wallets/swift/structs/evmaddress"},{"title":"EvmPasskeySignerApiModel","href":"/sdk-reference/wallets/swift/structs/evmpasskeysignerapimodel"},{"title":"EVMTransactionApiModel","href":"/sdk-reference/wallets/swift/structs/evmtransactionapimodel"},{"title":"ExternalWalletSigner","href":"/sdk-reference/wallets/swift/structs/externalwalletsigner"},{"title":"ExternalWalletSignerApiModel","href":"/sdk-reference/wallets/swift/structs/externalwalletsignerapimodel"},{"title":"ExternalWalletSignerData","href":"/sdk-reference/wallets/swift/structs/externalwalletsignerdata"},{"title":"FetchTransactionRequest","href":"/sdk-reference/wallets/swift/structs/fetchtransactionrequest"},{"title":"FundWalletApiRequest","href":"/sdk-reference/wallets/swift/structs/fundwalletapirequest"},{"title":"FundWalletRequest","href":"/sdk-reference/wallets/swift/structs/fundwalletrequest"},{"title":"GetBalanceQueryParams","href":"/sdk-reference/wallets/swift/structs/getbalancequeryparams"},{"title":"GetMeWalletRequest","href":"/sdk-reference/wallets/swift/structs/getmewalletrequest"},{"title":"GetNTFQueryParams","href":"/sdk-reference/wallets/swift/structs/getntfqueryparams"},{"title":"GetTransationQueryParams","href":"/sdk-reference/wallets/swift/structs/gettransationqueryparams"},{"title":"ListTransactionsRequest","href":"/sdk-reference/wallets/swift/structs/listtransactionsrequest"},{"title":"ListTransfersQueryParams","href":"/sdk-reference/wallets/swift/structs/listtransfersqueryparams"},{"title":"LogoutRequest","href":"/sdk-reference/wallets/swift/structs/logoutrequest"},{"title":"MessageSignatureResponse","href":"/sdk-reference/wallets/swift/structs/messagesignatureresponse"},{"title":"NFT","href":"/sdk-reference/wallets/swift/structs/nft"},{"title":"NonCustodialSignerCallback","href":"/sdk-reference/wallets/swift/structs/noncustodialsignercallback"},{"title":"OTPRequest","href":"/sdk-reference/wallets/swift/structs/otprequest"},{"title":"PasskeySignerData","href":"/sdk-reference/wallets/swift/structs/passkeysignerdata"},{"title":"PhoneSignerApiModel","href":"/sdk-reference/wallets/swift/structs/phonesignerapimodel"},{"title":"PhoneSignerData","href":"/sdk-reference/wallets/swift/structs/phonesignerdata"},{"title":"RecoveryMethod","href":"/sdk-reference/wallets/swift/structs/recoverymethod"},{"title":"RefreshJWTRequest","href":"/sdk-reference/wallets/swift/structs/refreshjwtrequest"},{"title":"RefreshJWTResponse","href":"/sdk-reference/wallets/swift/structs/refreshjwtresponse"},{"title":"RegistrationApprovals","href":"/sdk-reference/wallets/swift/structs/registrationapprovals"},{"title":"RegistrationTransaction","href":"/sdk-reference/wallets/swift/structs/registrationtransaction"},{"title":"ServerSignerApiModel","href":"/sdk-reference/wallets/swift/structs/serversignerapimodel"},{"title":"ServerSignerData","href":"/sdk-reference/wallets/swift/structs/serversignerdata"},{"title":"SignerApiModel","href":"/sdk-reference/wallets/swift/structs/signerapimodel"},{"title":"SignMessageRequest","href":"/sdk-reference/wallets/swift/structs/signmessagerequest"},{"title":"SignRequest","href":"/sdk-reference/wallets/swift/structs/signrequest"},{"title":"SignRequestApi","href":"/sdk-reference/wallets/swift/structs/signrequestapi"},{"title":"SignTypedDataRequest","href":"/sdk-reference/wallets/swift/structs/signtypeddatarequest"},{"title":"SolanaAddress","href":"/sdk-reference/wallets/swift/structs/solanaaddress"},{"title":"SolanaTransactionApiModel","href":"/sdk-reference/wallets/swift/structs/solanatransactionapimodel"},{"title":"StellarAddress","href":"/sdk-reference/wallets/swift/structs/stellaraddress"},{"title":"StellarTransactionApiModel","href":"/sdk-reference/wallets/swift/structs/stellartransactionapimodel"},{"title":"SubmittedApprovalEntry","href":"/sdk-reference/wallets/swift/structs/submittedapprovalentry"},{"title":"TokenAccountBalance","href":"/sdk-reference/wallets/swift/structs/tokenaccountbalance"},{"title":"TokenAmount","href":"/sdk-reference/wallets/swift/structs/tokenamount"},{"title":"TokenBalance","href":"/sdk-reference/wallets/swift/structs/tokenbalance"},{"title":"TokenLinkOptions","href":"/sdk-reference/wallets/swift/structs/tokenlinkoptions"},{"title":"Transaction","href":"/sdk-reference/wallets/swift/structs/transaction"},{"title":"TransactionErrorApiModel","href":"/sdk-reference/wallets/swift/structs/transactionerrorapimodel"},{"title":"TransactionSummary","href":"/sdk-reference/wallets/swift/structs/transactionsummary"},{"title":"Transfer","href":"/sdk-reference/wallets/swift/structs/transfer"},{"title":"TransferListResult","href":"/sdk-reference/wallets/swift/structs/transferlistresult"},{"title":"TransferTokenRequest","href":"/sdk-reference/wallets/swift/structs/transfertokenrequest"},{"title":"TypedDataSignatureResponse","href":"/sdk-reference/wallets/swift/structs/typeddatasignatureresponse"},{"title":"ValidateEmailRequest","href":"/sdk-reference/wallets/swift/structs/validateemailrequest"},{"title":"ValidateEmailResponse","href":"/sdk-reference/wallets/swift/structs/validateemailresponse"},{"title":"ValidateTokenRequest","href":"/sdk-reference/wallets/swift/structs/validatetokenrequest"},{"title":"ValidateTokenResponse","href":"/sdk-reference/wallets/swift/structs/validatetokenresponse"},{"title":"WalletApiModel","href":"/sdk-reference/wallets/swift/structs/walletapimodel"},{"title":"WalletConfig","href":"/sdk-reference/wallets/swift/structs/walletconfig"},{"title":"WalletConfigApiModel","href":"/sdk-reference/wallets/swift/structs/walletconfigapimodel"},{"title":"WalletOptions","href":"/sdk-reference/wallets/swift/structs/walletoptions"},{"title":"WalletSigner","href":"/sdk-reference/wallets/swift/structs/walletsigner"}]},{"group":"Type Aliases","pages":[{"title":"EmailSignerError","href":"/sdk-reference/wallets/swift/type-aliases/emailsignererror"},{"title":"Secp256k1PrivateKey","href":"/sdk-reference/wallets/swift/type-aliases/secp256k1privatekey"},{"title":"Secp256k1PublicKey","href":"/sdk-reference/wallets/swift/type-aliases/secp256k1publickey"}]},{"group":"Functions","pages":[{"title":"getBlockchainExplorerURL(for:)","href":"/sdk-reference/wallets/swift/functions/getblockchainexplorerurl-for"}]},{"group":"Extensions","pages":[{"title":"Logger","href":"/sdk-reference/wallets/swift/extensions/logger"},{"title":"SwiftUICore","href":"/sdk-reference/wallets/swift/extensions/swiftuicore"}]}]},{"group":"Kotlin SDK","icon":"/images/icons/kotlin.png","pages":[{"title":"Kotlin SDK Reference","href":"/sdk-reference/wallets/kotlin/index"},{"group":"Classes","pages":[{"title":"AndroidCrossmintTEE","href":"/sdk-reference/wallets/kotlin/classes/android-crossmint-tee"},{"title":"AndroidPasskeyProvider","href":"/sdk-reference/wallets/kotlin/classes/android-passkey-provider"},{"title":"AndroidWebViewBridge","href":"/sdk-reference/wallets/kotlin/classes/android-web-view-bridge"},{"title":"AuthSessionStore","href":"/sdk-reference/wallets/kotlin/classes/auth-session-store"},{"title":"Crossmint","deprecated":true,"href":"/sdk-reference/wallets/kotlin/classes/crossmint"},{"title":"CrossmintAuthManager","href":"/sdk-reference/wallets/kotlin/classes/crossmint-auth-manager"},{"title":"CrossmintSDK","href":"/sdk-reference/wallets/kotlin/classes/crossmint-sdk"},{"title":"DelegatedSigner.PasskeyActivation","href":"/sdk-reference/wallets/kotlin/classes/delegated-signer-passkey-activation"},{"title":"DeviceSignerStorageFactory","href":"/sdk-reference/wallets/kotlin/classes/device-signer-storage-factory"},{"title":"EncryptedSharedPreferenceStorage","href":"/sdk-reference/wallets/kotlin/classes/encrypted-shared-preference-storage"},{"title":"EVMWallet","href":"/sdk-reference/wallets/kotlin/classes/evm-wallet"},{"title":"FallbackPolicy.InsecurePersistent","href":"/sdk-reference/wallets/kotlin/classes/fallback-policy-insecure-persistent"},{"title":"FallbackPolicy.MemoryOnly","href":"/sdk-reference/wallets/kotlin/classes/fallback-policy-memory-only"},{"title":"InsecurePersistentSessionStore","href":"/sdk-reference/wallets/kotlin/classes/insecure-persistent-session-store"},{"title":"InvalidEnvironmentKeyException","href":"/sdk-reference/wallets/kotlin/classes/invalid-environment-key-exception"},{"title":"JvmWebViewBridge","href":"/sdk-reference/wallets/kotlin/classes/jvm-web-view-bridge"},{"title":"KeystoreKeyStorage","href":"/sdk-reference/wallets/kotlin/classes/keystore-key-storage"},{"title":"MalformedKeyException","href":"/sdk-reference/wallets/kotlin/classes/malformed-key-exception"},{"title":"OldKeyException","href":"/sdk-reference/wallets/kotlin/classes/old-key-exception"},{"title":"SolanaWallet","href":"/sdk-reference/wallets/kotlin/classes/solana-wallet"},{"title":"StellarWallet","href":"/sdk-reference/wallets/kotlin/classes/stellar-wallet"},{"title":"TinkSecureStorage","href":"/sdk-reference/wallets/kotlin/classes/tink-secure-storage"},{"title":"TinkWithFallbackSessionStore","href":"/sdk-reference/wallets/kotlin/classes/tink-with-fallback-session-store"},{"title":"Wallet","href":"/sdk-reference/wallets/kotlin/classes/wallet"},{"title":"WebViewNotAvailableException","href":"/sdk-reference/wallets/kotlin/classes/web-view-not-available-exception"}]},{"group":"Interfaces","pages":[{"title":"AuthManager","href":"/sdk-reference/wallets/kotlin/interfaces/auth-manager"},{"title":"AuthService","href":"/sdk-reference/wallets/kotlin/interfaces/auth-service"},{"title":"BalanceOperations","href":"/sdk-reference/wallets/kotlin/interfaces/balance-operations"},{"title":"CrossmintTEE","href":"/sdk-reference/wallets/kotlin/interfaces/crossmint-tee"},{"title":"CrossmintWallets","href":"/sdk-reference/wallets/kotlin/interfaces/crossmint-wallets"},{"title":"DeviceSignerKeyStorage","href":"/sdk-reference/wallets/kotlin/interfaces/device-signer-key-storage"},{"title":"EmailSigner","href":"/sdk-reference/wallets/kotlin/interfaces/email-signer"},{"title":"FailureAwareSessionStore","href":"/sdk-reference/wallets/kotlin/interfaces/failure-aware-session-store"},{"title":"NFTOperations","href":"/sdk-reference/wallets/kotlin/interfaces/nft-operations"},{"title":"NonCustodialSigner","href":"/sdk-reference/wallets/kotlin/interfaces/non-custodial-signer"},{"title":"PasskeyProvider","href":"/sdk-reference/wallets/kotlin/interfaces/passkey-provider"},{"title":"SessionStore","href":"/sdk-reference/wallets/kotlin/interfaces/session-store"},{"title":"Signer","href":"/sdk-reference/wallets/kotlin/interfaces/signer"},{"title":"SignerManagementOperations","href":"/sdk-reference/wallets/kotlin/interfaces/signer-management-operations"},{"title":"TransactionOperations","href":"/sdk-reference/wallets/kotlin/interfaces/transaction-operations"}]},{"group":"Enums","pages":[{"title":"ApiKey.Type","href":"/sdk-reference/wallets/kotlin/enums/api-key-type"},{"title":"AuthErrorCode","href":"/sdk-reference/wallets/kotlin/enums/auth-error-code"},{"title":"BalanceErrorCode","href":"/sdk-reference/wallets/kotlin/enums/balance-error-code"},{"title":"ChainType","href":"/sdk-reference/wallets/kotlin/enums/chain-type"},{"title":"ConfigurationErrorCode","href":"/sdk-reference/wallets/kotlin/enums/configuration-error-code"},{"title":"DelegatedSignerStatus","href":"/sdk-reference/wallets/kotlin/enums/delegated-signer-status"},{"title":"DelegatedSignerType","href":"/sdk-reference/wallets/kotlin/enums/delegated-signer-type"},{"title":"Environment","href":"/sdk-reference/wallets/kotlin/enums/environment"},{"title":"FallbackPolicy","href":"/sdk-reference/wallets/kotlin/enums/fallback-policy"},{"title":"IdentityVerificationErrorCode","href":"/sdk-reference/wallets/kotlin/enums/identity-verification-error-code"},{"title":"LogLevel","href":"/sdk-reference/wallets/kotlin/enums/log-level"},{"title":"NetworkErrorCode","href":"/sdk-reference/wallets/kotlin/enums/network-error-code"},{"title":"OTPDeliveryChannel","href":"/sdk-reference/wallets/kotlin/enums/otp-delivery-channel"},{"title":"PasskeyErrorCode","href":"/sdk-reference/wallets/kotlin/enums/passkey-error-code"},{"title":"SignatureErrorCode","href":"/sdk-reference/wallets/kotlin/enums/signature-error-code"},{"title":"TransactionErrorCode","href":"/sdk-reference/wallets/kotlin/enums/transaction-error-code"},{"title":"TransactionStatus","href":"/sdk-reference/wallets/kotlin/enums/transaction-status"},{"title":"TransferErrorCode","href":"/sdk-reference/wallets/kotlin/enums/transfer-error-code"},{"title":"TransferType","href":"/sdk-reference/wallets/kotlin/enums/transfer-type"},{"title":"WalletErrorCode","href":"/sdk-reference/wallets/kotlin/enums/wallet-error-code"},{"title":"WalletType","href":"/sdk-reference/wallets/kotlin/enums/wallet-type"}]},{"group":"Data Classes","pages":[{"title":"ApiKey","href":"/sdk-reference/wallets/kotlin/data-classes/api-key"},{"title":"ApiKeyError.InvalidEnvironmentKey","href":"/sdk-reference/wallets/kotlin/data-classes/api-key-error-invalid-environment-key"},{"title":"ApiKeyError.MalformedKey","href":"/sdk-reference/wallets/kotlin/data-classes/api-key-error-malformed-key"},{"title":"ApiKeyError.OldKey","href":"/sdk-reference/wallets/kotlin/data-classes/api-key-error-old-key"},{"title":"Approval","href":"/sdk-reference/wallets/kotlin/data-classes/approval"},{"title":"ApprovalMetadata.Passkey","href":"/sdk-reference/wallets/kotlin/data-classes/approval-metadata-passkey"},{"title":"ApprovalSignature.Device","href":"/sdk-reference/wallets/kotlin/data-classes/approval-signature-device"},{"title":"ApprovalSignature.Passkey","href":"/sdk-reference/wallets/kotlin/data-classes/approval-signature-passkey"},{"title":"ApprovalSignature.Raw","href":"/sdk-reference/wallets/kotlin/data-classes/approval-signature-raw"},{"title":"Approvals","href":"/sdk-reference/wallets/kotlin/data-classes/approvals"},{"title":"Approvals.PendingApproval","href":"/sdk-reference/wallets/kotlin/data-classes/approvals-pending-approval"},{"title":"Approvals.SubmittedApproval","href":"/sdk-reference/wallets/kotlin/data-classes/approvals-submitted-approval"},{"title":"AuthError.InvalidCredentials","href":"/sdk-reference/wallets/kotlin/data-classes/auth-error-invalid-credentials"},{"title":"AuthError.NotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/auth-error-not-initialized"},{"title":"AuthError.RateLimited","href":"/sdk-reference/wallets/kotlin/data-classes/auth-error-rate-limited"},{"title":"AuthError.ServerError","href":"/sdk-reference/wallets/kotlin/data-classes/auth-error-server-error"},{"title":"AuthError.TokenExpired","href":"/sdk-reference/wallets/kotlin/data-classes/auth-error-token-expired"},{"title":"AuthError.Unauthorized","href":"/sdk-reference/wallets/kotlin/data-classes/auth-error-unauthorized"},{"title":"BalanceError.BalanceNotFound","href":"/sdk-reference/wallets/kotlin/data-classes/balance-error-balance-not-found"},{"title":"BalanceError.BalanceOperationFailed","href":"/sdk-reference/wallets/kotlin/data-classes/balance-error-balance-operation-failed"},{"title":"BalanceError.Forbidden","href":"/sdk-reference/wallets/kotlin/data-classes/balance-error-forbidden"},{"title":"BalanceError.RateLimited","href":"/sdk-reference/wallets/kotlin/data-classes/balance-error-rate-limited"},{"title":"BalanceError.ServiceNotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/balance-error-service-not-initialized"},{"title":"BalanceError.Unauthorized","href":"/sdk-reference/wallets/kotlin/data-classes/balance-error-unauthorized"},{"title":"Balances","href":"/sdk-reference/wallets/kotlin/data-classes/balances"},{"title":"Call","href":"/sdk-reference/wallets/kotlin/data-classes/call"},{"title":"ChainInfo.Solana","href":"/sdk-reference/wallets/kotlin/data-classes/chain-info-solana"},{"title":"ChainInfo.Stellar","href":"/sdk-reference/wallets/kotlin/data-classes/chain-info-stellar"},{"title":"Chain.Unknown","href":"/sdk-reference/wallets/kotlin/data-classes/chain-unknown"},{"title":"Configuration","href":"/sdk-reference/wallets/kotlin/data-classes/configuration"},{"title":"DelegatedSigner.ApiKey","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-api-key"},{"title":"DelegatedSignerData","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-data"},{"title":"DelegatedSigner.Device","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-device"},{"title":"DelegatedSigner.Email","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-email"},{"title":"DelegatedSigner.ExternalWallet","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-external-wallet"},{"title":"DelegatedSigner.Locator","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-locator"},{"title":"DelegatedSigner.Passkey","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-passkey"},{"title":"DelegatedSigner.Phone","href":"/sdk-reference/wallets/kotlin/data-classes/delegated-signer-phone"},{"title":"DeviceSignerError.StorageError","href":"/sdk-reference/wallets/kotlin/data-classes/device-signer-error-storage-error"},{"title":"EVMTransactionParams","href":"/sdk-reference/wallets/kotlin/data-classes/evm-transaction-params"},{"title":"FeeConfig","href":"/sdk-reference/wallets/kotlin/data-classes/fee-config"},{"title":"IdentityVerificationError","href":"/sdk-reference/wallets/kotlin/data-classes/identity-verification-error"},{"title":"NetworkError.ConnectionError","href":"/sdk-reference/wallets/kotlin/data-classes/network-error-connection-error"},{"title":"NetworkError.HttpError","href":"/sdk-reference/wallets/kotlin/data-classes/network-error-http-error"},{"title":"NetworkError.ParseError","href":"/sdk-reference/wallets/kotlin/data-classes/network-error-parse-error"},{"title":"NetworkError.ServiceNotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/network-error-service-not-initialized"},{"title":"NetworkError.TimeoutError","href":"/sdk-reference/wallets/kotlin/data-classes/network-error-timeout-error"},{"title":"NetworkError.UnknownError","href":"/sdk-reference/wallets/kotlin/data-classes/network-error-unknown-error"},{"title":"OnChainData","href":"/sdk-reference/wallets/kotlin/data-classes/on-chain-data"},{"title":"Owner.Address","href":"/sdk-reference/wallets/kotlin/data-classes/owner-address"},{"title":"Owner.Email","href":"/sdk-reference/wallets/kotlin/data-classes/owner-email"},{"title":"Owner.PhoneNumber","href":"/sdk-reference/wallets/kotlin/data-classes/owner-phone-number"},{"title":"Owner.Twitter","href":"/sdk-reference/wallets/kotlin/data-classes/owner-twitter"},{"title":"Owner.UserId","href":"/sdk-reference/wallets/kotlin/data-classes/owner-user-id"},{"title":"PasskeyCredentialInfo","href":"/sdk-reference/wallets/kotlin/data-classes/passkey-credential-info"},{"title":"PasskeyError.Cancelled","href":"/sdk-reference/wallets/kotlin/data-classes/passkey-error-cancelled"},{"title":"PasskeyError.Failed","href":"/sdk-reference/wallets/kotlin/data-classes/passkey-error-failed"},{"title":"PasskeySignMetadata","href":"/sdk-reference/wallets/kotlin/data-classes/passkey-sign-metadata"},{"title":"PasskeySignResult","href":"/sdk-reference/wallets/kotlin/data-classes/passkey-sign-result"},{"title":"RawTransactionParams.Solana","href":"/sdk-reference/wallets/kotlin/data-classes/raw-transaction-params-solana"},{"title":"RawTransactionParams.Stellar","href":"/sdk-reference/wallets/kotlin/data-classes/raw-transaction-params-stellar"},{"title":"RawTransactionParams.StellarSerialized","href":"/sdk-reference/wallets/kotlin/data-classes/raw-transaction-params-stellar-serialized"},{"title":"RecoveryMethod","href":"/sdk-reference/wallets/kotlin/data-classes/recovery-method"},{"title":"Result.Failure","href":"/sdk-reference/wallets/kotlin/data-classes/result-failure"},{"title":"Result.Success","href":"/sdk-reference/wallets/kotlin/data-classes/result-success"},{"title":"SignatureError.ChainNotSupported","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-chain-not-supported"},{"title":"SignatureError.CreationFailed","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-creation-failed"},{"title":"SignatureError.Forbidden","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-forbidden"},{"title":"SignatureError.ServiceNotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-service-not-initialized"},{"title":"SignatureError.SigningFailed","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-signing-failed"},{"title":"SignatureError.Timeout","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-timeout"},{"title":"SignatureError.Unauthorized","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-unauthorized"},{"title":"SignatureError.Unknown","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-unknown"},{"title":"SignatureError.UserCancelled","href":"/sdk-reference/wallets/kotlin/data-classes/signature-error-user-cancelled"},{"title":"SignerData.ApiKey","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-api-key"},{"title":"SignerData.Device","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-device"},{"title":"SignerData.Email","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-email"},{"title":"SignerData.ExternalWallet","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-external-wallet"},{"title":"SignerData.Passkey","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-passkey"},{"title":"SignerData.Phone","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-phone"},{"title":"SignerData.Server","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-server"},{"title":"SignerData.Unknown","href":"/sdk-reference/wallets/kotlin/data-classes/signer-data-unknown"},{"title":"SignerError.Generic","href":"/sdk-reference/wallets/kotlin/data-classes/signer-error-generic"},{"title":"SignerError.SigningFailed","href":"/sdk-reference/wallets/kotlin/data-classes/signer-error-signing-failed"},{"title":"SignerSelection.Delegated","href":"/sdk-reference/wallets/kotlin/data-classes/signer-selection-delegated"},{"title":"SignerType.Email","href":"/sdk-reference/wallets/kotlin/data-classes/signer-type-email"},{"title":"SignerType.ExternalWallet","href":"/sdk-reference/wallets/kotlin/data-classes/signer-type-external-wallet"},{"title":"SignerType.Passkey","href":"/sdk-reference/wallets/kotlin/data-classes/signer-type-passkey"},{"title":"SignerType.Phone","href":"/sdk-reference/wallets/kotlin/data-classes/signer-type-phone"},{"title":"SigningOutput.Passkey","href":"/sdk-reference/wallets/kotlin/data-classes/signing-output-passkey"},{"title":"SigningOutput.Standard","href":"/sdk-reference/wallets/kotlin/data-classes/signing-output-standard"},{"title":"SolanaTransactionParams","href":"/sdk-reference/wallets/kotlin/data-classes/solana-transaction-params"},{"title":"StellarTransactionParams","href":"/sdk-reference/wallets/kotlin/data-classes/stellar-transaction-params"},{"title":"TEEError.Generic","href":"/sdk-reference/wallets/kotlin/data-classes/tee-error-generic"},{"title":"TEEError.InvalidPayload","href":"/sdk-reference/wallets/kotlin/data-classes/tee-error-invalid-payload"},{"title":"TokenAccountBalance","href":"/sdk-reference/wallets/kotlin/data-classes/token-account-balance"},{"title":"TokenAccountType.Card","href":"/sdk-reference/wallets/kotlin/data-classes/token-account-type-card"},{"title":"TokenAccountType.Unknown","href":"/sdk-reference/wallets/kotlin/data-classes/token-account-type-unknown"},{"title":"TokenAmount","href":"/sdk-reference/wallets/kotlin/data-classes/token-amount"},{"title":"TokenBalance","href":"/sdk-reference/wallets/kotlin/data-classes/token-balance"},{"title":"Transaction","href":"/sdk-reference/wallets/kotlin/data-classes/transaction"},{"title":"TransactionErrorDetails","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-details"},{"title":"TransactionErrorDetails.Revert","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-details-revert"},{"title":"TransactionError.Forbidden","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-forbidden"},{"title":"TransactionError.InvalidTransactionState","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-invalid-transaction-state"},{"title":"TransactionError.RateLimited","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-rate-limited"},{"title":"TransactionError.ServiceNotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-service-not-initialized"},{"title":"TransactionError.SigningFailed","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-signing-failed"},{"title":"TransactionError.Timeout","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-timeout"},{"title":"TransactionError.TransactionCreationFailed","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-transaction-creation-failed"},{"title":"TransactionError.TransactionFailed","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-transaction-failed"},{"title":"TransactionError.TransactionNotFound","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-transaction-not-found"},{"title":"TransactionError.TransactionOperationFailed","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-transaction-operation-failed"},{"title":"TransactionError.Unauthorized","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-unauthorized"},{"title":"TransactionError.UserCancelled","href":"/sdk-reference/wallets/kotlin/data-classes/transaction-error-user-cancelled"},{"title":"Transfer","href":"/sdk-reference/wallets/kotlin/data-classes/transfer"},{"title":"TransferError.LoadFailed","href":"/sdk-reference/wallets/kotlin/data-classes/transfer-error-load-failed"},{"title":"TransferError.ServiceNotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/transfer-error-service-not-initialized"},{"title":"TransferError.Unauthorized","href":"/sdk-reference/wallets/kotlin/data-classes/transfer-error-unauthorized"},{"title":"TransferError.Unknown","href":"/sdk-reference/wallets/kotlin/data-classes/transfer-error-unknown"},{"title":"TransferList","href":"/sdk-reference/wallets/kotlin/data-classes/transfer-list"},{"title":"UserOperation","href":"/sdk-reference/wallets/kotlin/data-classes/user-operation"},{"title":"WalletConfig","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-config"},{"title":"WalletError.ChainNotSupported","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-chain-not-supported"},{"title":"WalletError.DelegatedSignerConflict","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-delegated-signer-conflict"},{"title":"WalletError.DeviceKeyIndexUnreadable","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-device-key-index-unreadable"},{"title":"WalletError.DeviceSignerNotSupported","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-device-signer-not-supported"},{"title":"WalletError.DuplicateRecoverySigner","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-duplicate-recovery-signer"},{"title":"WalletError.Forbidden","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-forbidden"},{"title":"WalletError.InvalidInput","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-invalid-input"},{"title":"WalletError.InvalidRecoveryConfig","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-invalid-recovery-config"},{"title":"WalletError.InvalidSigner","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-invalid-signer"},{"title":"WalletError.LastRecoverySigner","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-last-recovery-signer"},{"title":"WalletError.RateLimited","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-rate-limited"},{"title":"WalletError.RecoveryAdminSignerConflict","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-recovery-admin-signer-conflict"},{"title":"WalletError.RecoveryNotSupportedOnApiVersion","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-recovery-not-supported-on-api-version"},{"title":"WalletError.RecoveryNotSupportedOnChain","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-recovery-not-supported-on-chain"},{"title":"WalletError.RecoverySignerConflict","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-recovery-signer-conflict"},{"title":"WalletError.RecoverySignerNotAllowed","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-recovery-signer-not-allowed"},{"title":"WalletError.ServiceNotInitialized","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-service-not-initialized"},{"title":"WalletError.SignerLimitExceeded","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-signer-limit-exceeded"},{"title":"WalletError.SignerNotRegistered","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-signer-not-registered"},{"title":"WalletError.SignerRequired","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-signer-required"},{"title":"WalletError.SigningError","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-signing-error"},{"title":"WalletError.Unauthorized","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-unauthorized"},{"title":"WalletError.WalletNotFound","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-wallet-not-found"},{"title":"WalletError.WalletOperationFailed","href":"/sdk-reference/wallets/kotlin/data-classes/wallet-error-wallet-operation-failed"},{"title":"WebViewMessage.Custom","href":"/sdk-reference/wallets/kotlin/data-classes/web-view-message-custom"}]},{"group":"Sealed Classes","pages":[{"title":"ApprovalMetadata","href":"/sdk-reference/wallets/kotlin/sealed-classes/approval-metadata"},{"title":"ApprovalSignature","href":"/sdk-reference/wallets/kotlin/sealed-classes/approval-signature"},{"title":"DelegatedSigner","href":"/sdk-reference/wallets/kotlin/sealed-classes/delegated-signer"},{"title":"DeviceSignerError","href":"/sdk-reference/wallets/kotlin/sealed-classes/device-signer-error"},{"title":"Owner","href":"/sdk-reference/wallets/kotlin/sealed-classes/owner"},{"title":"RawTransactionParams","href":"/sdk-reference/wallets/kotlin/sealed-classes/raw-transaction-params"},{"title":"SignerData","href":"/sdk-reference/wallets/kotlin/sealed-classes/signer-data"},{"title":"SignerError","href":"/sdk-reference/wallets/kotlin/sealed-classes/signer-error"},{"title":"SignerSelection","href":"/sdk-reference/wallets/kotlin/sealed-classes/signer-selection"},{"title":"SignerType","href":"/sdk-reference/wallets/kotlin/sealed-classes/signer-type"},{"title":"SigningOutput","href":"/sdk-reference/wallets/kotlin/sealed-classes/signing-output"},{"title":"TEEError","href":"/sdk-reference/wallets/kotlin/sealed-classes/tee-error"}]},{"group":"Sealed Interfaces","pages":[{"title":"ApiKeyError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/api-key-error"},{"title":"AuthError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/auth-error"},{"title":"BalanceError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/balance-error"},{"title":"Chain","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/chain"},{"title":"ChainInfo","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/chain-info"},{"title":"ConfigurationError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/configuration-error"},{"title":"CrossmintError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/crossmint-error"},{"title":"CrossmintErrorCode","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/crossmint-error-code"},{"title":"EVMChain","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/evm-chain"},{"title":"NetworkError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/network-error"},{"title":"PasskeyError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/passkey-error"},{"title":"Result","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/result"},{"title":"SignatureError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/signature-error"},{"title":"SolanaChain","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/solana-chain"},{"title":"StellarChain","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/stellar-chain"},{"title":"SupportedChain","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/supported-chain"},{"title":"TokenAccountType","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/token-account-type"},{"title":"TransactionError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/transaction-error"},{"title":"TransactionParams","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/transaction-params"},{"title":"TransferError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/transfer-error"},{"title":"WalletError","href":"/sdk-reference/wallets/kotlin/sealed-interfaces/wallet-error"}]},{"group":"Objects","pages":[{"title":"ApiKey.Companion","href":"/sdk-reference/wallets/kotlin/objects/api-key-companion"},{"title":"Chain.Companion","href":"/sdk-reference/wallets/kotlin/objects/chain-companion"},{"title":"Configuration.Companion","href":"/sdk-reference/wallets/kotlin/objects/configuration-companion"},{"title":"CrossmintAuthManager.Companion","href":"/sdk-reference/wallets/kotlin/objects/crossmint-auth-manager-companion"},{"title":"Crossmint.Companion","href":"/sdk-reference/wallets/kotlin/objects/crossmint-companion"},{"title":"CrossmintSDK.Companion","href":"/sdk-reference/wallets/kotlin/objects/crossmint-sdk-companion"},{"title":"DelegatedSignerStatus.Companion","href":"/sdk-reference/wallets/kotlin/objects/delegated-signer-status-companion"},{"title":"DelegatedSignerType.Companion","href":"/sdk-reference/wallets/kotlin/objects/delegated-signer-type-companion"},{"title":"DeviceSignerError.HardwareUnavailable","href":"/sdk-reference/wallets/kotlin/objects/device-signer-error-hardware-unavailable"},{"title":"DeviceSignerError.InvalidMessage","href":"/sdk-reference/wallets/kotlin/objects/device-signer-error-invalid-message"},{"title":"DeviceSignerError.KeyGenerationFailed","href":"/sdk-reference/wallets/kotlin/objects/device-signer-error-key-generation-failed"},{"title":"DeviceSignerError.KeyNotFound","href":"/sdk-reference/wallets/kotlin/objects/device-signer-error-key-not-found"},{"title":"DeviceSignerError.SigningFailed","href":"/sdk-reference/wallets/kotlin/objects/device-signer-error-signing-failed"},{"title":"EncryptedSharedPreferenceStorage.Companion","href":"/sdk-reference/wallets/kotlin/objects/encrypted-shared-preference-storage-companion"},{"title":"EVMChain.Apechain","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-apechain"},{"title":"EVMChain.Apex","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-apex"},{"title":"EVMChain.Arbitrum","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-arbitrum"},{"title":"EVMChain.ArbitrumNova","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-arbitrum-nova"},{"title":"EVMChain.ArbitrumSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-arbitrum-sepolia"},{"title":"EVMChain.AstarZkEVM","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-astar-zk-evm"},{"title":"EVMChain.Avalanche","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-avalanche"},{"title":"EVMChain.AvalancheFuji","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-avalanche-fuji"},{"title":"EVMChain.BarretTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-barret-testnet"},{"title":"EVMChain.Base","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-base"},{"title":"EVMChain.BaseGoerli","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-base-goerli"},{"title":"EVMChain.BaseSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-base-sepolia"},{"title":"EVMChain.Boss","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-boss"},{"title":"EVMChain.BSCTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-bsc-testnet"},{"title":"EVMChain.Chiliz","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-chiliz"},{"title":"EVMChain.ChilizSpicyTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-chiliz-spicy-testnet"},{"title":"EVMChain.Coti","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-coti"},{"title":"EVMChain.CotiTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-coti-testnet"},{"title":"EVMChain.Curtis","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-curtis"},{"title":"EVMChain.Ethereum","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-ethereum"},{"title":"EVMChain.EthereumGoerli","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-ethereum-goerli"},{"title":"EVMChain.EthereumSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-ethereum-sepolia"},{"title":"EVMChain.HypersonicTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-hypersonic-testnet"},{"title":"EVMChain.Lightlink","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-lightlink"},{"title":"EVMChain.LightlinkPegasus","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-lightlink-pegasus"},{"title":"EVMChain.Mode","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-mode"},{"title":"EVMChain.ModeSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-mode-sepolia"},{"title":"EVMChain.Optimism","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-optimism"},{"title":"EVMChain.OptimismGoerli","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-optimism-goerli"},{"title":"EVMChain.OptimismSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-optimism-sepolia"},{"title":"EVMChain.Polygon","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-polygon"},{"title":"EVMChain.PolygonAmoy","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-polygon-amoy"},{"title":"EVMChain.PolygonMumbai","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-polygon-mumbai"},{"title":"EVMChain.Rari","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-rari"},{"title":"EVMChain.RariTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-rari-testnet"},{"title":"EVMChain.Scroll","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-scroll"},{"title":"EVMChain.ScrollSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-scroll-sepolia"},{"title":"EVMChain.SeiAtlantic2Testnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-sei-atlantic2testnet"},{"title":"EVMChain.SeiPacific1","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-sei-pacific1"},{"title":"EVMChain.Shape","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-shape"},{"title":"EVMChain.ShapeSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-shape-sepolia"},{"title":"EVMChain.SkaleNebula","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-skale-nebula"},{"title":"EVMChain.SkaleNebulaTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-skale-nebula-testnet"},{"title":"EVMChain.Soneium","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-soneium"},{"title":"EVMChain.SoneiumMinatoTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-soneium-minato-testnet"},{"title":"EVMChain.Space","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-space"},{"title":"EVMChain.SpaceTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-space-testnet"},{"title":"EVMChain.Story","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-story"},{"title":"EVMChain.StoryTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-story-testnet"},{"title":"EVMChain.VerifyTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-verify-testnet"},{"title":"EVMChain.Viction","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-viction"},{"title":"EVMChain.VictionTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-viction-testnet"},{"title":"EVMChain.Xai","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-xai"},{"title":"EVMChain.XaiSepoliaTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-xai-sepolia-testnet"},{"title":"EVMChain.ZenchainTestnet","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-zenchain-testnet"},{"title":"EVMChain.Zkatana","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-zkatana"},{"title":"EVMChain.Zkyoto","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-zkyoto"},{"title":"EVMChain.Zora","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-zora"},{"title":"EVMChain.ZoraGoerli","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-zora-goerli"},{"title":"EVMChain.ZoraSepolia","href":"/sdk-reference/wallets/kotlin/objects/evm-chain-zora-sepolia"},{"title":"InsecurePersistentSessionStore.Companion","href":"/sdk-reference/wallets/kotlin/objects/insecure-persistent-session-store-companion"},{"title":"KeystoreKeyStorage.Companion","href":"/sdk-reference/wallets/kotlin/objects/keystore-key-storage-companion"},{"title":"SignerError.Cancelled","href":"/sdk-reference/wallets/kotlin/objects/signer-error-cancelled"},{"title":"SignerError.InvalidEmail","href":"/sdk-reference/wallets/kotlin/objects/signer-error-invalid-email"},{"title":"SignerError.NotInitialized","href":"/sdk-reference/wallets/kotlin/objects/signer-error-not-initialized"},{"title":"SignerError.NotStarted","href":"/sdk-reference/wallets/kotlin/objects/signer-error-not-started"},{"title":"SignerError.TeeNotStarted","href":"/sdk-reference/wallets/kotlin/objects/signer-error-tee-not-started"},{"title":"SignerSelection.Admin","href":"/sdk-reference/wallets/kotlin/objects/signer-selection-admin"},{"title":"SignerType.ApiKey","href":"/sdk-reference/wallets/kotlin/objects/signer-type-api-key"},{"title":"SolanaChain.Solana","href":"/sdk-reference/wallets/kotlin/objects/solana-chain-solana"},{"title":"StellarChain.Stellar","href":"/sdk-reference/wallets/kotlin/objects/stellar-chain-stellar"},{"title":"TEEError.EncryptionUnavailable","href":"/sdk-reference/wallets/kotlin/objects/tee-error-encryption-unavailable"},{"title":"TEEError.ErrorLoadingService","href":"/sdk-reference/wallets/kotlin/objects/tee-error-error-loading-service"},{"title":"TEEError.HandshakeFailed","href":"/sdk-reference/wallets/kotlin/objects/tee-error-handshake-failed"},{"title":"TEEError.HandshakeRequired","href":"/sdk-reference/wallets/kotlin/objects/tee-error-handshake-required"},{"title":"TEEError.InvalidSignature","href":"/sdk-reference/wallets/kotlin/objects/tee-error-invalid-signature"},{"title":"TEEError.JWTRequired","href":"/sdk-reference/wallets/kotlin/objects/tee-error-jwt-required"},{"title":"TEEError.SignerStatusUnavailable","href":"/sdk-reference/wallets/kotlin/objects/tee-error-signer-status-unavailable"},{"title":"TEEError.Timeout","href":"/sdk-reference/wallets/kotlin/objects/tee-error-timeout"},{"title":"TEEError.UserCancelled","href":"/sdk-reference/wallets/kotlin/objects/tee-error-user-cancelled"},{"title":"TinkSecureStorage.Companion","href":"/sdk-reference/wallets/kotlin/objects/tink-secure-storage-companion"},{"title":"TinkWithFallbackSessionStore.Companion","href":"/sdk-reference/wallets/kotlin/objects/tink-with-fallback-session-store-companion"},{"title":"TokenAccountType.Wallet","href":"/sdk-reference/wallets/kotlin/objects/token-account-type-wallet"}]},{"group":"Composables","pages":[{"title":"CrossmintNonCustodialSignerProvider","href":"/sdk-reference/wallets/kotlin/composables/crossmint-non-custodial-signer-provider"},{"title":"CrossmintTEEWebView","href":"/sdk-reference/wallets/kotlin/composables/crossmint-tee-web-view"},{"title":"CrossmintTEEWebViewContainer","href":"/sdk-reference/wallets/kotlin/composables/crossmint-tee-web-view-container"},{"title":"PlatformSpecificProvider","href":"/sdk-reference/wallets/kotlin/composables/platform-specific-provider"}]},{"group":"Functions","pages":[{"title":"configure","href":"/sdk-reference/wallets/kotlin/functions/configure"},{"title":"createAndroidTEE","href":"/sdk-reference/wallets/kotlin/functions/create-android-tee"},{"title":"createAuthManager","href":"/sdk-reference/wallets/kotlin/functions/create-auth-manager"},{"title":"createCrossmintWallets","href":"/sdk-reference/wallets/kotlin/functions/create-crossmint-wallets"},{"title":"createDefaultAuthManager","href":"/sdk-reference/wallets/kotlin/functions/create-default-auth-manager"},{"title":"createDefaultSessionStore","href":"/sdk-reference/wallets/kotlin/functions/create-default-session-store"},{"title":"createEVMWallet","href":"/sdk-reference/wallets/kotlin/functions/create-evm-wallet"},{"title":"createPasskeyCredential","href":"/sdk-reference/wallets/kotlin/functions/create-passkey-credential"},{"title":"createSolanaWallet","href":"/sdk-reference/wallets/kotlin/functions/create-solana-wallet"},{"title":"createStellarWallet","href":"/sdk-reference/wallets/kotlin/functions/create-stellar-wallet"},{"title":"createWallet","href":"/sdk-reference/wallets/kotlin/functions/create-wallet"},{"title":"CrossmintTEEWebView","href":"/sdk-reference/wallets/kotlin/functions/crossmint-tee-web-view"},{"title":"flatMap","href":"/sdk-reference/wallets/kotlin/functions/flat-map"},{"title":"fold","href":"/sdk-reference/wallets/kotlin/functions/fold"},{"title":"getOrNull","href":"/sdk-reference/wallets/kotlin/functions/get-or-null"},{"title":"getOrThrow","href":"/sdk-reference/wallets/kotlin/functions/get-or-throw"},{"title":"isMainThread","href":"/sdk-reference/wallets/kotlin/functions/is-main-thread"},{"title":"makePasskeySignerCallback","href":"/sdk-reference/wallets/kotlin/functions/make-passkey-signer-callback"},{"title":"map","href":"/sdk-reference/wallets/kotlin/functions/map"},{"title":"mapError","href":"/sdk-reference/wallets/kotlin/functions/map-error"},{"title":"normalizeEmail","href":"/sdk-reference/wallets/kotlin/functions/normalize-email"},{"title":"runCatching","href":"/sdk-reference/wallets/kotlin/functions/run-catching"},{"title":"useSigner","href":"/sdk-reference/wallets/kotlin/functions/use-signer"},{"title":"waitForMessage","href":"/sdk-reference/wallets/kotlin/functions/wait-for-message"}]},{"group":"Properties","pages":[{"title":"LocalCrossmintSDK","href":"/sdk-reference/wallets/kotlin/properties/local-crossmint-sdk"}]}]}]}]}]},{"tab":"Identity","pages":[{"title":"Identity","href":"/identity/overview"}]},{"tab":"Stablecoin Orchestration","pages":[{"title":"Stablecoin Orchestration","href":"/stablecoin-orchestration/overview"}]},{"tab":"Checkout","pages":[{"title":"Checkout","href":"/payments/introduction"}]},{"tab":"Onramp","pages":[{"title":"Onramp","href":"/onramp/overview"}]},{"tab":"Offramp","pages":[{"title":"Offramp","href":"/offramp/overview"}]},{"tab":"Agents","pages":[{"title":"Agents","href":"/agents/overview"}]},{"tab":"Others","menu":[{"item":"Tokenization","pages":[{"title":"Tokenization","href":"/tokenization/introduction"}]}],"pages":[{"title":"Others","href":"/tokenization/introduction"}]}]},"basePath":"","title":"Add Recovery Method - Crossmint Docs","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}