When developing and debugging on physical iOS devices with Portal SDK, you may experience slower performance compared to running without a debugger or on simulators. To optimize the debugging experience on physical iOS devices, add the following environment variable to your Xcode scheme:
Open your project in Xcode
Go to Product > Scheme > Edit Scheme
Select “Run” on the left sidebar
Go to the “Arguments” tab
In the “Environment Variables” section, click ”+”
Add:
Name: GODEBUG
Value: asyncpreemptoff=1
This optimization will significantly improve the debugging experience when using a debugger on physical devices.
This environment variable only affects debugging sessions and has no impact on release builds or production performance. Your app will perform optimally in production whether or not you add this debugging configuration - it only helps improve the development experience when debugging on physical devices.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Portal","description":"Portal is a key management platform for stablecoin companies. Create wallets, send and receive funds on-chain - all in a day.","colors":{"primary":"#5a86fa","light":"#789CFA","dark":"#3E71F8"},"logo":{"light":"https://mintcdn.com/portal-003221ec/GSEv3FWt9xT6P4p5/logo/light.svg?fit=max\u0026auto=format\u0026n=GSEv3FWt9xT6P4p5\u0026q=85\u0026s=589c25ed9717a63807caa49ef88b9541","dark":"https://mintcdn.com/portal-003221ec/GSEv3FWt9xT6P4p5/logo/dark.svg?fit=max\u0026auto=format\u0026n=GSEv3FWt9xT6P4p5\u0026q=85\u0026s=60a15ea88f068be82954514cc71f558c","href":"https://docs.portalhq.io"},"favicon":"https://mintcdn.com/portal-003221ec/8nhTiKJyGlrD5CbB/favicon.png?fit=max\u0026auto=format\u0026n=8nhTiKJyGlrD5CbB\u0026q=85\u0026s=2bbda68250f65a434b3f9eb0fe709ac1","navbar":{"links":[{"href":"mailto:support@portalhq.io","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.portalhq.io"}},"footer":{"socials":{"x":"https://twitter.com/portal_hq","github":"https://github.com/portal-hq","linkedin":"https://www.linkedin.com/company/portal-labs-inc"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/portal-hq"},{"anchor":"Blog","icon":"newspaper","href":"https://www.portalhq.io/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"portal-003221ec","hasAudioNarration":false,"actualSubdomain":"portal-003221ec","customDomains":["docs.portalhq.io"],"gitSource":{"type":"github","owner":"portal-hq","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeb9ffe7d3e0e4d340c6d5c","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Documentation","count":394},{"language":"default","tag":"SDKs","count":294},{"language":"default","tag":"API Reference","count":271},{"language":"default","tag":"Client API","count":209},{"language":"default","tag":"Guide","count":164},{"language":"default","tag":"Reference","count":139},{"language":"default","tag":"Flutter","count":99},{"language":"default","tag":"iOS","count":91},{"language":"default","tag":"Due","count":56},{"language":"default","tag":"Resources","count":47}]},"assistantConfig":{"enableStarterQuestions":false},"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":"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":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"sdks/ios/guide/troubleshooting-tips","slug":"/sdks/ios/guide/troubleshooting-tips","pageMetadata":{"title":"Troubleshooting tips","description":"This guide will walk you through some tips and tricks to help you troubleshoot issues with the Portal SDK.","href":"/sdks/ios/guide/troubleshooting-tips"},"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: \"This guide will walk you through some tips and tricks to help you troubleshoot issues with the Portal SDK.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,ol:`ol`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`debugging-development-performance`,children:`Debugging Development Performance`}),`\n`,_jsx(_components.p,{children:`When developing and debugging on physical iOS devices with Portal SDK, you may experience slower performance compared to running without a debugger or on simulators. To optimize the debugging experience on physical iOS devices, add the following environment variable to your Xcode scheme:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Open your project in Xcode`}),`\n`,_jsx(_components.li,{children:`Go to Product > Scheme > Edit Scheme`}),`\n`,_jsx(_components.li,{children:`Select “Run” on the left sidebar`}),`\n`,_jsx(_components.li,{children:`Go to the “Arguments” tab`}),`\n`,_jsx(_components.li,{children:`In the “Environment Variables” section, click ”+”`}),`\n`,_jsxs(_components.li,{children:[`Add:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Name: `,_jsx(_components.code,{children:`GODEBUG`})]}),`\n`,_jsxs(_components.li,{children:[`Value: `,_jsx(_components.code,{children:`asyncpreemptoff=1`})]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`This optimization will significantly improve the debugging experience when using a debugger on physical devices.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`This environment variable only affects debugging sessions and has no impact on release builds or production performance. Your app will perform optimally in production whether or not you add this debugging configuration - it only helps improve the development experience when debugging on physical devices.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Troubleshooting tips","description":"This guide will walk you through some tips and tricks to help you troubleshoot issues with the Portal SDK.","href":"/sdks/ios/guide/troubleshooting-tips"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Debugging Development Performance","slug":"debugging-development-performance","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"portal-003221ec","siteName":"Portal","title":"Troubleshooting tips - Portal","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-22T00:15:22.352Z","originalFileLocation":"sdks/ios/guide/troubleshooting-tips.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=\"This guide will walk you through some tips and tricks to help you troubleshoot issues with the Portal SDK.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Portal\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/portal-003221ec/V8g2PPGq3WmDlhV8/_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/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/portal-003221ec/V8g2PPGq3WmDlhV8/_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/portal-003221ec/V8g2PPGq3WmDlhV8/_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/portal-003221ec/V8g2PPGq3WmDlhV8/_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/portal-003221ec/V8g2PPGq3WmDlhV8/_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/portal-003221ec/V8g2PPGq3WmDlhV8/_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/portal-003221ec/V8g2PPGq3WmDlhV8/_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/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Troubleshooting tips - Portal\">\u003cmeta data-mint-head property=\"og:description\" content=\"This guide will walk you through some tips and tricks to help you troubleshoot issues with the Portal SDK.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Portal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.portalhq.io/sdks/ios/guide/troubleshooting-tips\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://portal-003221ec.mintlify.site/_mintlify/api/og/v2?division=Guide\u0026amp;title=Troubleshooting+tips\u0026amp;description=This+guide+will+walk+you+through+some+tips+and+tricks+to+help+you+troubleshoot+issues+with+the+Portal+SDK.\u0026amp;theme=e1b378a47070082a94077904\u0026amp;signature=7d182ab14702660c28892bf0a76f9cc722250616852aaf6eafc2640e58376504\">\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=\"Troubleshooting tips - Portal\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This guide will walk you through some tips and tricks to help you troubleshoot issues with the Portal SDK.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://portal-003221ec.mintlify.site/_mintlify/api/og/v2?division=Guide\u0026amp;title=Troubleshooting+tips\u0026amp;description=This+guide+will+walk+you+through+some+tips+and+tricks+to+help+you+troubleshoot+issues+with+the+Portal+SDK.\u0026amp;theme=e1b378a47070082a94077904\u0026amp;signature=7d182ab14702660c28892bf0a76f9cc722250616852aaf6eafc2640e58376504\">\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/portal-003221ec/V8g2PPGq3WmDlhV8/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Portal\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5a86fa\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.portalhq.io/sdks/ios/guide/troubleshooting-tips\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/sdks/ios/guide/troubleshooting-tips.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.portalhq.io/#organization\",\"name\":\"Portal\",\"url\":\"https://docs.portalhq.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/portal-003221ec/GSEv3FWt9xT6P4p5/logo/light.svg?fit=max\u0026auto=format\u0026n=GSEv3FWt9xT6P4p5\u0026q=85\u0026s=589c25ed9717a63807caa49ef88b9541\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.portalhq.io#website\",\"name\":\"Portal\",\"url\":\"https://docs.portalhq.io\",\"publisher\":{\"@id\":\"https://docs.portalhq.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.portalhq.io/sdks/ios/guide/troubleshooting-tips#webpage\",\"url\":\"https://docs.portalhq.io/sdks/ios/guide/troubleshooting-tips\",\"name\":\"Troubleshooting tips\",\"description\":\"This guide will walk you through some tips and tricks to help you troubleshoot issues with the Portal SDK.\",\"dateModified\":\"2026-01-22T00:15:22.352Z\",\"isPartOf\":{\"@id\":\"https://docs.portalhq.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.portalhq.io/sdks/ios/guide/troubleshooting-tips#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.portalhq.io/sdks/ios/guide/troubleshooting-tips#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"SDKs\",\"item\":\"https://docs.portalhq.io/sdks/web/guide/getting-started\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"iOS\",\"item\":\"https://docs.portalhq.io/sdks/ios/guide/getting-started\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Guide\",\"item\":\"https://docs.portalhq.io/sdks/ios/guide/create-a-wallet\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Troubleshooting tips\",\"item\":\"https://docs.portalhq.io/sdks/ios/guide/troubleshooting-tips\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.portalhq.io/sdks/ios/guide/troubleshooting-tips#article\",\"headline\":\"Troubleshooting tips\",\"name\":\"Troubleshooting tips\",\"description\":\"This guide will walk you through some tips and tricks to help you troubleshoot issues with the Portal SDK.\",\"url\":\"https://docs.portalhq.io/sdks/ios/guide/troubleshooting-tips\",\"mainEntityOfPage\":{\"@id\":\"https://docs.portalhq.io/sdks/ios/guide/troubleshooting-tips#webpage\"},\"dateModified\":\"2026-01-22T00:15:22.352Z\",\"publisher\":{\"@id\":\"https://docs.portalhq.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.portalhq.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Portal\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Portal","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/portal-hq"},{"anchor":"Blog","icon":"newspaper","href":"https://www.portalhq.io/blog"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":""},{"title":"SDK Quickstart","href":"/sdks/quickstart"},{"title":"API Quickstart","href":"/apis/quickstart"}]},{"group":"SDKs","pages":[{"group":"Web","pages":[{"title":"Getting Started","href":"/sdks/web/guide/getting-started"},{"group":"Guide","pages":[{"title":"Create a wallet","href":"/sdks/web/guide/create-a-wallet"},{"title":"Send tokens","href":"/sdks/web/guide/send-tokens"},{"title":"Sign a transaction","href":"/sdks/web/guide/sign-a-transaction"},{"title":"Idempotency keys","href":"/sdks/web/guide/idempotency-keys"},{"title":"Simulate a transaction","href":"/sdks/web/guide/simulate-a-transaction"},{"title":"Back up a wallet","href":"/sdks/web/guide/back-up-a-wallet"},{"title":"Recover a wallet","href":"/sdks/web/guide/recover-a-wallet"},{"title":"Cross-device sessions","href":"/sdks/web/guide/cross-device-sessions"},{"title":"Manage wallet lifecycle states","href":"/sdks/web/guide/manage-wallet-lifecycle-states"},{"title":"Handle storage loss","href":"/sdks/web/guide/handle-storage-loss"},{"title":"Web authentication methods","href":"/sdks/web/guide/web-authentication-methods"},{"title":"Client Auth","href":"/sdks/web/guide/client-auth"},{"title":"Add custom signature hooks","href":"/sdks/web/guide/add-custom-signature-hooks"},{"title":"MPC progress callbacks","href":"/sdks/web/guide/mpc-progress-callbacks"},{"title":"Portal API methods","href":"/sdks/web/guide/portal-api-methods"},{"title":"Configure a custom subdomain","href":"/sdks/web/guide/configure-a-custom-subdomain"},{"title":"Security model","href":"/sdks/web/guide/security-model"},{"title":"Logging Configuration","href":"/sdks/web/guide/logging"},{"title":"Feature flags","href":"/sdks/web/guide/feature-flags"},{"title":"Eject a wallet","href":"/sdks/web/guide/eject-a-wallet"},{"title":"Using the EIP-1193 Provider","href":"/sdks/web/guide/using-the-eip-1193-provider"},{"title":"Enhance your wallet security with Blockaid","href":"/sdks/web/guide/blockaid"},{"title":"Security Scanning with Hypernative","href":"/sdks/web/guide/hypernative"},{"title":"Swap Tokens with 0x","href":"/sdks/web/guide/zero-x"},{"title":"Bridge \u0026 Swap with Li.Fi","href":"/sdks/web/guide/lifi"},{"title":"Noah virtual accounts and payouts","href":"/sdks/web/guide/noah"},{"title":"Meld buy, sell, and transfer","href":"/sdks/web/guide/meld"},{"title":"Earn with Yield.xyz","href":"/sdks/web/guide/yield-xyz"},{"title":"Lend and borrow with Yield.xyz","href":"/sdks/web/guide/yield-xyz-borrow"},{"title":"Trade perps with Yield.xyz","href":"/sdks/web/guide/yield-xyz-perps"},{"title":"Upgrading to EIP-7702","href":"/sdks/web/guide/evm-account-type"},{"title":"Manage Token Delegations","href":"/sdks/web/guide/delegations"},{"title":"Batch user operations","href":"/sdks/web/guide/batch-user-operations"}]},{"title":"Reference","href":"/sdks/web/reference"}]},{"group":"Android","pages":[{"title":"Getting Started","href":"/sdks/android/guide/getting-started"},{"group":"Guide","pages":[{"title":"Create a wallet","href":"/sdks/android/guide/create-a-wallet"},{"title":"Get wallet addresses","href":"/sdks/android/guide/get-wallet-addresses"},{"title":"Send tokens","href":"/sdks/android/guide/send-tokens"},{"title":"Sign a transaction","href":"/sdks/android/guide/sign-a-transaction"},{"title":"Idempotency keys","href":"/sdks/android/guide/idempotency-keys"},{"title":"Evaluate a transaction","href":"/sdks/android/guide/evaluate-a-transaction"},{"title":"Back up a wallet","href":"/sdks/android/guide/back-up-a-wallet"},{"title":"Recover a wallet","href":"/sdks/android/guide/recover-a-wallet"},{"title":"Cross-device sessions","href":"/sdks/android/guide/cross-device-sessions"},{"title":"Manage wallet lifecycle states","href":"/sdks/android/guide/manage-wallet-lifecycle-states"},{"title":"Client Auth","href":"/sdks/android/guide/client-auth"},{"title":"Connect with WalletConnect","href":"/sdks/android/guide/connect-with-walletconnect"},{"title":"Build a WebView","href":"/sdks/android/guide/build-a-webview"},{"title":"Perform swaps","href":"/sdks/android/guide/perform-swaps"},{"title":"Add custom signature hooks","href":"/sdks/android/guide/add-custom-signature-hooks"},{"title":"MPC progress callbacks","href":"/sdks/android/guide/mpc-progress-callbacks"},{"title":"Portal API methods","href":"/sdks/android/guide/portal-api-methods"},{"title":"Eject a wallet","href":"/sdks/android/guide/eject-a-wallet"},{"title":"Enhance your wallets' security with Blockaid","href":"/sdks/android/guide/blockaid"},{"title":"Enhance your wallets' security with Hypernative","href":"/sdks/android/guide/hypernative"},{"title":"Swap Tokens with 0x","href":"/sdks/android/guide/zerox"},{"title":"Bridge \u0026 Swap with Li.Fi","href":"/sdks/android/guide/lifi"},{"title":"Earn with Yield.xyz","href":"/sdks/android/guide/yield-xyz"},{"title":"Manage Token Delegations","href":"/sdks/android/guide/delegations"},{"title":"Upgrading to EIP-7702","href":"/sdks/android/guide/evm-account-type"},{"title":"Error handling","href":"/sdks/android/guide/error-handling"},{"title":"Feature Flags","href":"/sdks/android/guide/feature-flags"},{"title":"Configure log level","href":"/sdks/android/guide/configure-log-level"},{"title":"Noah virtual accounts and payouts","href":"/sdks/android/guide/noah"},{"title":"Request tracing","href":"/sdks/android/guide/request-tracing"}]},{"title":"Reference","href":"/sdks/android/reference"}]},{"group":"iOS","pages":[{"title":"Getting Started","href":"/sdks/ios/guide/getting-started"},{"group":"Guide","pages":[{"title":"Create a wallet","href":"/sdks/ios/guide/create-a-wallet"},{"title":"Send tokens","href":"/sdks/ios/guide/send-tokens"},{"title":"Sign a transaction","href":"/sdks/ios/guide/sign-a-transaction"},{"title":"Idempotency keys","href":"/sdks/ios/guide/idempotency-keys"},{"title":"Evaluate a transaction","href":"/sdks/ios/guide/evaluate-a-transaction"},{"title":"Back up a wallet","href":"/sdks/ios/guide/back-up-a-wallet"},{"title":"Recover a wallet","href":"/sdks/ios/guide/recover-a-wallet"},{"title":"Cross-device sessions","href":"/sdks/ios/guide/cross-device-sessions"},{"title":"Manage wallet lifecycle states","href":"/sdks/ios/guide/manage-wallet-lifecycle-states"},{"title":"Client Auth","href":"/sdks/ios/guide/client-auth"},{"title":"Connect with WalletConnect","href":"/sdks/ios/guide/connect-with-walletconnect"},{"title":"Build a WebView","href":"/sdks/ios/guide/build-a-webview"},{"title":"Perform swaps (Deprecated)","href":"/sdks/ios/guide/perform-swaps"},{"title":"Add custom signature hooks","href":"/sdks/ios/guide/add-custom-signature-hooks"},{"title":"MPC progress callbacks","href":"/sdks/ios/guide/mpc-progress-callbacks"},{"title":"Portal API methods","href":"/sdks/ios/guide/portal-api-methods"},{"title":"Manage ERC20 tokens","href":"/sdks/ios/guide/manage-erc20-tokens"},{"title":"Eject a wallet","description":"The eject feature allows a user to construct private keys that can be imported into another wallet manager, such as MetaMask.","href":"/sdks/ios/guide/eject-a-wallet"},{"title":"Troubleshooting tips","href":"/sdks/ios/guide/troubleshooting-tips"},{"title":"Feature Flags","description":"Feature flags allow you to enable or disable specific features in the Portal SDK. This provides flexibility in customizing the behavior of the SDK for your application.","href":"/sdks/ios/guide/feature-flags"},{"title":"Configure log level","href":"/sdks/ios/guide/configure-log-level"},{"title":"Earn with Yield.xyz","href":"/sdks/ios/guide/yield-xyz"},{"title":"Bridge \u0026 Swap with Li.Fi","href":"/sdks/ios/guide/lifi"},{"title":"Swap Tokens with 0x","href":"/sdks/ios/guide/zerox"},{"title":"Enhance your wallets' security with Hypernative","href":"/sdks/ios/guide/hypernative"},{"title":"Enhance your wallets' security with Blockaid","href":"/sdks/ios/guide/blockaid"},{"title":"Manage Token Delegations","href":"/sdks/ios/guide/delegations"},{"title":"Upgrading to EIP-7702","href":"/sdks/ios/guide/evm-account-type"},{"title":"Noah virtual accounts and payouts","href":"/sdks/ios/guide/noah"},{"title":"Request tracing","href":"/sdks/ios/guide/request-tracing"}]},{"group":"Reference","pages":[{"title":"availableRecoveryMethods","href":"/sdks/ios/reference/availablerecoverymethods"},{"title":"backupWallet","href":"/sdks/ios/reference/backupwallet"},{"title":"buildEip155Transaction","href":"/sdks/ios/reference/buildeip155transaction"},{"title":"buildSolanaTransaction","href":"/sdks/ios/reference/buildsolanatransaction"},{"title":"clearSession","href":"/sdks/ios/reference/clearsession"},{"title":"createWallet","href":"/sdks/ios/reference/createwallet"},{"title":"approveAndSubmit","href":"/sdks/ios/reference/delegationsapproveandsubmit"},{"title":"revokeAndSubmit","href":"/sdks/ios/reference/delegationsrevokeandsubmit"},{"title":"setSignAndSendTransaction","href":"/sdks/ios/reference/delegationssetsignandsendtransaction"},{"title":"transferAndSubmit","href":"/sdks/ios/reference/delegationstransferandsubmit"},{"title":"doesWalletExist","href":"/sdks/ios/reference/doeswalletexist"},{"title":"ejectPrivateKeys","href":"/sdks/ios/reference/ejectprivatekeys"},{"title":"evaluateTransaction","href":"/sdks/ios/reference/evaluatetransaction"},{"title":"FirebaseStorage","href":"/sdks/ios/reference/firebasestorage"},{"title":"gDriveSignOut","href":"/sdks/ios/reference/gdrivesignout"},{"title":"generateIdempotencyKey","href":"/sdks/ios/reference/generateidempotencykey"},{"title":"generateTraceId","href":"/sdks/ios/reference/generatetraceid"},{"title":"getAddresses / getAddress","href":"/sdks/ios/reference/getaddresses"},{"title":"getAssets","href":"/sdks/ios/reference/getassets"},{"title":"getBalances","href":"/sdks/ios/reference/getbalances"},{"title":"getNftAssets","href":"/sdks/ios/reference/getnftassets"},{"title":"getTransactions","href":"/sdks/ios/reference/gettransactions"},{"title":"getWalletCapabilities","href":"/sdks/ios/reference/getwalletcapabilities"},{"title":"isWalletBackedUp","href":"/sdks/ios/reference/iswalletbackedup"},{"title":"isWalletOnDevice","href":"/sdks/ios/reference/iswalletondevice"},{"title":"isWalletRecoverable","href":"/sdks/ios/reference/iswalletrecoverable"},{"title":"pollStatus","href":"/sdks/ios/reference/lifipollstatus"},{"title":"tradeAsset","href":"/sdks/ios/reference/lifitradeasset"},{"title":"getPaymentMethods","href":"/sdks/ios/reference/noahgetpaymentmethods"},{"title":"getPayoutChannelForm","href":"/sdks/ios/reference/noahgetpayoutchannelform"},{"title":"getPayoutChannels","href":"/sdks/ios/reference/noahgetpayoutchannels"},{"title":"getPayoutCountries","href":"/sdks/ios/reference/noahgetpayoutcountries"},{"title":"getPayoutQuote","href":"/sdks/ios/reference/noahgetpayoutquote"},{"title":"initiateKyc","href":"/sdks/ios/reference/noahinitiatekyc"},{"title":"initiatePayin","href":"/sdks/ios/reference/noahinitiatepayin"},{"title":"initiatePayout","href":"/sdks/ios/reference/noahinitiatepayout"},{"title":"simulatePayin","href":"/sdks/ios/reference/noahsimulatepayin"},{"title":"onSessionInvalidated","href":"/sdks/ios/reference/onsessioninvalidated"},{"title":"PortalAuth","href":"/sdks/ios/reference/portalauth"},{"title":"clearPersistedSession","href":"/sdks/ios/reference/portalauthclearpersistedsession"},{"title":"getMethods","href":"/sdks/ios/reference/portalauthgetmethods"},{"title":"handleRedirect","href":"/sdks/ios/reference/portalauthhandleredirect"},{"title":"loginWithApple","href":"/sdks/ios/reference/portalauthloginwithapple"},{"title":"loginWithGoogle","href":"/sdks/ios/reference/portalauthloginwithgoogle"},{"title":"restoreSession","href":"/sdks/ios/reference/portalauthrestoresession"},{"title":"sendMagicLink","href":"/sdks/ios/reference/portalauthsendmagiclink"},{"title":"signInWithApple","href":"/sdks/ios/reference/portalauthsigninwithapple"},{"title":"signInWithGoogle","href":"/sdks/ios/reference/portalauthsigninwithgoogle"},{"title":"verifyTotp","href":"/sdks/ios/reference/portalauthverifytotp"},{"title":"recoverWallet","href":"/sdks/ios/reference/recoverwallet"},{"title":"registerBackupMethod","href":"/sdks/ios/reference/registerbackupmethod"},{"title":"sendSol","href":"/sdks/ios/reference/sendsol"},{"title":"setGDriveConfiguration","href":"/sdks/ios/reference/setgdriveconfiguration"},{"title":"setLogLevel","href":"/sdks/ios/reference/setloglevel"},{"title":"setPasskeyAuthenticationAnchor","href":"/sdks/ios/reference/setpasskeyauthenticationanchor"},{"title":"setPasskeyConfiguration","href":"/sdks/ios/reference/setpasskeyconfiguration"},{"title":"setPassword","href":"/sdks/ios/reference/setpassword"},{"title":"deposit","href":"/sdks/ios/reference/yielddeposit"},{"title":"getValidators","href":"/sdks/ios/reference/yieldgetvalidators"},{"title":"withdraw","href":"/sdks/ios/reference/yieldwithdraw"}]}]},{"group":"React Native","pages":[{"title":"Getting Started","href":"/sdks/react-native/guide/getting-started"},{"group":"Guide","pages":[{"title":"Create a wallet","href":"/sdks/react-native/guide/create-a-wallet"},{"title":"Send tokens","href":"/sdks/react-native/guide/send-tokens"},{"title":"Sign a transaction","href":"/sdks/react-native/guide/sign-a-transaction"},{"title":"Idempotency keys","href":"/sdks/react-native/guide/idempotency-keys"},{"title":"Evaluate a transaction","href":"/sdks/react-native/guide/evaluate-a-transaction"},{"title":"Back up a wallet","href":"/sdks/react-native/guide/back-up-a-wallet"},{"title":"Recover a wallet","href":"/sdks/react-native/guide/recover-a-wallet"},{"title":"Cross-device sessions","href":"/sdks/react-native/guide/cross-device-sessions"},{"title":"Manage wallet lifecycle states","href":"/sdks/react-native/guide/manage-wallet-lifecycle-states"},{"title":"Client Auth","href":"/sdks/react-native/guide/client-auth"},{"title":"Connect with WalletConnect","href":"/sdks/react-native/guide/connect-with-walletconnect"},{"title":"Build a WebView","href":"/sdks/react-native/guide/build-a-webview"},{"title":"Perform swaps","href":"/sdks/react-native/guide/perform-swaps"},{"title":"Add custom signature hooks","href":"/sdks/react-native/guide/add-custom-signature-hooks"},{"title":"MPC progress callbacks","href":"/sdks/react-native/guide/mpc-progress-callbacks"},{"title":"Portal API methods","href":"/sdks/react-native/guide/portal-api-methods"},{"title":"Logging Configuration","href":"/sdks/react-native/guide/logging"},{"title":"Feature flags","href":"/sdks/react-native/guide/feature-flags"},{"title":"Eject a wallet","href":"/sdks/react-native/guide/eject-a-wallet"},{"title":"Manage Token Delegations","href":"/sdks/react-native/guide/delegations"},{"title":"Upgrading to EIP-7702","href":"/sdks/react-native/guide/evm-account-type"},{"title":"Enhance your wallets' security with Blockaid","href":"/sdks/react-native/guide/blockaid"},{"title":"Enhance your wallets' security with Hypernative","href":"/sdks/react-native/guide/hypernative"},{"title":"Swap Tokens with 0x","href":"/sdks/react-native/guide/zerox"},{"title":"Bridge \u0026 Swap with Li.Fi","href":"/sdks/react-native/guide/lifi"},{"title":"Noah virtual accounts and payouts","href":"/sdks/react-native/guide/noah"},{"title":"Meld buy, sell, and transfer","href":"/sdks/react-native/guide/meld"},{"title":"Earn with Yield.xyz","href":"/sdks/react-native/guide/yield-xyz"},{"title":"Lend and borrow with Yield.xyz","href":"/sdks/react-native/guide/yield-xyz-borrow"},{"title":"Trade perps with Yield.xyz","href":"/sdks/react-native/guide/yield-xyz-perps"},{"title":"Batch user operations","href":"/sdks/react-native/guide/batch-user-operations"}]},{"group":"Reference","pages":[{"title":"@portal-hq/core","href":"/sdks/react-native/reference/core"},{"title":"@portal-hq/firebase-storage","href":"/sdks/react-native/reference/firebase-storage"},{"title":"@portal-hq/gdrive-storage","href":"/sdks/react-native/reference/gdrive-storage"},{"title":"@portal-hq/icloud-storage","href":"/sdks/react-native/reference/icloud-storage"},{"title":"@portal-hq/keychain","href":"/sdks/react-native/reference/keychain"}]}]},{"group":"Flutter","pages":[{"title":"Getting Started","href":"/sdks/flutter/guide/getting-started"},{"group":"Guide","pages":[{"title":"Create a wallet","href":"/sdks/flutter/guide/create-a-wallet"},{"title":"Send tokens","href":"/sdks/flutter/guide/send-tokens"},{"title":"Sign a transaction","href":"/sdks/flutter/guide/sign-a-transaction"},{"title":"Idempotency keys","href":"/sdks/flutter/guide/idempotency-keys"},{"title":"Sign a user operation","href":"/sdks/flutter/guide/sign-a-user-operation"},{"title":"Evaluate a transaction","href":"/sdks/flutter/guide/evaluate-a-transaction"},{"title":"Back up a wallet","href":"/sdks/flutter/guide/back-up-a-wallet"},{"title":"Recover a wallet","href":"/sdks/flutter/guide/recover-a-wallet"},{"title":"Client Auth","href":"/sdks/flutter/guide/client-auth"},{"title":"Perform swaps","href":"/sdks/flutter/guide/perform-swaps"},{"title":"Eject a wallet","href":"/sdks/flutter/guide/eject-a-wallet"},{"title":"Earn with Yield.xyz","href":"/sdks/flutter/guide/yield-xyz"},{"title":"Manage Token Delegations","href":"/sdks/flutter/guide/delegations"},{"title":"Bridge \u0026 Swap with Li.Fi","href":"/sdks/flutter/guide/lifi"},{"title":"Swap Tokens with 0x","href":"/sdks/flutter/guide/zerox"},{"title":"Noah virtual accounts and payouts","href":"/sdks/flutter/guide/noah"},{"title":"Upgrading to EIP-7702","href":"/sdks/flutter/guide/evm-account-type"},{"title":"Enhance your wallets' security with Blockaid","href":"/sdks/flutter/guide/blockaid"},{"title":"Enhance your wallets' security with Hypernative","href":"/sdks/flutter/guide/hypernative"},{"title":"Subscribe to Portal events","href":"/sdks/flutter/guide/events"},{"title":"Configure log level","href":"/sdks/flutter/guide/configure-log-level"},{"title":"Feature flags","href":"/sdks/flutter/guide/feature-flags"}]},{"group":"Native Platform Channels","pages":[{"title":"Native Platform Channels (iOS)","href":"/sdks/flutter/guide/ios"},{"title":"Native Platform Channels (Android)","href":"/sdks/flutter/guide/android"}]},{"group":"Reference","pages":[{"title":"createWallet","href":"/sdks/flutter/reference/createwallet"},{"title":"backupWallet","href":"/sdks/flutter/reference/backupwallet"},{"title":"recoverWallet","href":"/sdks/flutter/reference/recoverwallet"},{"title":"getAddresses / getAddress","href":"/sdks/flutter/reference/getaddresses"},{"title":"sendAsset","href":"/sdks/flutter/reference/sendasset"},{"title":"sendTransaction","href":"/sdks/flutter/reference/sendtransaction"},{"title":"buildEip155Transaction","href":"/sdks/flutter/reference/buildeip155transaction"},{"title":"buildSolanaTransaction","href":"/sdks/flutter/reference/buildsolanatransaction"},{"title":"buildBitcoinP2wpkhTransaction","href":"/sdks/flutter/reference/buildbitcoinp2wpkhtransaction"},{"title":"broadcastBitcoinP2wpkhTransaction","href":"/sdks/flutter/reference/broadcastbitcoinp2wpkhtransaction"},{"title":"signMessage","href":"/sdks/flutter/reference/signmessage"},{"title":"signTypedData","href":"/sdks/flutter/reference/signtypeddata"},{"title":"rawSign","href":"/sdks/flutter/reference/rawsign"},{"title":"request","href":"/sdks/flutter/reference/request"},{"title":"generateIdempotencyKey","href":"/sdks/flutter/reference/generateidempotencykey"},{"title":"eth_signUserOperation","href":"/sdks/flutter/reference/eth_signuseroperation"},{"title":"swap","href":"/sdks/flutter/reference/swap"},{"title":"evaluateTransaction","href":"/sdks/flutter/reference/evaluatetransaction"},{"title":"ejectPrivateKeys","href":"/sdks/flutter/reference/ejectprivatekeys"},{"title":"getAssets","href":"/sdks/flutter/reference/getassets"},{"title":"getBalances","href":"/sdks/flutter/reference/getbalances"},{"title":"getNftAssets","href":"/sdks/flutter/reference/getnftassets"},{"title":"getTransactions","href":"/sdks/flutter/reference/gettransactions"},{"title":"getTransactionDetails","href":"/sdks/flutter/reference/gettransactiondetails"},{"title":"doesWalletExist","href":"/sdks/flutter/reference/doeswalletexist"},{"title":"isWalletBackedUp","href":"/sdks/flutter/reference/iswalletbackedup"},{"title":"isWalletOnDevice","href":"/sdks/flutter/reference/iswalletondevice"},{"title":"isWalletRecoverable","href":"/sdks/flutter/reference/iswalletrecoverable"},{"title":"availableRecoveryMethods","href":"/sdks/flutter/reference/availablerecoverymethods"},{"title":"setPassword","href":"/sdks/flutter/reference/setpassword"},{"title":"setLogLevel","href":"/sdks/flutter/reference/setloglevel"},{"title":"configureGoogleStorage","href":"/sdks/flutter/reference/configuregooglestorage"},{"title":"configurePasskeyStorage","href":"/sdks/flutter/reference/configurepasskeystorage"},{"title":"configureICloudStorage","href":"/sdks/flutter/reference/configureicloud"},{"title":"configureFirebaseStorage","href":"/sdks/flutter/reference/configurefirebasestorage"},{"title":"receiveTestnetAsset","href":"/sdks/flutter/reference/receivetestnetasset"},{"title":"getClient","href":"/sdks/flutter/reference/getclient"},{"title":"deleteKeychain","href":"/sdks/flutter/reference/deletekeychain"},{"title":"PortalAuth","href":"/sdks/flutter/reference/portalauth"},{"title":"configure","href":"/sdks/flutter/reference/portalauthconfigure"},{"title":"getMethods","href":"/sdks/flutter/reference/portalauthgetmethods"},{"title":"sendMagicLink","href":"/sdks/flutter/reference/portalauthsendmagiclink"},{"title":"loginWithGoogle","href":"/sdks/flutter/reference/portalauthloginwithgoogle"},{"title":"loginWithApple","href":"/sdks/flutter/reference/portalauthloginwithapple"},{"title":"handleRedirect","href":"/sdks/flutter/reference/portalauthhandleredirect"},{"title":"verifyTotp","href":"/sdks/flutter/reference/portalauthverifytotp"},{"title":"restoreSession","href":"/sdks/flutter/reference/portalauthrestoresession"},{"title":"clearPersistedSession","href":"/sdks/flutter/reference/portalauthclearpersistedsession"},{"title":"clearSession","href":"/sdks/flutter/reference/clearsession"},{"title":"onSessionInvalidated","href":"/sdks/flutter/reference/onsessioninvalidated"},{"title":"delegations.approve","href":"/sdks/flutter/reference/delegations-approve"},{"title":"delegations.revoke","href":"/sdks/flutter/reference/delegations-revoke"},{"title":"delegations.getStatus","href":"/sdks/flutter/reference/delegations-getstatus"},{"title":"delegations.transferFrom","href":"/sdks/flutter/reference/delegations-transferfrom"},{"title":"delegations.approveAndSubmit","href":"/sdks/flutter/reference/delegations-approveandsubmit"},{"title":"delegations.revokeAndSubmit","href":"/sdks/flutter/reference/delegations-revokeandsubmit"},{"title":"delegations.transferAndSubmit","href":"/sdks/flutter/reference/delegations-transferandsubmit"},{"title":"ramps.noah.getPaymentMethods","href":"/sdks/flutter/reference/noah-getpaymentmethods"},{"title":"ramps.noah.getPayoutChannelForm","href":"/sdks/flutter/reference/noah-getpayoutchannelform"},{"title":"ramps.noah.getPayoutChannels","href":"/sdks/flutter/reference/noah-getpayoutchannels"},{"title":"ramps.noah.getPayoutCountries","href":"/sdks/flutter/reference/noah-getpayoutcountries"},{"title":"ramps.noah.getPayoutQuote","href":"/sdks/flutter/reference/noah-getpayoutquote"},{"title":"ramps.noah.initiateKyc","href":"/sdks/flutter/reference/noah-initiatekyc"},{"title":"ramps.noah.initiatePayin","href":"/sdks/flutter/reference/noah-initiatepayin"},{"title":"ramps.noah.initiatePayout","href":"/sdks/flutter/reference/noah-initiatepayout"},{"title":"ramps.noah.simulatePayin","href":"/sdks/flutter/reference/noah-simulatepayin"},{"title":"yieldIntegrations.yieldxyz.discover","href":"/sdks/flutter/reference/yield-discover"},{"title":"yieldIntegrations.yieldxyz.enter","href":"/sdks/flutter/reference/yield-enter"},{"title":"yieldIntegrations.yieldxyz.exit","href":"/sdks/flutter/reference/yield-exit"},{"title":"yieldIntegrations.yieldxyz.manage","href":"/sdks/flutter/reference/yield-manage"},{"title":"yieldIntegrations.yieldxyz.getBalances","href":"/sdks/flutter/reference/yield-getbalances"},{"title":"yieldIntegrations.yieldxyz.getHistoricalActions","href":"/sdks/flutter/reference/yield-gethistoricalactions"},{"title":"yieldIntegrations.yieldxyz.getTransaction","href":"/sdks/flutter/reference/yield-gettransaction"},{"title":"yieldIntegrations.yieldxyz.track","href":"/sdks/flutter/reference/yield-track"}]}]}]},{"group":"APIs","pages":[{"group":"Enclave MPC API","pages":[{"title":"Getting Started","href":"/apis/enclave-mpc/guide/getting-started"},{"group":"Guide","pages":[{"title":"Create a client","href":"/apis/enclave-mpc/guide/create-a-client"},{"title":null,"href":"/apis/enclave-mpc/guide/create-a-wallet"},{"title":"Send tokens","href":"/apis/enclave-mpc/guide/send-tokens"},{"title":"Sign Ethereum transactions","href":"/apis/enclave-mpc/guide/sign-ethereum-transactions"},{"title":"Sign Solana transactions","href":"/apis/enclave-mpc/guide/sign-solana-transactions"},{"title":"Sign Stellar transactions","href":"/apis/enclave-mpc/guide/sign-stellar-transactions"},{"title":"Sign Tron transactions","href":"/apis/enclave-mpc/guide/sign-tron-transactions"},{"title":"Concurrent Transactions","href":"/apis/enclave-mpc/guide/concurrent-transactions"},{"title":"Presignatures","href":"/apis/enclave-mpc/guide/presignatures"},{"title":"Back up a wallet","href":"/apis/enclave-mpc/guide/backup"},{"title":null,"href":"/apis/enclave-mpc/guide/eject-a-wallet"},{"title":"Manage Token Delegations","href":"/apis/enclave-mpc/guide/delegations"},{"title":"Earn with Yield.xyz","href":"/apis/enclave-mpc/guide/yield-xyz"},{"title":"Lend and borrow with Yield.xyz","href":"/apis/enclave-mpc/guide/yield-xyz-borrow"},{"title":"Trade perps with Yield.xyz","href":"/apis/enclave-mpc/guide/yield-xyz-perps"},{"title":"Bridge \u0026 Swap with Li.Fi","href":"/apis/enclave-mpc/guide/lifi"},{"title":"Move USDC with CCTP","href":"/apis/enclave-mpc/guide/cctp"},{"title":"Cross-Chain Swap with 0x","href":"/apis/enclave-mpc/guide/zerox-cross-chain"}]},{"title":"API Reference","href":"/apis/enclave-mpc/api-reference-link"}]},{"group":"Client API","pages":[{"title":"API Reference","href":"/apis/client/api-reference-link"}]},{"group":"Authentication API","pages":[{"title":"API Reference","href":"/apis/authentication/api-reference-link"}]},{"group":"Custodian API","pages":[{"title":"API Reference","href":"/apis/custodian/api-reference-link"}]},{"group":"Reseller API","pages":[{"title":"Getting Started","href":"/apis/reseller/guide/getting-started"},{"title":"API Reference","href":"/apis/reseller/api-reference-link"}]}]},{"group":"Integrations","pages":[{"title":"Integrations Overview","href":"/integrations/index"},{"group":"On / Off Ramp","pages":[{"group":"Due","pages":[{"title":"Overview","href":"/integrations/On-Off-Ramp/due"},{"title":"KYC onboarding","href":"/integrations/On-Off-Ramp/due-kyc"},{"title":"Payins","href":"/integrations/On-Off-Ramp/due-payins"},{"title":"Payouts","href":"/integrations/On-Off-Ramp/due-payouts"},{"title":"Virtual accounts","href":"/integrations/On-Off-Ramp/due-virtual-accounts"},{"title":"Application fees","href":"/integrations/On-Off-Ramp/due-fees"},{"title":"Webhooks","href":"/integrations/On-Off-Ramp/due-webhooks"}]},{"group":"Noah","pages":[{"title":"Overview","href":"/integrations/On-Off-Ramp/noah"},{"title":"KYC Onboarding","href":"/integrations/On-Off-Ramp/noah-kyc"},{"title":"Payins","href":"/integrations/On-Off-Ramp/noah-payins"},{"title":"Payouts","href":"/integrations/On-Off-Ramp/noah-payouts"},{"title":"Webhooks","href":"/integrations/On-Off-Ramp/noah-webhooks"}]},{"group":"Meld","pages":[{"title":"Overview","href":"/integrations/On-Off-Ramp/meld"},{"title":"White-Label API","href":"/integrations/On-Off-Ramp/meld-widget"},{"title":"Webhooks","href":"/integrations/On-Off-Ramp/meld-webhooks"}]}]},{"group":"Security","pages":[{"title":"Blockaid","href":"/integrations/Security/blockaid"},{"title":"Hypernative","href":"/integrations/Security/hypernative"}]},{"group":"Trading","pages":[{"title":"Agg by Snag","href":"/integrations/Trading/agg"},{"title":"0x","href":"/integrations/Trading/zerox"},{"title":"Li.Fi","href":"/integrations/Trading/lifi"},{"title":"CCTP","href":"/integrations/Trading/cctp"}]},{"group":"Yield","pages":[{"title":"Yield.xyz","href":"/integrations/Yield/yield-xyz"},{"title":"Yield.xyz Borrow","href":"/integrations/Yield/yield-xyz-borrow"},{"title":"Yield.xyz Perps","href":"/integrations/Yield/yield-xyz-perps"}]}]},{"group":"Resources","pages":[{"title":"Chain support","href":"/resources/blockchain-support"},{"title":"API Keys","href":"/resources/api-keys"},{"group":"Core Concepts","pages":[{"title":"Portal's MPC architecture","href":"/resources/portals-mpc-architecture"},{"title":"Wallet lifecycle","href":"/resources/wallet-lifecycle"},{"group":"Backup Options","pages":[{"title":"GDrive","href":"/resources/backup-options/gdrive"},{"title":"iCloud","href":"/resources/backup-options/icloud"},{"title":"Passkey + Enclave","href":"/resources/backup-options/passkey-+-enclave"},{"title":"Password/PIN","href":"/resources/backup-options/password-pin"},{"title":"Firebase Auth Backup","href":"/resources/backup-options/firebase-byo-auth"}]},{"title":"Rate Limits","href":"/resources/rate-limits"},{"title":"Idempotency Keys","href":"/resources/idempotency-keys"},{"title":"Error Codes","href":"/resources/error-codes"}]},{"group":"Authentication","pages":[{"title":"Overview","href":"/resources/authentication/overview"},{"title":"Enable authentication","href":"/resources/authentication/enable-authentication"},{"title":"Redirect URLs","href":"/resources/authentication/redirect-urls"},{"title":"Email magic links","href":"/resources/authentication/email-magic-links"},{"title":"Google OAuth","href":"/resources/authentication/google-oauth"},{"title":"Apple OAuth","href":"/resources/authentication/apple-oauth"},{"title":"Two-factor authentication","href":"/resources/authentication/two-factor-authentication"},{"title":"End users","href":"/resources/authentication/end-users"}]},{"group":"Security","pages":[{"title":"Security","href":"/resources/security"},{"title":"Single Sign-On (SSO)","href":"/resources/single-sign-on"},{"title":"Eject","href":"/resources/eject"},{"title":"Security firewall","href":"/resources/firewall"},{"title":"Policies","href":"/resources/policies"}]},{"group":"Additional Features","pages":[{"title":"Account abstraction","href":"/resources/account-abstraction"},{"title":"Agentic wallets","href":"/resources/agentic-wallets"},{"title":"Delegations","href":"/resources/delegations"},{"title":"Fee collectors","href":"/resources/fee-collectors"},{"title":"Presignatures","href":"/resources/presignatures"},{"title":"Pre-Generated Wallets","href":"/resources/pre-generated-wallets"},{"title":"Upgrading to EIP-7702","href":"/resources/evmAccountType"},{"title":"WalletConnect metadata","href":"/resources/walletconnect-metadata"}]},{"group":"Webhooks","pages":[{"title":"Webhooks","href":"/resources/webhooks"},{"group":"Flow control hooks","pages":[{"title":"Flow control hooks","href":"/resources/flow-control-hooks/overview"},{"title":"Set up flow control hooks","href":"/resources/flow-control-hooks/set-up"}]},{"group":"Informational webhooks","pages":[{"title":"Informational webhooks","href":"/resources/informational-webhooks/overview"},{"title":"Set up informational webhooks","href":"/resources/informational-webhooks/set-up"},{"title":"Informational webhook events","href":"/resources/informational-webhooks/events"}]}]},{"group":"Additional Resources","pages":[{"title":"Going to Production","href":"/resources/going-to-production"},{"title":"Testnet faucets","href":"/resources/testnet-faucets"},{"title":"Chain ID formatting","href":"/resources/chain-id-formatting"},{"title":"RPC endpoints","href":"/resources/rpc-endpoints"},{"title":"Glossary","href":"/resources/glossary"},{"group":"Migration Guides","pages":[{"title":"Migrating from legacy Solana webhook events","href":"/resources/migrating-from-solana-legacy-webhooks"}]}]},{"group":"Hackathon Hub","pages":[{"title":"Overview","href":"/resources/hackathon-hub"},{"group":"Hackathons","pages":[{"title":"Mobil3 Hackathon","href":"/resources/hackathons/mobil3"}]}]}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/apis/api-reference-overview"}]}]},"basePath":"","title":"Troubleshooting tips - Portal","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}