# Portal: Documentation

> Portal is a key management platform for stablecoin companies. Create wallets, send and receive funds on-chain - all in a day.

## Documentation

### Getting Started

- [Introduction](https://docs.portalhq.io/index.md): Build blockchain-enabled products rapidly with Portal's SDKs, REST APIs, and more.
- [SDK Quickstart](https://docs.portalhq.io/sdks/quickstart.md): This quick start guide will get you up and running with any of the Portal SDKs.
- [API Quickstart](https://docs.portalhq.io/apis/quickstart.md): This quick start guide will get you up and running with the Portal MPC API.

### SDKs

#### Web

- [Getting Started](https://docs.portalhq.io/sdks/web/guide/getting-started.md): Follow this guide to integrate Portal in your web app.
- [Reference](https://docs.portalhq.io/sdks/web/reference.md): Read the reference documentation for the Portal Web SDK.

##### Guide

- [Create a wallet](https://docs.portalhq.io/sdks/web/guide/create-a-wallet.md): The first step to the MPC process is generating key shares, or a wallet, for your users.
- [Send tokens](https://docs.portalhq.io/sdks/web/guide/send-tokens.md): Here's exactly how you can send tokens from your Portal wallet to another address.
- [Sign a transaction](https://docs.portalhq.io/sdks/web/guide/sign-a-transaction.md): Easily use our EIP-1193 provider or custom built functions to make sending and signing transactions easier!
- [Simulate a transaction](https://docs.portalhq.io/sdks/web/guide/simulate-a-transaction.md): Before committing to a transaction, it's often useful to simulate its outcome to understand the potential changes and detect any errors preemptively.
- [Back up a wallet](https://docs.portalhq.io/sdks/web/guide/back-up-a-wallet.md): This guide will walk you through how to create a backup of a Portal client's wallet.
- [Recover a wallet](https://docs.portalhq.io/sdks/web/guide/recover-a-wallet.md): This guide will walk you through how to use your users' backups to recover their wallet.
- [Cross-device sessions](https://docs.portalhq.io/sdks/web/guide/cross-device-sessions.md): Use wallet provisioning to enable your users to create multiple signing shares across their devices.
- [Manage wallet lifecycle states](https://docs.portalhq.io/sdks/web/guide/manage-wallet-lifecycle-states.md): Users can have multiple states in their wallet lifecycle: having a wallet, having wallet backups, having certain recovery methods available, and more.
- [Handle storage loss](https://docs.portalhq.io/sdks/web/guide/handle-storage-loss.md): Detect and respond when a user's wallet signing share is no longer in device storage.
- [Web authentication methods](https://docs.portalhq.io/sdks/web/guide/web-authentication-methods.md): The Portal Web SDK offers various approaches to authenticating. The main reason for this is to allow you to strike the right balance between integration time and security.
- [Client Auth](https://docs.portalhq.io/sdks/web/guide/client-auth.md): Let Portal sign your end users in, without a Client Session Token ever reaching your page.
- [Add custom signature hooks](https://docs.portalhq.io/sdks/web/guide/add-custom-signature-hooks.md): This guide will help you configure custom signature hooks for requests to the Portal Provider to ensure your business logic is properly implemented into Portal's signing flow.
- [MPC progress callbacks](https://docs.portalhq.io/sdks/web/guide/mpc-progress-callbacks.md): This section describes how to check in on the status of each MPC operation
- [Portal API methods](https://docs.portalhq.io/sdks/web/guide/portal-api-methods.md): Portal API's convenient helper methods are designed to streamline data retrieval from the Portal REST API.
- [Configure a custom subdomain](https://docs.portalhq.io/sdks/web/guide/configure-a-custom-subdomain.md): Run the Portal Web SDK on a subdomain of your application so it works in browsers that block third-party cookies.
- [Logging Configuration](https://docs.portalhq.io/sdks/web/guide/logging.md): Configure logging for Portal SDK operations in the Web SDK with log levels and custom loggers.
- [Feature flags](https://docs.portalhq.io/sdks/web/guide/feature-flags.md): Enable or disable specific SDK behaviors using feature flags when initializing Portal.
- [Eject a wallet](https://docs.portalhq.io/sdks/web/guide/eject-a-wallet.md): The eject feature allows a user to construct a private key that can be imported into another wallet manager, such as MetaMask.
- [Using the EIP-1193 Provider](https://docs.portalhq.io/sdks/web/guide/using-the-eip-1193-provider.md): portal.provider is compliant with the EIP-1193 specification and can be used with libraries like ethers.js and web3.js. This guide will walk you through using portal.provider with ethers.js.
- [Enhance your wallet security with Blockaid](https://docs.portalhq.io/sdks/web/guide/blockaid.md): Learn how to integrate real-time transaction, address, token, and URL security scanning using Portal's Web SDK with Blockaid.
- [Security Scanning with Hypernative](https://docs.portalhq.io/sdks/web/guide/hypernative.md): Learn how to integrate real-time security scanning for transactions, addresses, tokens, NFTs, and URLs using Portal's Web SDK with Hypernative.
- [Swap Tokens with 0x](https://docs.portalhq.io/sdks/web/guide/zero-x.md): Learn how to swap tokens using Portal's Web SDK with 0x integration.
- [Bridge & Swap with Li.Fi](https://docs.portalhq.io/sdks/web/guide/lifi.md): Learn how to bridge and swap tokens across multiple chains using Portal's Web SDK with Li.Fi integration.
- [Noah virtual accounts and payouts](https://docs.portalhq.io/sdks/web/guide/noah.md): Use portal.ramps.noah in the Web SDK for Noah KYC, payins, payouts, and quotes via the Portal iframe and Client API.
- [Meld buy, sell, and transfer](https://docs.portalhq.io/sdks/web/guide/meld.md): Use portal.ramps.meld in the Web SDK to embed Meld buy, sell, and transfer sessions via the Portal iframe and Client API.
- [Earn with Yield.xyz](https://docs.portalhq.io/sdks/web/guide/yield-xyz.md): Learn how to discover, enter, manage, and exit yield opportunities.
- [Upgrading to EIP-7702](https://docs.portalhq.io/sdks/web/guide/evm-account-type.md): Learn how to check wallet account type and upgrade EOA wallets to EIP-7702 using Portal's Web SDK.
- [Manage Token Delegations](https://docs.portalhq.io/sdks/web/guide/delegations.md): Learn how to approve, revoke, and manage token delegations using Portal's Web SDK.
- [Batch user operations](https://docs.portalhq.io/sdks/web/guide/batch-user-operations.md): Build, sign, and broadcast ERC-4337 batch UserOperations with the Web SDK.

#### Android

- [Getting Started](https://docs.portalhq.io/sdks/android/guide/getting-started.md): Follow this guide to integrate Portal in your Android app.
- [Reference](https://docs.portalhq.io/sdks/android/reference.md): Read the reference documentation for the Portal Android SDK.

##### Guide

- [Create a wallet](https://docs.portalhq.io/sdks/android/guide/create-a-wallet.md): This guide will walk you through how to create a wallet using the Portal Android SDK.
- [Send tokens](https://docs.portalhq.io/sdks/android/guide/send-tokens.md): This guide will walk you through how to send tokens from your Portal wallet to another address.
- [Sign a transaction](https://docs.portalhq.io/sdks/android/guide/sign-a-transaction.md): This guide will walk you through how to sign a transaction using the Portal Android SDK.
- [Idempotency keys](https://docs.portalhq.io/sdks/android/guide/idempotency-keys.md): Retry a transaction send safely: while Portal remembers an idempotency key, it broadcasts that key at most once.
- [Evaluate a transaction](https://docs.portalhq.io/sdks/android/guide/evaluate-a-transaction.md): Before committing to a transaction, it's often useful to simulate its outcome to understand the potential changes and detect any errors preemptively.
- [Back up a wallet](https://docs.portalhq.io/sdks/android/guide/back-up-a-wallet.md): This guide will walk you through how to create a backup of a Portal client's wallet.
- [Recover a wallet](https://docs.portalhq.io/sdks/android/guide/recover-a-wallet.md): This guide will walk you through how to use your users' backups to recover their wallet.
- [Cross-device sessions](https://docs.portalhq.io/sdks/android/guide/cross-device-sessions.md): This guide will walk you through how to use wallet provisioning to enable your users to create multiple signing shares across their devices.
- [Manage wallet lifecycle states](https://docs.portalhq.io/sdks/android/guide/manage-wallet-lifecycle-states.md): This guide will walk you through how to manage your users' wallet lifecycle states.
- [Client Auth](https://docs.portalhq.io/sdks/android/guide/client-auth.md): Sign your end users in with Portal and initialize the SDK from the resulting session, with no Client Session Token from your backend.
- [Connect with WalletConnect](https://docs.portalhq.io/sdks/android/guide/connect-with-walletconnect.md): Portal Connect allows you to connect your Portal MPC Wallet to any dApp that supports WalletConnect without extra dependency bloat.
- [Build a WebView](https://docs.portalhq.io/sdks/android/guide/build-a-webview.md): This guide will walk you through how to build a WebView to interact with dApps using the Portal wallet.
- [Perform swaps](https://docs.portalhq.io/sdks/android/guide/perform-swaps.md): This guide will walk you through how to perform swaps with Portal's Android SDK.
- [Add custom signature hooks](https://docs.portalhq.io/sdks/android/guide/add-custom-signature-hooks.md): This guide will help you configure custom signature hooks for requests to the Portal Provider to ensure your business logic is properly implemented into Portal's signing flow.
- [MPC progress callbacks](https://docs.portalhq.io/sdks/android/guide/mpc-progress-callbacks.md): This section describes how to check in on the status of each MPC operation
- [Portal API methods](https://docs.portalhq.io/sdks/android/guide/portal-api-methods.md): Portal API's convenient helper methods are designed to streamline data retrieval from the Portal REST API.
- [Eject a wallet](https://docs.portalhq.io/sdks/android/guide/eject-a-wallet.md): This guide will walk you through how to eject a wallet using the Portal Android SDK.
- [Enhance your wallets' security with Blockaid](https://docs.portalhq.io/sdks/android/guide/blockaid.md): Learn how to integrate real-time transaction, address, token, and URL security scanning using Portal's Android SDK with Blockaid.
- [Enhance your wallets' security with Hypernative](https://docs.portalhq.io/sdks/android/guide/hypernative.md): Learn how to integrate real-time security scanning for transactions, addresses, tokens, NFTs, and URLs using Portal's Android SDK with Hypernative.
- [Swap Tokens with 0x](https://docs.portalhq.io/sdks/android/guide/zerox.md): Learn how to swap tokens using Portal's Android SDK with 0x integration.
- [Bridge & Swap with Li.Fi](https://docs.portalhq.io/sdks/android/guide/lifi.md): Learn how to bridge and swap tokens across multiple chains using Portal's Android SDK with Li.Fi integration.
- [Earn with Yield.xyz](https://docs.portalhq.io/sdks/android/guide/yield-xyz.md): Learn how to discover, enter, manage, and exit yield opportunities.
- [Manage Token Delegations](https://docs.portalhq.io/sdks/android/guide/delegations.md): Learn how to approve, revoke, and manage token delegations using Portal's Android SDK.
- [Upgrading to EIP-7702](https://docs.portalhq.io/sdks/android/guide/evm-account-type.md): Learn how to check wallet account type and upgrade EOA wallets to EIP-7702 using Portal's Android SDK.
- [Error handling](https://docs.portalhq.io/sdks/android/guide/error-handling.md): Handle structured exceptions thrown by the Portal Android SDK using the PortalException hierarchy.
- [Feature Flags](https://docs.portalhq.io/sdks/android/guide/feature-flags.md): 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.
- [Configure log level](https://docs.portalhq.io/sdks/android/guide/configure-log-level.md): Control the verbosity of SDK log output at runtime using PortalLogLevel.
- [Noah virtual accounts and payouts](https://docs.portalhq.io/sdks/android/guide/noah.md): Use portal.ramps.noah in the Android SDK for Noah KYC, payins, payouts, and quotes through the Portal Client API.
- [Request tracing](https://docs.portalhq.io/sdks/android/guide/request-tracing.md): Correlate Portal SDK requests with your own logs using the X-Portal-Trace-Id header.

#### iOS

- [Getting Started](https://docs.portalhq.io/sdks/ios/guide/getting-started.md): Follow this guide to integrate Portal in your iOS app.

##### Guide

- [Create a wallet](https://docs.portalhq.io/sdks/ios/guide/create-a-wallet.md): Once you have a Portal instance, you can now create a wallet for your user.
- [Send tokens](https://docs.portalhq.io/sdks/ios/guide/send-tokens.md): Here's exactly how you can send tokens from your Portal wallet to another address.
- [Sign a transaction](https://docs.portalhq.io/sdks/ios/guide/sign-a-transaction.md): This example shows how the Portal Provider interacts with the blockchain.
- [Idempotency keys](https://docs.portalhq.io/sdks/ios/guide/idempotency-keys.md): Retry a transaction send safely: while Portal remembers an idempotency key, it broadcasts that key at most once.
- [Evaluate a transaction](https://docs.portalhq.io/sdks/ios/guide/evaluate-a-transaction.md): Before committing to a transaction, it's often useful to simulate its outcome to understand the potential changes and detect any errors preemptively.
- [Back up a wallet](https://docs.portalhq.io/sdks/ios/guide/back-up-a-wallet.md): This guide will walk you through how to create a backup of a Portal client's wallet.
- [Recover a wallet](https://docs.portalhq.io/sdks/ios/guide/recover-a-wallet.md): This guide will walk you through how to use your users' backups to recover their wallet.
- [Cross-device sessions](https://docs.portalhq.io/sdks/ios/guide/cross-device-sessions.md): Use wallet recovery to enable your users to create multiple signing shares across their devices.
- [Manage wallet lifecycle states](https://docs.portalhq.io/sdks/ios/guide/manage-wallet-lifecycle-states.md): Users can have multiple states in their wallet lifecycle: having a wallet, having wallet backups, having certain recovery methods available, and more.
- [Client Auth](https://docs.portalhq.io/sdks/ios/guide/client-auth.md): Sign your end users in with Portal and initialize the SDK from the resulting session, with no Client Session Token from your backend.
- [Connect with WalletConnect](https://docs.portalhq.io/sdks/ios/guide/connect-with-walletconnect.md): Portal Connect allows you to connect your Portal MPC Wallet to any dApp that supports WalletConnect without extra dependency bloat.
- [Build a WebView](https://docs.portalhq.io/sdks/ios/guide/build-a-webview.md): This guide will walk you through how to build a WebView to interact with dApps using the Portal wallet.
- [Perform swaps (Deprecated)](https://docs.portalhq.io/sdks/ios/guide/perform-swaps.md): This guide will walk you through how to perform swaps with Portal's iOS SDK.
- [Add custom signature hooks](https://docs.portalhq.io/sdks/ios/guide/add-custom-signature-hooks.md): This guide will help you configure custom signature hooks for requests to the Portal Provider to ensure your business logic is properly implemented into Portal's signing flow.
- [MPC progress callbacks](https://docs.portalhq.io/sdks/ios/guide/mpc-progress-callbacks.md): This section describes how to check in on the status of each MPC operation
- [Portal API methods](https://docs.portalhq.io/sdks/ios/guide/portal-api-methods.md): Portal API's convenient helper methods are designed to streamline data retrieval from the Portal REST API.
- [Manage ERC20 tokens](https://docs.portalhq.io/sdks/ios/guide/manage-erc20-tokens.md): This guide will walk you through how your Portal Wallets work with ERC20 tokens, how to interface with ERC20 Token Contracts, and how to use the Portal Provider to transfer ERC20 tokens.
- [Eject a wallet](https://docs.portalhq.io/sdks/ios/guide/eject-a-wallet.md): The eject feature allows a user to construct private keys that can be imported into another wallet manager, such as MetaMask.
- [Troubleshooting tips](https://docs.portalhq.io/sdks/ios/guide/troubleshooting-tips.md): This guide will walk you through some tips and tricks to help you troubleshoot issues with the Portal SDK.
- [Feature Flags](https://docs.portalhq.io/sdks/ios/guide/feature-flags.md): 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.
- [Configure log level](https://docs.portalhq.io/sdks/ios/guide/configure-log-level.md): Control the verbosity of SDK log output at runtime using PortalLogLevel.
- [Earn with Yield.xyz](https://docs.portalhq.io/sdks/ios/guide/yield-xyz.md): Learn how to discover, enter, manage, and exit yield opportunities.
- [Bridge & Swap with Li.Fi](https://docs.portalhq.io/sdks/ios/guide/lifi.md): Learn how to bridge and swap tokens across multiple chains using Portal's iOS SDK with Li.Fi integration.
- [Swap Tokens with 0x](https://docs.portalhq.io/sdks/ios/guide/zerox.md): Learn how to swap tokens using Portal's iOS SDK with 0x integration.
- [Enhance your wallets' security with Hypernative](https://docs.portalhq.io/sdks/ios/guide/hypernative.md): Learn how to integrate real-time security scanning for transactions, addresses, tokens, NFTs, and URLs using Portal's iOS SDK with Hypernative.
- [Enhance your wallets' security with Blockaid](https://docs.portalhq.io/sdks/ios/guide/blockaid.md): Learn how to integrate real-time transaction, address, token, and URL security scanning using Portal's iOS SDK with Blockaid.
- [Manage Token Delegations](https://docs.portalhq.io/sdks/ios/guide/delegations.md): Learn how to approve, revoke, and manage token delegations using Portal's iOS SDK.
- [Upgrading to EIP-7702](https://docs.portalhq.io/sdks/ios/guide/evm-account-type.md): Learn how to check wallet account type and upgrade EOA wallets to EIP-7702 using Portal's iOS SDK.
- [Noah virtual accounts and payouts](https://docs.portalhq.io/sdks/ios/guide/noah.md): Use portal.ramps.noah in the iOS SDK for Noah KYC, payins, payouts, and quotes through the Portal Client API.
- [Request tracing](https://docs.portalhq.io/sdks/ios/guide/request-tracing.md): Correlate Portal SDK requests with your own logs using the X-Portal-Trace-Id header.

##### Reference

- [availableRecoveryMethods](https://docs.portalhq.io/sdks/ios/reference/availablerecoverymethods.md): Retrieves the list of available backup methods that can be used for wallet recovery.
- [backupWallet](https://docs.portalhq.io/sdks/ios/reference/backupwallet.md): Creates a backup of the wallet using the specified backup method.
- [buildEip155Transaction](https://docs.portalhq.io/sdks/ios/reference/buildeip155transaction.md): Builds an EIP-155 compliant transaction for Ethereum-compatible chains. This method constructs a transaction object that includes replay protection as specified in EIP-155.
- [buildSolanaTransaction](https://docs.portalhq.io/sdks/ios/reference/buildsolanatransaction.md): Builds a Solana transaction for token transfers, handling both native SOL and SPL tokens with required program instructions.
- [clearSession](https://docs.portalhq.io/sdks/ios/reference/clearsession.md): Ends the session this Portal instance was constructed with. The host-initiated sign-out; silent and local.
- [createWallet](https://docs.portalhq.io/sdks/ios/reference/createwallet.md): Creates a new wallet and generates addresses for supported chains.
- [approveAndSubmit](https://docs.portalhq.io/sdks/ios/reference/delegationsapproveandsubmit.md): Approves a token delegation and signs and broadcasts the resulting transaction(s) in one call, returning the submitted transaction hashes.
- [revokeAndSubmit](https://docs.portalhq.io/sdks/ios/reference/delegationsrevokeandsubmit.md): Revokes a token delegation and signs and broadcasts the resulting transaction(s) in one call, returning the submitted transaction hashes.
- [setSignAndSendTransaction](https://docs.portalhq.io/sdks/ios/reference/delegationssetsignandsendtransaction.md): Sets the instance-level signer used by the high-level delegation submit methods to sign and broadcast each delegation transaction.
- [transferAndSubmit](https://docs.portalhq.io/sdks/ios/reference/delegationstransferandsubmit.md): Transfers tokens using delegated authority and signs and broadcasts the resulting transaction(s) in one call, returning the submitted transaction hashes.
- [doesWalletExist](https://docs.portalhq.io/sdks/ios/reference/doeswalletexist.md): Checks whether a wallet exists with completed signing shares. This method verifies the presence of a wallet by checking for completed signing shares.
- [ejectPrivateKeys](https://docs.portalhq.io/sdks/ios/reference/ejectprivatekeys.md): Extracts all private keys from the wallet using a specified backup method.
- [evaluateTransaction](https://docs.portalhq.io/sdks/ios/reference/evaluatetransaction.md): Evaluates a transaction for security and risk assessment, providing both validation and simulation results.
- [FirebaseStorage](https://docs.portalhq.io/sdks/ios/reference/firebasestorage.md): Storage implementation for Firebase Auth Backup and recovery.
- [gDriveSignOut](https://docs.portalhq.io/sdks/ios/reference/gdrivesignout.md): Clears the stored Google Drive session so the next backup or recovery runs a fresh interactive Google sign-in.
- [generateIdempotencyKey](https://docs.portalhq.io/sdks/ios/reference/generateidempotencykey.md): Generates a lowercased UUID v4 for use as an idempotency key on a transaction send.
- [generateTraceId](https://docs.portalhq.io/sdks/ios/reference/generatetraceid.md): Generates a lowercased UUID v4 for use as an X-Portal-Trace-Id value.
- [getAssets](https://docs.portalhq.io/sdks/ios/reference/getassets.md): Retrieves a collection of assets (tokens and NFTs) for the specified blockchain.
- [getBalances](https://docs.portalhq.io/sdks/ios/reference/getbalances.md): Retrieves token balances for the specified blockchain. This method fetches all token balances (native and ERC-20 or SPL) associated with the wallet on the specified blockchain network.
- [getNftAssets](https://docs.portalhq.io/sdks/ios/reference/getnftassets.md): Retrieves NFT assets for the specified blockchain. This method fetches all NFTs (Non-Fungible Tokens) owned by the wallet.
- [getTransactions](https://docs.portalhq.io/sdks/ios/reference/gettransactions.md): Retrieves transaction history for the specified blockchain.
- [getWalletCapabilities](https://docs.portalhq.io/sdks/ios/reference/getwalletcapabilities.md): Retrieves the capabilities and supported features of the current wallet, particularly focusing on available services like paymaster support.
- [isWalletBackedUp](https://docs.portalhq.io/sdks/ios/reference/iswalletbackedup.md): Checks whether a wallet has completed backups. This method verifies if backup shares have been successfully created and stored.
- [isWalletOnDevice](https://docs.portalhq.io/sdks/ios/reference/iswalletondevice.md): Checks whether wallet shares are present in the device's keychain. This method verifies if the signing shares required for wallet operations are stored in the device's local keychain.
- [isWalletRecoverable](https://docs.portalhq.io/sdks/ios/reference/iswalletrecoverable.md): Checks whether the wallet can be recovered using any available backup methods. This method verifies if there are any completed backup methods that could be used to recover the wallet.
- [pollStatus](https://docs.portalhq.io/sdks/ios/reference/lifipollstatus.md): Polls Li.Fi for the status of a transfer until it reaches a terminal state.
- [tradeAsset](https://docs.portalhq.io/sdks/ios/reference/lifitradeasset.md): Runs an end-to-end Li.Fi bridge or swap in a single call.
- [getPaymentMethods](https://docs.portalhq.io/sdks/ios/reference/noahgetpaymentmethods.md): Lists the stored Noah payment methods for the current customer.
- [getPayoutChannelForm](https://docs.portalhq.io/sdks/ios/reference/noahgetpayoutchannelform.md): Fetches the dynamic form schema for a Noah payout channel.
- [getPayoutChannels](https://docs.portalhq.io/sdks/ios/reference/noahgetpayoutchannels.md): Lists Noah payout channels matching the supplied filters.
- [getPayoutCountries](https://docs.portalhq.io/sdks/ios/reference/noahgetpayoutcountries.md): Lists the countries and fiat currencies supported for Noah payouts.
- [getPayoutQuote](https://docs.portalhq.io/sdks/ios/reference/noahgetpayoutquote.md): Requests a Noah payout quote for a channel and form responses.
- [initiateKyc](https://docs.portalhq.io/sdks/ios/reference/noahinitiatekyc.md): Starts hosted Noah KYC onboarding and returns a hosted URL.
- [initiatePayin](https://docs.portalhq.io/sdks/ios/reference/noahinitiatepayin.md): Creates a Noah payin and returns bank deposit instructions.
- [initiatePayout](https://docs.portalhq.io/sdks/ios/reference/noahinitiatepayout.md): Initiates a Noah payout from a previously quoted payout.
- [simulatePayin](https://docs.portalhq.io/sdks/ios/reference/noahsimulatepayin.md): Simulates a sandbox-only Noah fiat deposit for testing payin flows.
- [onSessionInvalidated](https://docs.portalhq.io/sdks/ios/reference/onsessioninvalidated.md): Registers a listener that runs once when the backend rejects this Portal instance's session, so your app can route to sign-in.
- [PortalAuth](https://docs.portalhq.io/sdks/ios/reference/portalauth.md): Client for Portal-managed end user authentication: magic links, Google and Apple sign-in, two-factor codes and session persistence.
- [clearPersistedSession](https://docs.portalhq.io/sdks/ios/reference/portalauthclearpersistedsession.md): Deletes the persisted session from the Keychain and forgets the last exchanged grant, so a later restoreSession returns nil.
- [getMethods](https://docs.portalhq.io/sdks/ios/reference/portalauthgetmethods.md): Returns the sign-in methods enabled for the auth environment and whether it expects your app to create a wallet after sign-in.
- [handleRedirect](https://docs.portalhq.io/sdks/ios/reference/portalauthhandleredirect.md): Exchanges the grant on an inbound redirect URL for an AuthResult, or returns nil when the URL is not a Portal sign-in.
- [loginWithApple](https://docs.portalhq.io/sdks/ios/reference/portalauthloginwithapple.md): Returns the Sign in with Apple authorize URL for you to open in a browser of your choice. Does not open the browser itself.
- [loginWithGoogle](https://docs.portalhq.io/sdks/ios/reference/portalauthloginwithgoogle.md): Returns the Google authorize URL for you to open in a browser of your choice. Does not open the browser itself.
- [restoreSession](https://docs.portalhq.io/sdks/ios/reference/portalauthrestoresession.md): Rebuilds the persisted PortalSession from the Keychain on launch, or returns nil when the user is signed out.
- [sendMagicLink](https://docs.portalhq.io/sdks/ios/reference/portalauthsendmagiclink.md): Emails the user a single-use sign-in link that returns them to your redirect URL.
- [signInWithApple](https://docs.portalhq.io/sdks/ios/reference/portalauthsigninwithapple.md): Completes a Sign in with Apple flow end to end in a system browser sheet and returns the resulting AuthResult.
- [signInWithGoogle](https://docs.portalhq.io/sdks/ios/reference/portalauthsigninwithgoogle.md): Completes a Google sign-in end to end in a system browser sheet and returns the resulting AuthResult.
- [verifyTotp](https://docs.portalhq.io/sdks/ios/reference/portalauthverifytotp.md): Submits a two-factor code for a sign-in that returned .totpRequired and returns the completed session.
- [recoverWallet](https://docs.portalhq.io/sdks/ios/reference/recoverwallet.md): Recovers a wallet using a specified backup method.
- [registerBackupMethod](https://docs.portalhq.io/sdks/ios/reference/registerbackupmethod.md): Registers a storage implementation for a specific backup method.
- [sendSol](https://docs.portalhq.io/sdks/ios/reference/sendsol.md): Sends SOL tokens to a specified Solana address. This method constructs and sends a Solana transfer transaction.
- [setGDriveConfiguration](https://docs.portalhq.io/sdks/ios/reference/setgdriveconfiguration.md): Configures Google Drive settings for the SDK with a specified backup option.
- [setLogLevel](https://docs.portalhq.io/sdks/ios/reference/setloglevel.md): Changes the SDK log verbosity at runtime without reinitializing Portal.
- [setPasskeyAuthenticationAnchor](https://docs.portalhq.io/sdks/ios/reference/setpasskeyauthenticationanchor.md): Sets the presentation anchor for passkey authentication dialogs. This method is required for configuring where the passkey UI components will be displayed in your application.
- [setPasskeyConfiguration](https://docs.portalhq.io/sdks/ios/reference/setpasskeyconfiguration.md): Configures the passkey authentication settings for backup and recovery operations. This method must be called before using passkey backup or recovery methods.
- [setPassword](https://docs.portalhq.io/sdks/ios/reference/setpassword.md): Sets the password used for the Password backup method. This method configures the password that will be used to encrypt and decrypt wallet backups using password-based key derivation.
- [deposit](https://docs.portalhq.io/sdks/ios/reference/yielddeposit.md): Resolves a yield, builds the enter action, and signs and submits every transaction in one call.
- [getValidators](https://docs.portalhq.io/sdks/ios/reference/yieldgetvalidators.md): Returns the available validators for a native-staking yield.
- [withdraw](https://docs.portalhq.io/sdks/ios/reference/yieldwithdraw.md): Resolves a yield, builds the exit action, and signs and submits every transaction in one call.

#### React Native

- [Getting Started](https://docs.portalhq.io/sdks/react-native/guide/getting-started.md): Follow this guide to integrate Portal in your React Native app.

##### Guide

- [Create a wallet](https://docs.portalhq.io/sdks/react-native/guide/create-a-wallet.md): The first step to the MPC process is generating key shares, or a wallet, for your users.
- [Send tokens](https://docs.portalhq.io/sdks/react-native/guide/send-tokens.md): Here's exactly how you can send tokens from your Portal wallet to another address.
- [Sign a transaction](https://docs.portalhq.io/sdks/react-native/guide/sign-a-transaction.md): Want to implement your own style, but with all the functionality Portal offers? Use these functions to implement your own custom web3 UI for your users.
- [Evaluate a transaction](https://docs.portalhq.io/sdks/react-native/guide/evaluate-a-transaction.md): Before committing to a transaction, it's often useful to simulate its outcome to understand the potential changes and detect any errors preemptively.
- [Back up a wallet](https://docs.portalhq.io/sdks/react-native/guide/back-up-a-wallet.md): This guide will walk you through how to create a backup of a Portal client's wallet.
- [Recover a wallet](https://docs.portalhq.io/sdks/react-native/guide/recover-a-wallet.md): This guide will walk you through how to use your users' backups to recover their wallet.
- [Cross-device sessions](https://docs.portalhq.io/sdks/react-native/guide/cross-device-sessions.md): Use wallet provisioning to enable your users to create multiple signing shares across their devices.
- [Manage wallet lifecycle states](https://docs.portalhq.io/sdks/react-native/guide/manage-wallet-lifecycle-states.md): Users can have multiple states in their wallet lifecycle: having a wallet, having wallet backups, having certain recovery methods available, and more.
- [Client Auth](https://docs.portalhq.io/sdks/react-native/guide/client-auth.md): Sign your end users in with Portal and initialize the SDK from the resulting session, with no Client Session Token from your backend.
- [Connect with WalletConnect](https://docs.portalhq.io/sdks/react-native/guide/connect-with-walletconnect.md): Portal Connect allows you to connect your Portal MPC Wallet to any dApp that supports WalletConnect without extra dependency bloat.
- [Build a WebView](https://docs.portalhq.io/sdks/react-native/guide/build-a-webview.md): Our ready-to-use WebView component helps you quickly integrate Portal into your app.
- [Perform swaps](https://docs.portalhq.io/sdks/react-native/guide/perform-swaps.md): This guide will walk you through how to perform swaps with Portal's React Native SDK.
- [Add custom signature hooks](https://docs.portalhq.io/sdks/react-native/guide/add-custom-signature-hooks.md)
- [MPC progress callbacks](https://docs.portalhq.io/sdks/react-native/guide/mpc-progress-callbacks.md): This section describes how to check in on the status of each MPC operation
- [Portal API methods](https://docs.portalhq.io/sdks/react-native/guide/portal-api-methods.md): Portal API's convenient helper methods are designed to streamline data retrieval from the Portal REST API.
- [Logging Configuration](https://docs.portalhq.io/sdks/react-native/guide/logging.md): Configure logging for Portal SDK operations in React Native with log levels and custom loggers.
- [Feature flags](https://docs.portalhq.io/sdks/react-native/guide/feature-flags.md): Enable or disable specific SDK behaviors using feature flags when initializing Portal.
- [Eject a wallet](https://docs.portalhq.io/sdks/react-native/guide/eject-a-wallet.md): The eject feature allows a user to construct a private key that can be imported into another wallet manager, such as MetaMask.
- [Manage Token Delegations](https://docs.portalhq.io/sdks/react-native/guide/delegations.md): Learn how to approve, revoke, and manage token delegations using Portal's React Native SDK.
- [Upgrading to EIP-7702](https://docs.portalhq.io/sdks/react-native/guide/evm-account-type.md): Learn how to check wallet account type and upgrade EOA wallets to EIP-7702 using Portal's React Native SDK.
- [Enhance your wallets' security with Blockaid](https://docs.portalhq.io/sdks/react-native/guide/blockaid.md): Learn how to integrate real-time transaction, address, token, and URL security scanning using Portal's React Native SDK with Blockaid.
- [Enhance your wallets' security with Hypernative](https://docs.portalhq.io/sdks/react-native/guide/hypernative.md): Learn how to integrate real-time security scanning for transactions, addresses, tokens, NFTs, and URLs using Portal's React Native SDK with Hypernative.
- [Swap Tokens with 0x](https://docs.portalhq.io/sdks/react-native/guide/zerox.md): Learn how to swap tokens using Portal's React Native SDK with 0x integration.
- [Bridge & Swap with Li.Fi](https://docs.portalhq.io/sdks/react-native/guide/lifi.md): Learn how to bridge and swap tokens across multiple chains using Portal's React Native SDK with Li.Fi integration.
- [Noah virtual accounts and payouts](https://docs.portalhq.io/sdks/react-native/guide/noah.md): Use portal.ramps.noah in the React Native SDK for Noah KYC, payins, payouts, and quotes through the Portal Client API.
- [Meld buy, sell, and transfer](https://docs.portalhq.io/sdks/react-native/guide/meld.md): Use portal.ramps.meld in the React Native SDK to embed Meld buy, sell, and transfer sessions through the Portal Client API.
- [Earn with Yield.xyz](https://docs.portalhq.io/sdks/react-native/guide/yield-xyz.md): Learn how to discover, enter, manage, and exit yield opportunities.
- [Batch user operations](https://docs.portalhq.io/sdks/react-native/guide/batch-user-operations.md): Build, sign, and broadcast ERC-4337 batch UserOperations with the React Native SDK.

##### Reference

- [@portal-hq/core](https://docs.portalhq.io/sdks/react-native/reference/core.md): The @portal-hq/core package provides the Portal class for MPC wallet management, an EIP-1193 compliant provider, API methods, and React Context utilities.
- [@portal-hq/firebase-storage](https://docs.portalhq.io/sdks/react-native/reference/firebase-storage.md): Firebase Authentication storage adapter for Portal wallet backup and recovery on React Native.
- [@portal-hq/gdrive-storage](https://docs.portalhq.io/sdks/react-native/reference/gdrive-storage.md): The @portal-hq/gdrive-storage package contains a storage adapter intended for use with the @portal-hq/core package. This storage adapter allows end users to save backup MPC shares to their Google Drive.
- [@portal-hq/icloud-storage](https://docs.portalhq.io/sdks/react-native/reference/icloud-storage.md): The @portal-hq/icloud-storage package contains a storage adapter intended for use with the @portal-hq/core package. This storage adapter allows end users to save backup MPC shares to their iCloud filesystem.
- [@portal-hq/keychain](https://docs.portalhq.io/sdks/react-native/reference/keychain.md): The @portal-hq/keychain package contains a storage adapter intended for use with the @portal-hq/core package. This storage adapter allows end users to save MPC shares to their local device keychain using the iOS Keychain.

#### Flutter

- [Getting Started](https://docs.portalhq.io/sdks/flutter/guide/getting-started.md): Follow this guide to integrate Portal in your Flutter app.

##### Guide

- [Create a wallet](https://docs.portalhq.io/sdks/flutter/guide/create-a-wallet.md): Once you have a Portal instance, you can now create a wallet for your user.
- [Send tokens](https://docs.portalhq.io/sdks/flutter/guide/send-tokens.md): Here's exactly how you can send tokens from your Portal wallet to another address.
- [Sign a transaction](https://docs.portalhq.io/sdks/flutter/guide/sign-a-transaction.md): This example shows how the Portal Provider interacts with the blockchain.
- [Sign a user operation](https://docs.portalhq.io/sdks/flutter/guide/sign-a-user-operation.md): Sign an ERC-4337 UserOperation using your MPC key without broadcasting it.
- [Evaluate a transaction](https://docs.portalhq.io/sdks/flutter/guide/evaluate-a-transaction.md): Learn how to evaluate transactions for security risks before sending them.
- [Back up a wallet](https://docs.portalhq.io/sdks/flutter/guide/back-up-a-wallet.md): This guide will walk you through how to create a backup of a Portal client's wallet.
- [Recover a wallet](https://docs.portalhq.io/sdks/flutter/guide/recover-a-wallet.md): This guide will walk you through how to recover a Portal wallet from a backup.
- [Perform swaps](https://docs.portalhq.io/sdks/flutter/guide/perform-swaps.md): Learn how to swap tokens using the Portal SDK.
- [Eject a wallet](https://docs.portalhq.io/sdks/flutter/guide/eject-a-wallet.md): The eject feature allows a user to construct private keys that can be imported into another wallet manager, such as MetaMask.
- [Earn with Yield.xyz](https://docs.portalhq.io/sdks/flutter/guide/yield-xyz.md): Learn how to discover, enter, manage, and exit yield opportunities.
- [Manage Token Delegations](https://docs.portalhq.io/sdks/flutter/guide/delegations.md): Learn how to approve, revoke, and manage token delegations using Portal's Flutter SDK.
- [Bridge & Swap with Li.Fi](https://docs.portalhq.io/sdks/flutter/guide/lifi.md): Learn how to bridge and swap tokens across multiple chains using Portal's Flutter SDK with Li.Fi integration.
- [Swap Tokens with 0x](https://docs.portalhq.io/sdks/flutter/guide/zerox.md): Learn how to swap tokens using Portal's Flutter SDK with 0x integration.
- [Upgrading to EIP-7702](https://docs.portalhq.io/sdks/flutter/guide/evm-account-type.md): Learn how to check wallet account type and upgrade EOA wallets to EIP-7702 using Portal's Flutter SDK.
- [Enhance your wallets' security with Blockaid](https://docs.portalhq.io/sdks/flutter/guide/blockaid.md): Learn how to integrate real-time transaction, address, token, and URL security scanning using Portal's Flutter SDK with Blockaid.
- [Enhance your wallets' security with Hypernative](https://docs.portalhq.io/sdks/flutter/guide/hypernative.md): Learn how to integrate real-time security scanning for transactions, addresses, tokens, NFTs, and URLs using Portal's Flutter SDK with Hypernative.
- [Subscribe to Portal events](https://docs.portalhq.io/sdks/flutter/guide/events.md): Listen to Portal SDK events on Flutter via the idiomatic Dart Stream<PortalEventData> API.
- [Configure log level](https://docs.portalhq.io/sdks/flutter/guide/configure-log-level.md): Control the verbosity of SDK log output at runtime using PortalLogLevel.
- [Feature flags](https://docs.portalhq.io/sdks/flutter/guide/feature-flags.md): Enable or disable specific SDK behaviors using feature flags when initializing Portal.

##### Native Platform Channels

- [Native Platform Channels (iOS)](https://docs.portalhq.io/sdks/flutter/guide/ios.md): Advanced guide for integrating Portal into your Flutter app using native platform channels.
- [Native Platform Channels (Android)](https://docs.portalhq.io/sdks/flutter/guide/android.md): Advanced guide for integrating Portal into your Flutter app using native platform channels.

##### Reference

- [createWallet](https://docs.portalhq.io/sdks/flutter/reference/createwallet.md): Create a new MPC wallet for the user.
- [backupWallet](https://docs.portalhq.io/sdks/flutter/reference/backupwallet.md): Create a backup of the user's wallet.
- [recoverWallet](https://docs.portalhq.io/sdks/flutter/reference/recoverwallet.md): Recover a wallet from a backup.
- [getAddresses / getAddress](https://docs.portalhq.io/sdks/flutter/reference/getaddresses.md): Get wallet addresses.
- [sendAsset](https://docs.portalhq.io/sdks/flutter/reference/sendasset.md): Send tokens from your wallet to another address.
- [sendTransaction](https://docs.portalhq.io/sdks/flutter/reference/sendtransaction.md): Send a transaction with full parameter control.
- [buildEip155Transaction](https://docs.portalhq.io/sdks/flutter/reference/buildeip155transaction.md): Builds an unsigned EIP-155 transaction for Ethereum-compatible chains, with gas, value, and data populated by the Portal backend.
- [buildSolanaTransaction](https://docs.portalhq.io/sdks/flutter/reference/buildsolanatransaction.md): Builds an unsigned Solana transaction for native SOL or SPL token transfers via the Portal backend.
- [buildBitcoinP2wpkhTransaction](https://docs.portalhq.io/sdks/flutter/reference/buildbitcoinp2wpkhtransaction.md): Builds an unsigned Bitcoin P2WPKH transaction (a PSBT) for native BTC transfers via the Portal backend.
- [broadcastBitcoinP2wpkhTransaction](https://docs.portalhq.io/sdks/flutter/reference/broadcastbitcoinp2wpkhtransaction.md): Broadcasts a signed Bitcoin P2WPKH transaction to the network via the Portal backend.
- [signMessage](https://docs.portalhq.io/sdks/flutter/reference/signmessage.md): Sign a personal message using personal_sign.
- [signTypedData](https://docs.portalhq.io/sdks/flutter/reference/signtypeddata.md): Sign EIP-712 typed structured data with the Portal Flutter SDK.
- [rawSign](https://docs.portalhq.io/sdks/flutter/reference/rawsign.md): Sign a raw message without any prefix.
- [request](https://docs.portalhq.io/sdks/flutter/reference/request.md): Make a generic JSON-RPC request.
- [eth_signUserOperation](https://docs.portalhq.io/sdks/flutter/reference/eth_signuseroperation.md): Sign an ERC-4337 UserOperation without broadcasting it.
- [swap](https://docs.portalhq.io/sdks/flutter/reference/swap.md): Execute a token swap.
- [evaluateTransaction](https://docs.portalhq.io/sdks/flutter/reference/evaluatetransaction.md): Evaluate a transaction for security risks.
- [ejectPrivateKeys](https://docs.portalhq.io/sdks/flutter/reference/ejectprivatekeys.md): Export private keys from the MPC system.
- [getAssets](https://docs.portalhq.io/sdks/flutter/reference/getassets.md): Get asset balances for a chain.
- [getBalances](https://docs.portalhq.io/sdks/flutter/reference/getbalances.md): Retrieves a flat list of token balances for the wallet on a specific chain.
- [getNftAssets](https://docs.portalhq.io/sdks/flutter/reference/getnftassets.md): Get NFT assets for a chain.
- [getTransactions](https://docs.portalhq.io/sdks/flutter/reference/gettransactions.md): Get transaction history for a chain.
- [getTransactionDetails](https://docs.portalhq.io/sdks/flutter/reference/gettransactiondetails.md): Get full details for a specific transaction by chain and signature.
- [doesWalletExist](https://docs.portalhq.io/sdks/flutter/reference/doeswalletexist.md): Check if a wallet exists.
- [isWalletBackedUp](https://docs.portalhq.io/sdks/flutter/reference/iswalletbackedup.md): Check if the wallet is backed up.
- [isWalletOnDevice](https://docs.portalhq.io/sdks/flutter/reference/iswalletondevice.md): Check if the wallet is stored on the device.
- [isWalletRecoverable](https://docs.portalhq.io/sdks/flutter/reference/iswalletrecoverable.md): Check if the wallet can be recovered.
- [availableRecoveryMethods](https://docs.portalhq.io/sdks/flutter/reference/availablerecoverymethods.md): Get available recovery methods for a wallet.
- [setPassword](https://docs.portalhq.io/sdks/flutter/reference/setpassword.md): Set the password for backup/recovery.
- [setLogLevel](https://docs.portalhq.io/sdks/flutter/reference/setloglevel.md): Changes the SDK log verbosity at runtime without reinitializing Portal.
- [configureGoogleStorage](https://docs.portalhq.io/sdks/flutter/reference/configuregooglestorage.md): Configure Google Drive backup storage.
- [configurePasskeyStorage](https://docs.portalhq.io/sdks/flutter/reference/configurepasskeystorage.md): Configure Passkey backup storage.
- [configureICloudStorage](https://docs.portalhq.io/sdks/flutter/reference/configureicloud.md): Configure iCloud backup storage.
- [configureFirebaseStorage](https://docs.portalhq.io/sdks/flutter/reference/configurefirebasestorage.md): Configure Firebase Auth as a backup storage method for wallet backup and recovery.
- [receiveTestnetAsset](https://docs.portalhq.io/sdks/flutter/reference/receivetestnetasset.md): Request testnet assets for development.
- [getClient](https://docs.portalhq.io/sdks/flutter/reference/getclient.md): Get client information.
- [deleteKeychain](https://docs.portalhq.io/sdks/flutter/reference/deletekeychain.md): Delete local keychain data.
- [delegations.approve](https://docs.portalhq.io/sdks/flutter/reference/delegations-approve.md): Approve a token delegation.
- [delegations.revoke](https://docs.portalhq.io/sdks/flutter/reference/delegations-revoke.md): Revoke a token delegation.
- [delegations.getStatus](https://docs.portalhq.io/sdks/flutter/reference/delegations-getstatus.md): Get the status of a token delegation.
- [delegations.transferFrom](https://docs.portalhq.io/sdks/flutter/reference/delegations-transferfrom.md): Transfer tokens from a delegated allowance.
- [delegations.approveAndSubmit](https://docs.portalhq.io/sdks/flutter/reference/delegations-approveandsubmit.md): Approve a token delegation, then sign and broadcast it in one call.
- [delegations.revokeAndSubmit](https://docs.portalhq.io/sdks/flutter/reference/delegations-revokeandsubmit.md): Revoke a token delegation, then sign and broadcast it in one call.
- [delegations.transferAndSubmit](https://docs.portalhq.io/sdks/flutter/reference/delegations-transferandsubmit.md): Transfer tokens as a delegate, then sign and broadcast it in one call.
- [yieldIntegrations.yieldxyz.discover](https://docs.portalhq.io/sdks/flutter/reference/yield-discover.md): Discover yield opportunities.
- [yieldIntegrations.yieldxyz.enter](https://docs.portalhq.io/sdks/flutter/reference/yield-enter.md): Enter a yield position.
- [yieldIntegrations.yieldxyz.exit](https://docs.portalhq.io/sdks/flutter/reference/yield-exit.md): Exit a yield position.
- [yieldIntegrations.yieldxyz.manage](https://docs.portalhq.io/sdks/flutter/reference/yield-manage.md): Manage a yield position.
- [yieldIntegrations.yieldxyz.getBalances](https://docs.portalhq.io/sdks/flutter/reference/yield-getbalances.md): Get yield balances for wallet addresses.
- [yieldIntegrations.yieldxyz.getHistoricalActions](https://docs.portalhq.io/sdks/flutter/reference/yield-gethistoricalactions.md): Get historical yield actions.
- [yieldIntegrations.yieldxyz.getTransaction](https://docs.portalhq.io/sdks/flutter/reference/yield-gettransaction.md): Get details for a yield transaction.
- [yieldIntegrations.yieldxyz.track](https://docs.portalhq.io/sdks/flutter/reference/yield-track.md): Track a yield transaction on-chain.

### APIs

#### Enclave MPC API

- [Getting Started](https://docs.portalhq.io/apis/enclave-mpc/guide/getting-started.md): This guide will walk you through creating a wallet and signing transactions using the Portal Enclave MPC API on various chains.
- [API Reference](https://docs.portalhq.io/apis/enclave-mpc/api-reference-link.md): Interactive API reference for the Enclave MPC API endpoints.

##### Guide

- [Create a client](https://docs.portalhq.io/apis/enclave-mpc/guide/create-a-client.md): This guide will walk you through how to create a Portal client using the Enclave MPC API.
- [Create a wallet](https://docs.portalhq.io/apis/enclave-mpc/guide/create-a-wallet.md)
- [Send tokens](https://docs.portalhq.io/apis/enclave-mpc/guide/send-tokens.md): Here's exactly how you can send tokens from your Portal wallet to another address.
- [Sign Ethereum transactions](https://docs.portalhq.io/apis/enclave-mpc/guide/sign-ethereum-transactions.md): This guide will walk you through how to sign an Ethereum transaction using the Enclave MPC API.
- [Sign Solana transactions](https://docs.portalhq.io/apis/enclave-mpc/guide/sign-solana-transactions.md): This guide will walk you through how to sign a Solana transaction using the Enclave MPC API.
- [Sign Stellar transactions](https://docs.portalhq.io/apis/enclave-mpc/guide/sign-stellar-transactions.md): This guide will walk you through how to sign a Stellar transaction using the Enclave MPC API.
- [Sign Tron transactions](https://docs.portalhq.io/apis/enclave-mpc/guide/sign-tron-transactions.md): This guide will walk you through how to sign a Tron transaction using the Enclave MPC API.
- [Concurrent Transactions](https://docs.portalhq.io/apis/enclave-mpc/guide/concurrent-transactions.md): This guide will walk you through how to submit multiple transactions at once using the Enclave MPC API, with sequential nonces for EOA wallets and 2D nonces for Account Abstraction wallets.
- [Presignatures](https://docs.portalhq.io/apis/enclave-mpc/guide/presignatures.md): Pre-compute MPC signing data for faster transaction signing with the Enclave MPC API.
- [Back up a wallet](https://docs.portalhq.io/apis/enclave-mpc/guide/backup.md): This guide will walk you through how to create a backup of a Portal client's wallet using the Enclave MPC API.
- [Eject a wallet](https://docs.portalhq.io/apis/enclave-mpc/guide/eject-a-wallet.md): The eject feature allows a user to construct a private key that can be imported into another wallet manager, such as MetaMask.
- [Manage Token Delegations](https://docs.portalhq.io/apis/enclave-mpc/guide/delegations.md): Learn how to approve, revoke, and manage token delegations using the Enclave MPC API.
- [Earn with Yield.xyz](https://docs.portalhq.io/apis/enclave-mpc/guide/yield-xyz.md): Learn how to discover, enter, manage, and exit yield opportunities using the Enclave MPC API.
- [Lend and borrow with Yield.xyz](https://docs.portalhq.io/apis/enclave-mpc/guide/yield-xyz-borrow.md): Learn how to supply collateral, borrow, repay and withdraw on lending protocols using the Enclave MPC API and the Yield.xyz integration.
- [Trade perps with Yield.xyz](https://docs.portalhq.io/apis/enclave-mpc/guide/yield-xyz-perps.md): Learn how to fund a trading account, open and manage leveraged perpetual-futures positions, and sign and submit the resulting transactions using the Enclave MPC API and the Yield.xyz integration.
- [Bridge & Swap with Li.Fi](https://docs.portalhq.io/apis/enclave-mpc/guide/lifi.md): Learn how to bridge and swap tokens across multiple chains using the Enclave MPC API with Li.Fi integration.
- [Cross-Chain Swap with 0x](https://docs.portalhq.io/apis/enclave-mpc/guide/zerox-cross-chain.md): Learn how to bridge and swap tokens across chains using the Enclave MPC API with 0x cross-chain integration.

#### Client API

- [API Reference](https://docs.portalhq.io/apis/client/api-reference-link.md): Interactive API reference for the Client API endpoints.

#### Authentication API

- [API Reference](https://docs.portalhq.io/apis/authentication/api-reference-link.md): Interactive API reference for the Authentication API endpoints.

#### Custodian API

- [API Reference](https://docs.portalhq.io/apis/custodian/api-reference-link.md): Interactive API reference for the Custodian API endpoints.

#### Reseller API

- [Getting Started](https://docs.portalhq.io/apis/reseller/guide/getting-started.md): Create and manage sub-custodians with the Reseller API.
- [API Reference](https://docs.portalhq.io/apis/reseller/api-reference-link.md): Interactive API reference for the Reseller API endpoints.

### Integrations

- [Integrations Overview](https://docs.portalhq.io/integrations/index.md): Comprehensive index of all Portal integrations organized by category with SDK implementation guides

#### On / Off Ramp

##### Due

- [Overview](https://docs.portalhq.io/integrations/On-Off-Ramp/due.md): Connect your Due account to Portal to move money between fiat and crypto with your Portal wallets.
- [KYC onboarding](https://docs.portalhq.io/integrations/On-Off-Ramp/due-kyc.md): Provision a Due customer, complete KYC, and unlock channels with endorsements.
- [Payins](https://docs.portalhq.io/integrations/On-Off-Ramp/due-payins.md): Move fiat into your client's Portal wallet with Due payins: quote a transfer, fund it, and settle onchain.
- [Payouts](https://docs.portalhq.io/integrations/On-Off-Ramp/due-payouts.md): Move crypto out of your client's Portal wallet with Due payouts: quote a transfer, deposit onchain, and settle to a bank account.
- [Virtual accounts](https://docs.portalhq.io/integrations/On-Off-Ramp/due-virtual-accounts.md): Give your client a persistent bank account that auto-converts every deposit to crypto in their Portal wallet.
- [Application fees](https://docs.portalhq.io/integrations/On-Off-Ramp/due-fees.md): Charge your own fee on top of Due fees. Portal enforces it server-side so clients cannot override it.
- [Webhooks](https://docs.portalhq.io/integrations/On-Off-Ramp/due-webhooks.md): Register Due webhook endpoints through the Portal Custodian API and verify deliveries with the endpoint Ed25519 key.

##### Noah

- [Overview](https://docs.portalhq.io/integrations/On-Off-Ramp/noah.md): Connect your Noah account to Portal to manage virtual bank accounts and global payouts.
- [KYC Onboarding](https://docs.portalhq.io/integrations/On-Off-Ramp/noah-kyc.md): Initiate Noah hosted onboarding and receive KYC lifecycle updates through Noah webhooks.
- [Payins](https://docs.portalhq.io/integrations/On-Off-Ramp/noah-payins.md): Assign virtual bank account details and process fiat-to-stablecoin settlement with Noah payins through Portal.
- [Payouts](https://docs.portalhq.io/integrations/On-Off-Ramp/noah-payouts.md): Run Noah payout workflows through Portal from channel discovery and form rendering to quote and payout initiation.
- [Webhooks](https://docs.portalhq.io/integrations/On-Off-Ramp/noah-webhooks.md): Set up Noah Dashboard webhooks to receive KYC, payin, and payout lifecycle events.

##### Meld

- [Overview](https://docs.portalhq.io/integrations/On-Off-Ramp/meld.md): Connect your Meld account to Portal to embed the Meld White-Label API for buy and sell crypto through aggregated providers.
- [White-Label API](https://docs.portalhq.io/integrations/On-Off-Ramp/meld-widget.md): Embed the Meld White-Label API for buy, sell, and transfer crypto end-to-end through Portal Client API endpoints.
- [Webhooks](https://docs.portalhq.io/integrations/On-Off-Ramp/meld-webhooks.md): Configure Meld Dashboard webhooks to receive transaction and customer lifecycle events.

#### Security

- [Blockaid](https://docs.portalhq.io/integrations/Security/blockaid.md): Connect your Blockaid account to Portal and start scanning transactions, addresses, tokens, and URLs for security risks.
- [Hypernative](https://docs.portalhq.io/integrations/Security/hypernative.md): Connect your Hypernative account to Portal and start scanning transactions, addresses, tokens, NFTs, and URLs for security risks.

#### Trading

- [0x](https://docs.portalhq.io/integrations/Trading/zerox.md): Connect your 0x account to Portal and start swapping and bridging tokens.
- [Li.Fi](https://docs.portalhq.io/integrations/Trading/lifi.md): Connect your Li.Fi account to Portal and start bridging & swapping across chains.

#### Yield

- [Yield.xyz](https://docs.portalhq.io/integrations/Yield/yield-xyz.md): Connect your Yield.xyz account to Portal, store your API key, and let your users earn yield, lend and borrow.
- [Yield.xyz Borrow](https://docs.portalhq.io/integrations/Yield/yield-xyz-borrow.md): Let your users supply collateral and borrow assets on Aave, Morpho, SparkLend and Lista with the Yield.xyz integration.
- [Yield.xyz Perps](https://docs.portalhq.io/integrations/Yield/yield-xyz-perps.md): Let your users trade perpetual futures on Hyperliquid and other venues with leverage, stop-loss and take-profit, using their Portal wallets and the Yield.xyz integration.

### Resources

- [Chain support](https://docs.portalhq.io/resources/blockchain-support.md)
- [API Keys](https://docs.portalhq.io/resources/api-keys.md): The two credentials you need to work with Portal: the server-side Portal API Key and the client-side Client Session Token.

#### Core Concepts

- [Portal's MPC architecture](https://docs.portalhq.io/resources/portals-mpc-architecture.md): This guide will go over the basics of Portal's MPC architecture for generating, backing up, and recovering a user's wallet.
- [Wallet lifecycle](https://docs.portalhq.io/resources/wallet-lifecycle.md): Portal's wallet model — one wallet per client — and how its signing and backup shares change state.
- [Rate Limits](https://docs.portalhq.io/resources/rate-limits.md)
- [Idempotency Keys](https://docs.portalhq.io/resources/idempotency-keys.md): Prevent duplicate transactions by including an idempotency key with your requests.
- [Error Codes](https://docs.portalhq.io/resources/error-codes.md): This guide documents the error identifiers returned by Portal's MPC (Multi-Party Computation) operations.

##### Backup Options

- [GDrive](https://docs.portalhq.io/resources/backup-options/gdrive.md): This is to allow your app to have access to store files in your users google drive.
- [iCloud](https://docs.portalhq.io/resources/backup-options/icloud.md)
- [Passkey + Enclave](https://docs.portalhq.io/resources/backup-options/passkey-+-enclave.md)
- [Password/PIN](https://docs.portalhq.io/resources/backup-options/password-pin.md)
- [Firebase Auth Backup](https://docs.portalhq.io/resources/backup-options/firebase-byo-auth.md): Use your existing Firebase Authentication to back up and recover Portal wallets via a secure enclave.

#### Authentication

- [Overview](https://docs.portalhq.io/resources/authentication/overview.md): Sign your end users in and get a Client Session Token without building your own auth backend.
- [Enable authentication](https://docs.portalhq.io/resources/authentication/enable-authentication.md): Turn Portal-managed end user authentication on for an environment and configure which sign-in methods it accepts.
- [Redirect URLs](https://docs.portalhq.io/resources/authentication/redirect-urls.md): Where Portal returns a user after a sign-in, how the allow list matches, and how your app receives the redirect.
- [Email magic links](https://docs.portalhq.io/resources/authentication/email-magic-links.md): Verify a sending domain, build a magic link email template, and sign users in from a link sent to their inbox.
- [Google OAuth](https://docs.portalhq.io/resources/authentication/google-oauth.md): Create a Google OAuth client, register Portal's redirect URI, and let your users sign in with Google.
- [Apple OAuth](https://docs.portalhq.io/resources/authentication/apple-oauth.md): Set up Sign in with Apple, register Portal's return URL, and let your users sign in with their Apple account.
- [Two-factor authentication](https://docs.portalhq.io/resources/authentication/two-factor-authentication.md): Require a TOTP code from an authenticator app as a second factor on every end user sign-in.
- [End users](https://docs.portalhq.io/resources/authentication/end-users.md): Review the users who have signed in through Portal-managed authentication and reset their two-factor enrollment.

#### Security

- [Security](https://docs.portalhq.io/resources/security.md): Security at Portal has been built in from day one.
- [Single Sign-On (SSO)](https://docs.portalhq.io/resources/single-sign-on.md): Configure Single Sign-On (SSO) for your organization in the Portal Admin Dashboard using OIDC or SAML2 protocols to manage authentication and authorization for your members.
- [Eject](https://docs.portalhq.io/resources/eject.md): Eject allows a user to construct a private key from their MPC shares so that they may import it into a wallet like MetaMask.
- [Security firewall](https://docs.portalhq.io/resources/firewall.md): In this page, we'll go through setting up policies on your security firewall to help protect your users/wallets from scams and threats.
- [Policies](https://docs.portalhq.io/resources/policies.md): On this page, we'll go through setting up transaction policies to control what your users' wallets are allowed to sign.

#### Additional Features

- [Alert Webhooks](https://docs.portalhq.io/resources/alert-webhooks.md): Get realtime wallet notifications for your Portal clients.
- [Account abstraction](https://docs.portalhq.io/resources/account-abstraction.md): This guide will walk you through the process of configuring Account Abstraction for your organization and your users.
- [Agentic wallets](https://docs.portalhq.io/resources/agentic-wallets.md): Use Portal's local MCP extension or CLI to create and manage a Portal MPC wallet from Claude Desktop, Antigravity, or another local agent.
- [Delegations](https://docs.portalhq.io/resources/delegations.md): Learn how token delegations work in Portal and how to approve, revoke, and transfer tokens on behalf of delegated addresses.
- [Fee collectors](https://docs.portalhq.io/resources/fee-collectors.md): Collect your own fee on Solana transfers your clients send through Portal.
- [Presignatures](https://docs.portalhq.io/resources/presignatures.md): Pre-compute MPC signing data ahead of time for faster transaction signing.
- [Pre-Generated Wallets](https://docs.portalhq.io/resources/pre-generated-wallets.md): Speed up wallet creation by claiming a share from a pre-computed pool instead of running the interactive MPC protocol in real time.
- [Upgrading to EIP-7702](https://docs.portalhq.io/resources/evmAccountType.md): Learn how to upgrade wallets to EIP-7702.
- [Self-Managed Backups](https://docs.portalhq.io/resources/self-managed-backups.md): Store and manage backup shares in your own infrastructure instead of using Portal-Managed Backups.
- [WalletConnect metadata](https://docs.portalhq.io/resources/walletconnect-metadata.md): Personalize the pairing information displayed on third-party dApps via WalletConnect from the Portal Admin Dashboard.

#### Additional Resources

- [Going to Production](https://docs.portalhq.io/resources/going-to-production.md): This guide will walk you through the process of taking your application to Production using Portal.
- [Testnet faucets](https://docs.portalhq.io/resources/testnet-faucets.md): Easily get free tokens to test with in your applications.
- [Chain ID formatting](https://docs.portalhq.io/resources/chain-id-formatting.md)
- [RPC endpoints](https://docs.portalhq.io/resources/rpc-endpoints.md): Use Portal's managed RPC gateway to send JSON-RPC requests to any supported chain without running your own node or provider.
- [Glossary](https://docs.portalhq.io/resources/glossary.md): A breakdown of all the relevant concepts and terms as it pertains to Portal

##### Migration Guides

- [Migrating from legacy Solana alert webhook events](https://docs.portalhq.io/resources/migrating-from-solana-legacy-webhooks.md): Upgrade from the legacy Solana alert webhook events to the current ones to get per-address delivery, the `triggeredBy` field, and new properties.

#### Hackathon Hub

- [Overview](https://docs.portalhq.io/resources/hackathon-hub.md): All of the information you need to get started for a hackathon using Portal!

##### Hackathons

- [Mobil3 Hackathon](https://docs.portalhq.io/resources/hackathons/mobil3.md): Resources for the Mobil3 Hackathon using Portal
