{"openapi":"3.1.0","info":{"version":"0.0.1","title":"Privy API","description":"REST API for Privy's wallet infrastructure — provision and manage wallets across EVM, Solana, and Bitcoin, authenticate users, sign transactions, and configure programmable policies and authorization intents.","contact":{"name":"Privy","url":"https://www.privy.io/","email":"support@privy.io"}},"tags":[{"name":"Accounts","description":"Operations related to asset accounts"},{"name":"Aggregations","description":"Operations related to aggregations for tracking and measuring metrics"},{"name":"Apps","description":"Operations related to app settings and allowlist management"},{"name":"Client Auth","description":"OAuth token exchange and device authorization operations"},{"name":"Condition Sets","description":"Operations related to condition sets"},{"name":"Embedded wallets","description":"Operations related to embedded wallet creation and authentication"},{"name":"Fiat","description":"Operations related to fiat onramping and offramping"},{"name":"Intents","description":"Operations related to authorization intents for wallet actions"},{"name":"Key quorums","description":"Operations related to key quorums"},{"name":"Kraken Embed","description":"Operations for Kraken Embed integration, including quotes, trades, user management, and portfolio operations"},{"name":"OAuth","description":"OAuth 2.0 endpoints including Device Authorization Grant (RFC 8628) for CLI and limited-input device login flows"},{"name":"Organizations","description":"Operations related to organization secret management"},{"name":"Policies","description":"Operations related to policies"},{"name":"Shared","description":"Common schemas shared across resources"},{"name":"Swaps","description":"Operations for swapping tokens within wallets"},{"name":"Transactions","description":"Operations related to transactions"},{"name":"User signers","description":"Operations related to user signers"},{"name":"Users","description":"Operations related to users"},{"name":"Wallet Actions","description":"Operations related to wallet actions"},{"name":"Wallets","description":"Operations related to wallets"},{"name":"Webhooks","description":"Webhook events that Privy sends to your configured endpoint when specific actions occur in your app"},{"name":"Yield","description":"Operations for depositing and withdrawing funds from ERC-4626 yield vaults (Morpho, Aave)"}],"servers":[{"url":"https://api.privy.io"}],"components":{"securitySchemes":{"appSecretAuth":{"type":"http","scheme":"basic","description":"Basic Auth header with your app ID as the username and your app secret as the password."}},"schemas":{"EvmAddress":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"EVM address: 0x followed by 40 hex characters. Preserves input case.","title":"EvmAddress","x-stainless-model":"shared.evm_address"},"EvmChecksumAddress":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"EVM address normalized to EIP-55 checksum case.","title":"EvmChecksumAddress","x-stainless-model":"shared.evm_checksum_address"},"SolanaAddress":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Solana address: base58-encoded public key (32 bytes).","title":"SolanaAddress","x-stainless-model":"shared.solana_address"},"BitcoinAddress":{"type":"string","pattern":"^(bc1[a-z0-9]{25,87}|[13][a-km-zA-HJ-NP-Z1-9]{25,34})$","description":"Bitcoin address: bech32 (bc1), P2SH (3), or P2PKH (1).","title":"BitcoinAddress","x-stainless-model":"shared.bitcoin_address"},"TronAddress":{"type":"string","pattern":"^T[1-9A-HJ-NP-Za-km-z]{33}$","description":"Tron address: base58check-encoded, starting with T, 34 characters.","title":"TronAddress","x-stainless-model":"shared.tron_address"},"TronHexAddress":{"type":"string","pattern":"^41[0-9a-fA-F]{40}$","description":"Tron address in hex format: 41-prefixed, 42 hex characters (21 bytes), no 0x prefix.","title":"TronHexAddress","x-stainless-model":"shared.tron_hex_address"},"HyperliquidTokenAddress":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{32}|[0-9a-fA-F]{40})$","description":"Hyperliquid L1 token identifier: 0x followed by either 32 hex characters (16-byte spot/perps token IDs) or 40 hex characters (20-byte HIP-3 DEX token IDs), normalized to lowercase.","title":"HyperliquidTokenAddress","x-stainless-model":"shared.hyperliquid_token_address"},"TokenIdentifier":{"type":"string","minLength":1,"description":"Token identifier string. EVM-shaped 40-hex token addresses normalize to checksum case, 16-byte Hyperliquid token IDs normalize to lowercase, and all other identifiers pass through unchanged.","title":"TokenIdentifier","x-stainless-model":"shared.token_identifier"},"AuthenticateModeOption":{"type":"string","enum":["no-signup","login-or-sign-up"],"description":"Whether to allow sign-up during authentication.","title":"AuthenticateModeOption","x-stainless-model":"client_auth.authenticate_mode_option"},"AuthenticateMode":{"type":"object","properties":{"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"description":"The authentication mode settings for the ceremony.","title":"AuthenticateMode","x-stainless-model":"client_auth.authenticate_mode"},"CurveSigningChainType":{"type":"string","enum":["cosmos","stellar","sui","aptos","movement","tron","bitcoin-segwit","bitcoin-taproot","pearl","near","ton","starknet"],"description":"The wallet chain types that support curve-based signing.","title":"CurveSigningChainType","x-stainless-model":"wallets.curve_signing_chain_type"},"ExtendedChainType":{"type":"string","enum":["cosmos","stellar","sui","aptos","movement","tron","bitcoin-segwit","bitcoin-taproot","pearl","near","ton","starknet","spark"],"description":"The wallet chain types that are not first class chains.","title":"ExtendedChainType","x-stainless-model":"wallets.extended_chain_type"},"FirstClassChainType":{"type":"string","enum":["ethereum","solana"],"description":"The wallet chain types that offer first class support.","title":"FirstClassChainType","x-stainless-model":"wallets.first_class_chain_type"},"WalletChainType":{"type":"string","enum":["ethereum","solana","cosmos","stellar","sui","aptos","movement","tron","bitcoin-segwit","bitcoin-taproot","pearl","near","ton","starknet","spark"],"description":"The wallet chain types.","title":"WalletChainType","x-stainless-model":"wallets.wallet_chain_type"},"ExternalOAuthProviderID":{"type":"string","enum":["google","discord","twitter","github","spotify","instagram","tiktok","linkedin","apple","line","twitch","telegram"],"description":"The ID of an external OAuth provider.","title":"ExternalOAuthProviderID","x-stainless-model":"client_auth.external_oauth_provider_id"},"PrivyOAuthProviderID":{"type":"string","description":"The ID of a Privy app as an OAuth provider. Must start with \"privy:\".","title":"PrivyOAuthProviderID","x-stainless-model":"client_auth.privy_oauth_provider_id"},"CustomOAuthProviderID":{"type":"string","description":"The ID of a custom OAuth provider, set up for this app. Must start with \"custom:\".","title":"CustomOAuthProviderID","x-stainless-model":"client_auth.custom_oauth_provider_id"},"OAuthProviderID":{"anyOf":[{"$ref":"#/components/schemas/ExternalOAuthProviderID"},{"$ref":"#/components/schemas/PrivyOAuthProviderID"},{"$ref":"#/components/schemas/CustomOAuthProviderID"}],"description":"The ID of an OAuth provider.","title":"OAuthProviderID","x-stainless-model":"client_auth.oauth_provider_id"},"BridgeOnrampProvider":{"type":"string","enum":["bridge","bridge-sandbox"],"description":"Bridge provider variant — production or sandbox.","title":"BridgeOnrampProvider","x-stainless-model":"client_auth.bridge_onramp_provider"},"OnrampProvider":{"type":"string","enum":["bridge","bridge-sandbox"],"description":"Valid set of onramp providers","title":"OnrampProvider","example":"bridge","x-stainless-model":"client_auth.onramp_provider"},"SuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"description":"A simple success response.","title":"SuccessResponse","x-stainless-model":"shared.success_response"},"CAIP2":{"type":"string","pattern":"^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$","description":"A valid CAIP-2 chain ID (e.g. 'eip155:1').","title":"CAIP2","x-stainless-model":"apps.caip_2"},"P256PublicKey":{"type":"string","description":"A P-256 (secp256r1) public key.","title":"P256PublicKey","x-stainless-model":"shared.p_256_public_key"},"KeyQuorumId":{"type":"string","format":"cuid2","description":"A unique identifier for a key quorum.","title":"KeyQuorumId","x-stainless-model":"shared.key_quorum_id"},"OwnerInputUser":{"type":"object","properties":{"user_id":{"type":"string"}},"required":["user_id"],"additionalProperties":false,"description":"Owner input specifying a Privy user ID.","title":"OwnerInputUser","x-stainless-model":"shared.owner_input_user"},"OwnerInputPublicKey":{"type":"object","properties":{"public_key":{"$ref":"#/components/schemas/P256PublicKey"}},"required":["public_key"],"additionalProperties":false,"description":"Owner input specifying a P-256 public key.","title":"OwnerInputPublicKey","x-stainless-model":"shared.owner_input_public_key"},"OwnerInput":{"anyOf":[{"$ref":"#/components/schemas/OwnerInputUser"},{"$ref":"#/components/schemas/OwnerInputPublicKey"},{"type":"null"},{"type":"null"}],"description":"The owner of the resource, specified as a Privy user ID, a P-256 public key, or null to remove the current owner.","title":"OwnerInput","x-stainless-model":"shared.owner_input"},"OwnerIdInput":{"type":["string","null"],"format":"cuid2","description":"The key quorum ID to set as the owner of the resource. If you provide this, do not specify an owner.","title":"OwnerIdInput","x-stainless-model":"shared.owner_id_input"},"WalletCreationAdditionalSignerItem":{"type":"object","properties":{"signer_id":{"allOf":[{"$ref":"#/components/schemas/KeyQuorumId"},{"description":"The key quorum ID for the signer."}]},"override_policy_ids":{"type":"array","items":{"type":"string","minLength":24,"maxLength":24},"maxItems":1,"description":"The array of policy IDs that will be applied to wallet requests. If specified, this will override the base policy IDs set on the wallet. Currently, only one policy is supported per signer."}},"required":["signer_id"],"additionalProperties":false,"description":"An additional signer configuration for a wallet.","title":"WalletCreationAdditionalSignerItem","x-stainless-model":"embedded_wallets.wallet_creation_additional_signer_item"},"WalletCreationInput":{"type":"object","properties":{"additional_signers":{"type":"array","items":{"$ref":"#/components/schemas/WalletCreationAdditionalSignerItem"},"description":"Additional signers for the wallet."},"policy_ids":{"type":"array","items":{"type":"string","minLength":24,"maxLength":24},"maxItems":1,"description":"Policy IDs to enforce on the wallet. Currently, only one policy is supported per wallet."},"chain_type":{"$ref":"#/components/schemas/WalletChainType"},"create_smart_wallet":{"type":"boolean","description":"Create a smart wallet with this wallet as the signer. Only supported for wallets with `chain_type: \"ethereum\"`."}},"required":["chain_type"],"additionalProperties":false,"description":"The fields on wallet creation that can be specified when creating a user-controlled embedded server wallet.","title":"WalletCreationInput","x-stainless-model":"embedded_wallets.wallet_creation_input"},"EmbeddedWalletCreationInput":{"type":"object","properties":{"wallets":{"type":"array","items":{"$ref":"#/components/schemas/WalletCreationInput"},"description":"Wallets to create."}},"additionalProperties":false,"description":"The fields describing embedded wallet creation, used for user import and embedded wallet generation.","title":"EmbeddedWalletCreationInput","x-stainless-model":"embedded_wallets.embedded_wallet_creation_input"},"CustomMetadata":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"description":"Custom metadata associated with the user.","title":"CustomMetadata","x-stainless-model":"users.custom_metadata"},"LinkedAccountWalletInput":{"type":"object","properties":{"type":{"type":"string","enum":["wallet"]},"address":{"anyOf":[{"type":"string"},{"type":"string"}]},"chain_type":{"type":"string","enum":["ethereum","solana"]}},"required":["type","address","chain_type"],"description":"The payload for importing a wallet account.","title":"LinkedAccountWalletInput","x-stainless-model":"users.linked_account_wallet_input"},"LinkedAccountEmailInput":{"type":"object","properties":{"type":{"type":"string","enum":["email"]},"address":{"type":"string","format":"email"}},"required":["type","address"],"description":"The payload for importing an email account.","title":"LinkedAccountEmailInput","x-stainless-model":"users.linked_account_email_input"},"LinkedAccountPhoneInput":{"type":"object","properties":{"type":{"type":"string","enum":["phone"]},"number":{"type":"string"}},"required":["type","number"],"description":"The payload for importing a phone account.","title":"LinkedAccountPhoneInput","x-stainless-model":"users.linked_account_phone_input"},"LinkedAccountGoogleInput":{"type":"object","properties":{"type":{"type":"string","enum":["google_oauth"]},"subject":{"type":"string","pattern":"^[\\x00-\\x7F]{1,256}$"},"email":{"type":"string","format":"email"},"name":{"type":"string"}},"required":["type","subject","email","name"],"additionalProperties":false,"description":"The payload for importing a Google account.","title":"LinkedAccountGoogleInput","x-stainless-model":"users.linked_account_google_input"},"LinkedAccountTwitterInput":{"type":"object","properties":{"type":{"type":"string","enum":["twitter_oauth"]},"subject":{"type":"string","pattern":"^[\\x00-\\x7F]{1,256}$"},"name":{"type":"string","minLength":1,"maxLength":50},"username":{"type":"string","pattern":"^[0-9a-zA-Z|\\_]{1,15}$"},"profile_picture_url":{"type":"string","format":"uri"}},"required":["type","subject","name","username"],"additionalProperties":false,"description":"The payload for importing a Twitter account.","title":"LinkedAccountTwitterInput","x-stainless-model":"users.linked_account_twitter_input"},"LinkedAccountDiscordInput":{"type":"object","properties":{"type":{"type":"string","enum":["discord_oauth"]},"subject":{"type":"string","pattern":"^\\d{17,20}$"},"username":{"type":"string","pattern":"^(?!discord|everyone|here)[0-9a-zA-Z_.]{2,32}(?:#(?:[0-9]{4}|0))?$"},"email":{"type":"string","format":"email"}},"required":["type","subject","username"],"additionalProperties":false,"description":"The payload for importing a Discord account.","title":"LinkedAccountDiscordInput","x-stainless-model":"users.linked_account_discord_input"},"LinkedAccountGithubInput":{"type":"object","properties":{"type":{"type":"string","enum":["github_oauth"]},"subject":{"type":"string","pattern":"^[\\x00-\\x7F]{1,256}$"},"username":{"type":"string","maxLength":39,"pattern":"^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*$"},"name":{"type":"string"},"email":{"type":"string","format":"email"}},"required":["type","subject","username"],"additionalProperties":false,"description":"The payload for importing a Github account.","title":"LinkedAccountGithubInput","x-stainless-model":"users.linked_account_github_input"},"LinkedAccountSpotifyInput":{"type":"object","properties":{"type":{"type":"string","enum":["spotify_oauth"]},"subject":{"type":"string"},"name":{"type":"string"},"email":{"type":"string","format":"email"}},"required":["type","subject"],"additionalProperties":false,"description":"The payload for importing a Spotify account.","title":"LinkedAccountSpotifyInput","x-stainless-model":"users.linked_account_spotify_input"},"LinkedAccountInstagramInput":{"type":"object","properties":{"type":{"type":"string","enum":["instagram_oauth"]},"subject":{"type":"string","pattern":"^[\\x00-\\x7F]{1,256}$"},"username":{"type":"string","pattern":"^(?!instagram|everyone|here)[0-9a-zA-Z._]{2,32}$"}},"required":["type","subject","username"],"additionalProperties":false,"description":"The payload for importing an Instagram account.","title":"LinkedAccountInstagramInput","x-stainless-model":"users.linked_account_instagram_input"},"LinkedAccountTiktokInput":{"type":"object","properties":{"type":{"type":"string","enum":["tiktok_oauth"]},"subject":{"type":"string","pattern":"^[\\x00-\\x7F]{1,256}$"},"username":{"type":"string","pattern":"^(?!tiktok|everyone|here)[0-9a-zA-Z]{2,32}$"},"name":{"type":["string","null"],"minLength":1,"maxLength":30}},"required":["type","subject","username","name"],"additionalProperties":false,"description":"The payload for importing a Tiktok account.","title":"LinkedAccountTiktokInput","x-stainless-model":"users.linked_account_tiktok_input"},"LinkedAccountLineInput":{"type":"object","properties":{"type":{"type":"string","enum":["line_oauth"]},"subject":{"type":"string","pattern":"^[\\x00-\\x7F]{1,256}$"},"email":{"type":"string","format":"email"},"name":{"type":"string","minLength":1,"maxLength":30},"profile_picture_url":{"type":"string","format":"uri"}},"required":["type","subject"],"additionalProperties":false,"description":"The payload for importing a LINE account.","title":"LinkedAccountLineInput","x-stainless-model":"users.linked_account_line_input"},"LinkedAccountTwitchInput":{"type":"object","properties":{"type":{"type":"string","enum":["twitch_oauth"]},"subject":{"type":"string","pattern":"^\\d+$"},"username":{"type":"string","pattern":"^[a-zA-Z0-9_]{4,25}$"}},"required":["type","subject"],"additionalProperties":false,"description":"The payload for importing a Twitch account.","title":"LinkedAccountTwitchInput","x-stainless-model":"users.linked_account_twitch_input"},"LinkedAccountAppleInput":{"type":"object","properties":{"type":{"type":"string","enum":["apple_oauth"]},"subject":{"type":"string","pattern":"^[\\x00-\\x7F]{1,256}$"},"email":{"type":"string","format":"email"}},"required":["type","subject"],"additionalProperties":false,"description":"The payload for importing an Apple account.","title":"LinkedAccountAppleInput","x-stainless-model":"users.linked_account_apple_input"},"LinkedAccountLinkedInInput":{"type":"object","properties":{"type":{"type":"string","enum":["linkedin_oauth"]},"subject":{"type":"string","pattern":"^[\\x00-\\x7F]{1,256}$"},"name":{"type":"string"},"email":{"type":"string","format":"email"},"vanityName":{"type":"string"}},"required":["type","subject"],"additionalProperties":false,"description":"The payload for importing a LinkedIn account.","title":"LinkedAccountLinkedInInput","x-stainless-model":"users.linked_account_linked_in_input"},"LinkedAccountFarcasterInput":{"type":"object","properties":{"type":{"type":"string","enum":["farcaster"]},"fid":{"type":"integer"},"owner_address":{"type":"string"},"username":{"type":"string","maxLength":256},"display_name":{"type":"string","maxLength":32},"bio":{"type":"string","maxLength":256},"profile_picture_url":{"type":"string","maxLength":256},"homepage_url":{"type":"string","maxLength":256}},"required":["type","fid","owner_address"],"additionalProperties":false,"description":"The payload for importing a Farcaster account.","title":"LinkedAccountFarcasterInput","x-stainless-model":"users.linked_account_farcaster_input"},"LinkedAccountTelegramInput":{"type":"object","properties":{"type":{"type":"string","enum":["telegram"]},"telegram_user_id":{"type":"string","minLength":1,"maxLength":255},"first_name":{"type":"string","maxLength":255},"last_name":{"type":"string","maxLength":255},"username":{"type":"string","maxLength":255},"photo_url":{"type":"string","maxLength":255}},"required":["type","telegram_user_id"],"additionalProperties":false,"description":"The payload for importing a Telegram account.","title":"LinkedAccountTelegramInput","x-stainless-model":"users.linked_account_telegram_input"},"LinkedAccountCustomJWTInput":{"type":"object","properties":{"type":{"type":"string","enum":["custom_auth"]},"custom_user_id":{"type":"string","minLength":1,"maxLength":256}},"required":["type","custom_user_id"],"additionalProperties":false,"description":"The payload for importing a Custom JWT account.","title":"LinkedAccountCustomJWTInput","x-stainless-model":"users.linked_account_custom_jwt_input"},"LinkedAccountPasskeyInput":{"type":"object","properties":{"type":{"type":"string","enum":["passkey"]},"credential_id":{"type":"string","minLength":1,"maxLength":1024},"credential_username":{"type":"string","minLength":1,"maxLength":256},"credential_public_key":{"type":"string","minLength":1,"maxLength":2048},"credential_device_type":{"type":"string","enum":["singleDevice","multiDevice"]}},"required":["type","credential_id","credential_username","credential_public_key","credential_device_type"],"additionalProperties":false,"description":"The payload for importing a passkey account.","title":"LinkedAccountPasskeyInput","x-stainless-model":"users.linked_account_passkey_input"},"LinkedAccountInput":{"oneOf":[{"$ref":"#/components/schemas/LinkedAccountWalletInput"},{"$ref":"#/components/schemas/LinkedAccountEmailInput"},{"$ref":"#/components/schemas/LinkedAccountPhoneInput"},{"$ref":"#/components/schemas/LinkedAccountGoogleInput"},{"$ref":"#/components/schemas/LinkedAccountTwitterInput"},{"$ref":"#/components/schemas/LinkedAccountDiscordInput"},{"$ref":"#/components/schemas/LinkedAccountGithubInput"},{"$ref":"#/components/schemas/LinkedAccountSpotifyInput"},{"$ref":"#/components/schemas/LinkedAccountInstagramInput"},{"$ref":"#/components/schemas/LinkedAccountTiktokInput"},{"$ref":"#/components/schemas/LinkedAccountLineInput"},{"$ref":"#/components/schemas/LinkedAccountTwitchInput"},{"$ref":"#/components/schemas/LinkedAccountAppleInput"},{"$ref":"#/components/schemas/LinkedAccountLinkedInInput"},{"$ref":"#/components/schemas/LinkedAccountFarcasterInput"},{"$ref":"#/components/schemas/LinkedAccountTelegramInput"},{"$ref":"#/components/schemas/LinkedAccountCustomJWTInput"},{"$ref":"#/components/schemas/LinkedAccountPasskeyInput"}],"discriminator":{"propertyName":"type","mapping":{"wallet":"#/components/schemas/LinkedAccountWalletInput","email":"#/components/schemas/LinkedAccountEmailInput","phone":"#/components/schemas/LinkedAccountPhoneInput","google_oauth":"#/components/schemas/LinkedAccountGoogleInput","twitter_oauth":"#/components/schemas/LinkedAccountTwitterInput","discord_oauth":"#/components/schemas/LinkedAccountDiscordInput","github_oauth":"#/components/schemas/LinkedAccountGithubInput","spotify_oauth":"#/components/schemas/LinkedAccountSpotifyInput","instagram_oauth":"#/components/schemas/LinkedAccountInstagramInput","tiktok_oauth":"#/components/schemas/LinkedAccountTiktokInput","line_oauth":"#/components/schemas/LinkedAccountLineInput","twitch_oauth":"#/components/schemas/LinkedAccountTwitchInput","apple_oauth":"#/components/schemas/LinkedAccountAppleInput","linkedin_oauth":"#/components/schemas/LinkedAccountLinkedInInput","farcaster":"#/components/schemas/LinkedAccountFarcasterInput","telegram":"#/components/schemas/LinkedAccountTelegramInput","custom_auth":"#/components/schemas/LinkedAccountCustomJWTInput","passkey":"#/components/schemas/LinkedAccountPasskeyInput"}},"description":"The input for adding a linked account to a user.","title":"LinkedAccountInput","example":{"type":"email","address":"tom.bombadill@privy.io"},"x-stainless-model":"users.linked_account_input"},"UserBatchCreateInput":{"type":"object","properties":{"users":{"type":"array","items":{"type":"object","properties":{"wallets":{"type":"array","items":{"$ref":"#/components/schemas/WalletCreationInput"},"description":"Wallets to create."},"create_embedded_wallet":{"type":"boolean"},"create_n_embedded_wallets":{"type":"number","minimum":1,"maximum":10},"create_n_ethereum_wallets":{"type":"number","minimum":1,"maximum":10},"create_ethereum_wallet":{"type":"boolean"},"create_solana_wallet":{"type":"boolean"},"create_ethereum_smart_wallet":{"type":"boolean"},"linked_accounts":{"type":"array","items":{"$ref":"#/components/schemas/LinkedAccountInput"},"minItems":1},"custom_metadata":{"$ref":"#/components/schemas/CustomMetadata"}},"required":["linked_accounts"],"additionalProperties":false},"maxItems":20}},"required":["users"],"description":"The payload for batch creating users.","title":"UserBatchCreateInput","x-stainless-model":"users.user_batch_create_input"},"AuthorizationKeyRole":{"type":["string","null"],"enum":["root","manager","delegated-actions"],"description":"The role of an authorization key, controlling what actions it can authorize on a wallet.","title":"AuthorizationKeyRole","x-stainless-model":"wallets.authorization_key_role"},"WalletEntropyType":{"type":"string","enum":["hd","private-key"],"description":"The entropy type of the wallet.","title":"WalletEntropyType","x-stainless-model":"wallets.wallet_entropy_type"},"SolanaWalletDerivationStrategy":{"type":"string","enum":["ENTROPY_TO_SEED","ENTROPY_TO_MNEMONIC_TO_SEED"],"description":"The derivation strategy used for Solana wallets.","title":"SolanaWalletDerivationStrategy","x-stainless-model":"wallets.solana_wallet_derivation_strategy"},"PolicyInput":{"type":"array","items":{"type":"string","minLength":24,"maxLength":24,"format":"cuid2"},"maxItems":1,"description":"An optional list of up to one policy ID to enforce on the wallet.","title":"PolicyInput","x-stainless-model":"wallets.policy_input"},"AdditionalSignerItemInput":{"type":"object","properties":{"signer_id":{"$ref":"#/components/schemas/KeyQuorumId"},"override_policy_ids":{"$ref":"#/components/schemas/PolicyInput"}},"required":["signer_id"],"additionalProperties":false,"description":"A single additional signer for a wallet, with an optional policy override.","title":"AdditionalSignerItemInput","x-stainless-model":"wallets.additional_signer_item_input"},"AdditionalSignerInput":{"type":"array","items":{"$ref":"#/components/schemas/AdditionalSignerItemInput"},"description":"Additional signers for the wallet.","title":"AdditionalSignerInput","x-stainless-model":"wallets.additional_signer_input"},"WalletAdditionalSignerItem":{"type":"object","properties":{"signer_id":{"$ref":"#/components/schemas/KeyQuorumId"},"override_policy_ids":{"$ref":"#/components/schemas/PolicyInput"}},"required":["signer_id"],"additionalProperties":false,"description":"A single additional signer on a wallet, with an optional policy override.","title":"WalletAdditionalSignerItem","x-stainless-model":"wallets.wallet_additional_signer_item"},"WalletAdditionalSigner":{"type":"array","items":{"$ref":"#/components/schemas/WalletAdditionalSignerItem"},"description":"Additional signers for the wallet.","title":"WalletAdditionalSigner","x-stainless-model":"wallets.wallet_additional_signer"},"Address":{"anyOf":[{"type":"string"},{"type":"string"}],"description":"A blockchain wallet address (Ethereum or Solana).","title":"Address","x-stainless-model":"wallets.address"},"WalletCustodian":{"type":"object","properties":{"provider":{"type":"string","description":"The custodian responsible for the wallet."},"provider_user_id":{"type":"string","description":"The resource ID of the beneficiary of the custodial wallet."}},"required":["provider","provider_user_id"],"description":"Information about the custodian managing this wallet.","title":"WalletCustodian","x-stainless-model":"wallets.wallet_custodian"},"CustodialWalletProvider":{"type":"string","enum":["bridge"],"description":"The provider of the custodial wallet.","title":"CustodialWalletProvider","x-stainless-model":"wallets.custodial_wallet_provider"},"CustodialWalletChainType":{"type":"string","enum":["ethereum","solana"],"description":"The chain type of the custodial wallet.","title":"CustodialWalletChainType","x-stainless-model":"wallets.custodial_wallet_chain_type"},"CustodialWalletCreateInput":{"type":"object","properties":{"chain_type":{"$ref":"#/components/schemas/CustodialWalletChainType"},"provider_user_id":{"type":"string","minLength":1,"description":"The resource ID of the beneficiary of the custodial wallet, given by the licensing provider."},"provider":{"$ref":"#/components/schemas/CustodialWalletProvider"},"owner":{"$ref":"#/components/schemas/OwnerInput"},"additional_signers":{"$ref":"#/components/schemas/AdditionalSignerInput"},"policy_ids":{"$ref":"#/components/schemas/PolicyInput"}},"required":["chain_type","provider_user_id","provider"],"additionalProperties":false,"description":"The input for creating a custodial wallet.","title":"CustodialWalletCreateInput","example":{"chain_type":"ethereum","provider":"bridge","provider_user_id":"1234567890"},"x-stainless-model":"wallets.custodial_wallet_create_input"},"CustodialWallet":{"type":"object","properties":{"id":{"type":"string"},"address":{"type":"string"},"chain_type":{"$ref":"#/components/schemas/CustodialWalletChainType"},"custody":{"$ref":"#/components/schemas/WalletCustodian"},"policy_ids":{"type":"array","items":{"type":"string","minLength":24,"maxLength":24}},"additional_signers":{"$ref":"#/components/schemas/WalletAdditionalSigner"},"owner_id":{"anyOf":[{"$ref":"#/components/schemas/KeyQuorumId"},{"type":"null"}]}},"required":["id","address","chain_type","custody","owner_id"],"description":"Information about a custodial wallet.","title":"CustodialWallet","example":{"id":"id2tptkqrxd39qo9j423etij","address":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2","chain_type":"ethereum","custody":{"provider":"bridge","provider_user_id":"1234567890"},"policy_ids":[],"additional_signers":[],"owner_id":null},"x-stainless-model":"wallets.custodial_wallet"},"AmountType":{"type":"string","enum":["exact_input","exact_output"],"description":"Whether the amount refers to the input token or output token.","title":"AmountType","x-stainless-model":"wallets.amount_type"},"CurveType":{"type":"string","enum":["secp256k1","ed25519","starknet"],"description":"The cryptographic curve type used by the wallet.","title":"CurveType","x-stainless-model":"wallets.curve_type"},"HDPath":{"type":"string","pattern":"^[mM]'?(\\/\\d+'?)*$","description":"A BIP-32 hierarchical deterministic wallet derivation path.","title":"HDPath","x-stainless-model":"wallets.hd_path"},"SigningAlgorithm":{"anyOf":[{"type":"string","enum":["ECDSA"]},{"type":"string","enum":["EdDSA"]},{"type":"string","enum":["Schnorr"]}],"description":"The signing algorithm used by the wallet.","title":"SigningAlgorithm","x-stainless-model":"wallets.signing_algorithm"},"Hex":{"type":"string","maxLength":100002,"description":"A hex-encoded string prefixed with '0x', capped at 100002 characters (50,000 bytes).","title":"Hex","x-stainless-model":"wallets.hex"},"Quantity":{"anyOf":[{"$ref":"#/components/schemas/Hex"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}],"description":"A quantity value that can be either a hex string starting with '0x' or a non-negative integer.","title":"Quantity","x-stainless-model":"wallets.quantity"},"EthereumSign7702Authorization":{"type":"object","properties":{"contract":{"type":"string"},"chain_id":{"$ref":"#/components/schemas/Quantity"},"nonce":{"$ref":"#/components/schemas/Quantity"},"r":{"$ref":"#/components/schemas/Hex"},"s":{"$ref":"#/components/schemas/Hex"},"y_parity":{"type":"number"}},"required":["contract","chain_id","nonce","r","s","y_parity"],"description":"A signed EIP-7702 authorization that delegates code execution to a contract address.","title":"EthereumSign7702Authorization","x-stainless-model":"wallets.ethereum_sign_7702_authorization"},"UnsignedStandardEthereumTransaction":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"chain_id":{"$ref":"#/components/schemas/Quantity"},"nonce":{"$ref":"#/components/schemas/Quantity"},"data":{"$ref":"#/components/schemas/Hex"},"value":{"$ref":"#/components/schemas/Quantity"},"type":{"anyOf":[{"type":"number","enum":[0]},{"type":"number","enum":[1]},{"type":"number","enum":[2]},{"type":"number","enum":[4]}]},"gas_limit":{"$ref":"#/components/schemas/Quantity"},"gas_price":{"$ref":"#/components/schemas/Quantity"},"max_fee_per_gas":{"$ref":"#/components/schemas/Quantity"},"max_priority_fee_per_gas":{"$ref":"#/components/schemas/Quantity"},"authorization_list":{"type":"array","items":{"$ref":"#/components/schemas/EthereumSign7702Authorization"},"maxItems":10}},"additionalProperties":false,"description":"An unsigned standard Ethereum transaction object. Supports EVM transaction types 0, 1, 2, and 4.","title":"UnsignedStandardEthereumTransaction","x-stainless-model":"wallets.unsigned_standard_ethereum_transaction"},"TempoCall":{"type":"object","properties":{"to":{"type":"string"},"data":{"$ref":"#/components/schemas/Hex"},"value":{"$ref":"#/components/schemas/Quantity"}},"required":["to"],"additionalProperties":false,"description":"A single call within a Tempo batched transaction.","title":"TempoCall","x-stainless-model":"wallets.tempo_call"},"TempoFeePayerSignature":{"type":"object","properties":{"r":{"$ref":"#/components/schemas/Hex"},"s":{"$ref":"#/components/schemas/Hex"},"y_parity":{"anyOf":[{"type":"number","enum":[0]},{"type":"number","enum":[1]}]}},"required":["r","s","y_parity"],"additionalProperties":false,"description":"A fee payer signature for sponsored Tempo transactions (secp256k1 only).","title":"TempoFeePayerSignature","x-stainless-model":"wallets.tempo_fee_payer_signature"},"TempoAAAuthorization":{"type":"object","properties":{"contract":{"type":"string"},"chain_id":{"$ref":"#/components/schemas/Quantity"},"nonce":{"$ref":"#/components/schemas/Quantity"},"signature":{"$ref":"#/components/schemas/Hex"}},"required":["contract","chain_id","nonce","signature"],"additionalProperties":false,"description":"An AA authorization for Tempo transactions with P256/WebAuthn signatures.","title":"TempoAAAuthorization","x-stainless-model":"wallets.tempo_aa_authorization"},"AccessListEntry":{"type":"object","properties":{"address":{"type":"string"},"storage_keys":{"type":"array","items":{"$ref":"#/components/schemas/Hex"}}},"required":["address","storage_keys"],"additionalProperties":false,"description":"An entry in an EIP-2930 access list, specifying an address and its storage keys.","title":"AccessListEntry","x-stainless-model":"wallets.access_list_entry"},"UnsignedTempoTransaction":{"type":"object","properties":{"type":{"type":"number","enum":[118]},"from":{"type":"string"},"chain_id":{"$ref":"#/components/schemas/Quantity"},"nonce":{"$ref":"#/components/schemas/Quantity"},"gas_limit":{"$ref":"#/components/schemas/Quantity"},"max_fee_per_gas":{"$ref":"#/components/schemas/Quantity"},"max_priority_fee_per_gas":{"$ref":"#/components/schemas/Quantity"},"calls":{"type":"array","items":{"$ref":"#/components/schemas/TempoCall"},"minItems":1},"fee_token":{"type":"string"},"nonce_key":{"$ref":"#/components/schemas/Quantity"},"valid_before":{"$ref":"#/components/schemas/Quantity"},"valid_after":{"$ref":"#/components/schemas/Quantity"},"fee_payer_signature":{"$ref":"#/components/schemas/TempoFeePayerSignature"},"access_list":{"type":"array","items":{"$ref":"#/components/schemas/AccessListEntry"}},"aa_authorization_list":{"type":"array","items":{"$ref":"#/components/schemas/TempoAAAuthorization"},"maxItems":10}},"required":["type","calls"],"additionalProperties":false,"description":"An unsigned Tempo transaction (type 118) with batched calls.","title":"UnsignedTempoTransaction","x-stainless-model":"wallets.unsigned_tempo_transaction"},"UnsignedEthereumTransaction":{"anyOf":[{"$ref":"#/components/schemas/UnsignedStandardEthereumTransaction"},{"$ref":"#/components/schemas/UnsignedTempoTransaction"}],"description":"An unsigned Ethereum transaction object. Supports standard EVM transaction types (0, 1, 2, 4) and Tempo transactions (type 118).","title":"UnsignedEthereumTransaction","x-stainless-model":"wallets.unsigned_ethereum_transaction"},"UserOperationInput":{"type":"object","properties":{"sender":{"type":"string"},"nonce":{"$ref":"#/components/schemas/Hex"},"call_data":{"$ref":"#/components/schemas/Hex"},"paymaster":{"type":"string"},"paymaster_data":{"$ref":"#/components/schemas/Hex"},"paymaster_post_op_gas_limit":{"$ref":"#/components/schemas/Hex"},"paymaster_verification_gas_limit":{"$ref":"#/components/schemas/Hex"},"max_priority_fee_per_gas":{"$ref":"#/components/schemas/Hex"},"max_fee_per_gas":{"$ref":"#/components/schemas/Hex"},"call_gas_limit":{"$ref":"#/components/schemas/Hex"},"verification_gas_limit":{"$ref":"#/components/schemas/Hex"},"pre_verification_gas":{"$ref":"#/components/schemas/Hex"}},"required":["sender","nonce","call_data","max_priority_fee_per_gas","max_fee_per_gas","call_gas_limit","verification_gas_limit","pre_verification_gas"],"additionalProperties":false,"description":"An ERC-4337 user operation.","title":"UserOperationInput","x-stainless-model":"wallets.user_operation_input"},"TypedDataDomainInputParams":{"type":"object","additionalProperties":{"x-stainless-any":true},"description":"The domain parameters for EIP-712 typed data signing.","title":"TypedDataDomainInputParams","x-stainless-model":"wallets.typed_data_domain_input_params"},"TypedDataTypeFieldInput":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"description":"A single field definition in an EIP-712 typed data type.","title":"TypedDataTypeFieldInput","x-stainless-model":"wallets.typed_data_type_field_input"},"TypedDataTypesInputParams":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/TypedDataTypeFieldInput"}},"description":"The type definitions for EIP-712 typed data signing.","title":"TypedDataTypesInputParams","x-stainless-model":"wallets.typed_data_types_input_params"},"HPKEEncryption":{"type":"string","enum":["HPKE"],"description":"The encryption type of the wallet to import. Currently only supports `HPKE`.","title":"HPKEEncryption","x-stainless-model":"wallets.hpke_encryption"},"RecipientPublicKey":{"anyOf":[{"type":"string","pattern":"^-----BEGIN PUBLIC KEY-----\\n[A-Za-z0-9+/=\\n]+-----END PUBLIC KEY-----\\n$"},{"type":"string","pattern":"^[A-Za-z0-9+/=]+$"}],"description":"The recipient public key for HPKE encryption, in PEM or DER (base64-encoded) format.","title":"RecipientPublicKey","x-stainless-model":"wallets.recipient_public_key"},"ExportType":{"type":"string","enum":["display","client"],"description":"The export type. 'display' is for showing the key to the user in the UI, 'client' is for exporting to the client application.","title":"ExportType","x-stainless-model":"wallets.export_type"},"PrivateKeyExportInput":{"type":"object","properties":{"encryption_type":{"$ref":"#/components/schemas/HPKEEncryption"},"recipient_public_key":{"$ref":"#/components/schemas/RecipientPublicKey"},"export_type":{"$ref":"#/components/schemas/ExportType"},"export_seed_phrase":{"type":"boolean"}},"required":["encryption_type","recipient_public_key"],"additionalProperties":false,"description":"Input for exporting a wallet (private key or seed phrase) with HPKE encryption.","title":"PrivateKeyExportInput","x-stainless-model":"wallets.private_key_export_input"},"PrivateKeyExportResponse":{"type":"object","properties":{"encryption_type":{"$ref":"#/components/schemas/HPKEEncryption"},"ciphertext":{"type":"string"},"encapsulated_key":{"type":"string"}},"required":["encryption_type","ciphertext","encapsulated_key"],"description":"Response containing HPKE-encrypted wallet data (private key or seed phrase).","title":"PrivateKeyExportResponse","x-stainless-model":"wallets.private_key_export_response"},"SeedPhraseExportInput":{"type":"object","properties":{"encryption_type":{"$ref":"#/components/schemas/HPKEEncryption"},"recipient_public_key":{"$ref":"#/components/schemas/RecipientPublicKey"},"export_type":{"$ref":"#/components/schemas/ExportType"},"export_seed_phrase":{"type":"boolean"}},"required":["encryption_type","recipient_public_key"],"additionalProperties":false,"description":"Input for exporting a wallet (private key or seed phrase) with HPKE encryption.","title":"SeedPhraseExportInput","x-stainless-model":"wallets.seed_phrase_export_input"},"SeedPhraseExportResponse":{"type":"object","properties":{"encryption_type":{"$ref":"#/components/schemas/HPKEEncryption"},"ciphertext":{"type":"string"},"encapsulated_key":{"type":"string"}},"required":["encryption_type","ciphertext","encapsulated_key"],"description":"Response containing HPKE-encrypted wallet data (private key or seed phrase).","title":"SeedPhraseExportResponse","x-stainless-model":"wallets.seed_phrase_export_response"},"WalletImportSupportedChains":{"type":"string","enum":["ethereum","solana","stellar","tron","sui","aptos"],"description":"The chain type of the wallet to import. Supports `ethereum`, `solana`, `stellar`, `tron`, `sui`, and `aptos`.","title":"WalletImportSupportedChains","x-stainless-model":"wallets.wallet_import_supported_chains"},"WalletImportSupportedEntropyTypes":{"type":"string","enum":["private-key","hd"],"description":"The entropy type of the wallet to import. Supports `private-key` for raw private keys and `hd` for HD wallet seed phrases.","title":"WalletImportSupportedEntropyTypes","x-stainless-model":"wallets.wallet_import_supported_entropy_types"},"WalletImportInitResponse":{"type":"object","properties":{"encryption_type":{"$ref":"#/components/schemas/HPKEEncryption"},"encryption_public_key":{"type":"string"},"import_id":{"type":"string"}},"required":["encryption_type","encryption_public_key"],"description":"Response from initializing a wallet import, containing the encryption public key.","title":"WalletImportInitResponse","x-stainless-model":"wallets.wallet_import_init_response"},"HPKEAeadAlgorithm":{"type":"string","enum":["CHACHA20_POLY1305","AES_GCM256"],"description":"The AEAD algorithm used for HPKE encryption.","title":"HPKEAeadAlgorithm","x-stainless-model":"wallets.hpke_aead_algorithm"},"HPKEImportConfig":{"type":"object","properties":{"aead_algorithm":{"allOf":[{"$ref":"#/components/schemas/HPKEAeadAlgorithm"},{"description":"The AEAD algorithm used for encryption. Defaults to CHACHA20_POLY1305 if not specified."}]},"info":{"type":"string","description":"Application-specific context information (INFO) used during HPKE encryption. Should be base64-encoded bytes."},"aad":{"type":"string","description":"Additional Authenticated Data (AAD) used during encryption. Should be base64-encoded bytes."}},"description":"Optional HPKE configuration for wallet import decryption. These parameters allow importing wallets encrypted by external providers that use different HPKE configurations.","title":"HPKEImportConfig","x-stainless-model":"wallets.hpke_import_config"},"ExportPrivateKeyRpcInput":{"type":"object","properties":{"address":{"type":"string"},"method":{"type":"string","enum":["exportPrivateKey"]},"params":{"$ref":"#/components/schemas/PrivateKeyExportInput"}},"required":["address","method","params"],"additionalProperties":false,"description":"Exports the private key of the wallet.","title":"ExportPrivateKeyRpcInput","x-stainless-model":"wallets.export_private_key_rpc_input"},"ExportPrivateKeyRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["exportPrivateKey"]},"data":{"$ref":"#/components/schemas/PrivateKeyExportInput"}},"required":["method","data"],"description":"Response to the `exportPrivateKey` RPC.","title":"ExportPrivateKeyRpcResponse","x-stainless-model":"wallets.export_private_key_rpc_response"},"ExportSeedPhraseRpcInput":{"type":"object","properties":{"address":{"type":"string"},"method":{"type":"string","enum":["exportSeedPhrase"]},"params":{"$ref":"#/components/schemas/SeedPhraseExportInput"}},"required":["address","method","params"],"additionalProperties":false,"description":"Exports the seed phrase of the wallet.","title":"ExportSeedPhraseRpcInput","x-stainless-model":"wallets.export_seed_phrase_rpc_input"},"ExportSeedPhraseRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["exportSeedPhrase"]},"data":{"$ref":"#/components/schemas/SeedPhraseExportResponse"}},"required":["method","data"],"description":"Response to the `exportSeedPhrase` RPC.","title":"ExportSeedPhraseRpcResponse","x-stainless-model":"wallets.export_seed_phrase_rpc_response"},"RawSignHashParams":{"type":"object","properties":{"hash":{"allOf":[{"$ref":"#/components/schemas/Hex"},{"description":"The hash to sign."}]}},"required":["hash"],"additionalProperties":false,"description":"Parameters for signing a pre-computed hash with the `raw_sign` RPC.","title":"RawSignHashParams","x-stainless-model":"wallets.raw_sign_hash_params"},"RawSignBytesEncoding":{"type":"string","enum":["utf-8","hex","base64"],"description":"Encoding scheme for bytes in the `raw_sign` RPC.","title":"RawSignBytesEncoding","x-stainless-model":"wallets.raw_sign_bytes_encoding"},"RawSignBytesHashFunction":{"type":"string","enum":["keccak256","sha256","blake2b256"],"description":"Hash function for bytes in the `raw_sign` RPC.","title":"RawSignBytesHashFunction","x-stainless-model":"wallets.raw_sign_bytes_hash_function"},"RawSignBytesParams":{"type":"object","properties":{"bytes":{"type":"string","maxLength":100002,"description":"The bytes to hash and sign."},"encoding":{"allOf":[{"$ref":"#/components/schemas/RawSignBytesEncoding"},{"description":"Encoding scheme for the bytes."}]},"hash_function":{"allOf":[{"$ref":"#/components/schemas/RawSignBytesHashFunction"},{"description":"Hash function to use for the bytes."}]}},"required":["bytes","encoding","hash_function"],"additionalProperties":false,"description":"Parameters for hashing and signing bytes with the `raw_sign` RPC.","title":"RawSignBytesParams","x-stainless-model":"wallets.raw_sign_bytes_params"},"RawSignInputParams":{"anyOf":[{"$ref":"#/components/schemas/RawSignHashParams"},{"$ref":"#/components/schemas/RawSignBytesParams"}],"description":"Parameters for the `raw_sign` RPC.","title":"RawSignInputParams","x-stainless-model":"wallets.raw_sign_input_params"},"RawSignInput":{"type":"object","properties":{"params":{"$ref":"#/components/schemas/RawSignInputParams"}},"required":["params"],"additionalProperties":false,"description":"Provide either `hash` (to sign a pre-computed hash) OR `bytes`, `encoding`, and `hash_function` (to hash and then sign). These options are mutually exclusive.","title":"RawSignInput","x-stainless-model":"wallets.raw_sign_input"},"RawSignResponseData":{"type":"object","properties":{"signature":{"$ref":"#/components/schemas/Hex"},"encoding":{"type":"string","enum":["hex"]}},"required":["signature","encoding"],"description":"Data returned by the `raw_sign` RPC.","title":"RawSignResponseData","x-stainless-model":"wallets.raw_sign_response_data"},"RawSignResponse":{"type":"object","properties":{"method":{"type":"string","enum":["raw_sign"]},"data":{"$ref":"#/components/schemas/RawSignResponseData"}},"required":["method","data"],"additionalProperties":false,"description":"Response to the `raw_sign` RPC.","title":"RawSignResponse","x-stainless-model":"wallets.raw_sign_response"},"SignatureType":{"type":"string","enum":["ecdsa","erc1271"],"description":"The type of cryptographic signature to produce. Use \"ecdsa\" for standard ECDSA signatures, or \"erc1271\" for ERC-1271 compliant signatures for smart account wallets.","title":"SignatureType","x-stainless-model":"wallets.signature_type"},"SignatureOptions":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/SignatureType"}},"required":["type"],"additionalProperties":false,"description":"Options controlling signature production for personal_sign and eth_signTypedData_v4.","title":"SignatureOptions","x-stainless-model":"wallets.signature_options"},"EthereumPersonalSignRpcInputParams":{"type":"object","properties":{"message":{"type":"string","maxLength":100002},"encoding":{"anyOf":[{"type":"string","enum":["utf-8"]},{"type":"string","enum":["hex"]}]}},"required":["message","encoding"],"additionalProperties":false,"description":"Parameters for the EVM `personal_sign` RPC.","title":"EthereumPersonalSignRpcInputParams","x-stainless-model":"wallets.ethereum_personal_sign_rpc_input_params"},"EthereumPersonalSignRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["personal_sign"]},"params":{"$ref":"#/components/schemas/EthereumPersonalSignRpcInputParams"},"caip2":{"$ref":"#/components/schemas/CAIP2"},"signature_options":{"$ref":"#/components/schemas/SignatureOptions"},"address":{"type":"string"},"chain_type":{"type":"string","enum":["ethereum"]},"wallet_id":{"type":"string"}},"required":["method","params"],"additionalProperties":false,"description":"Executes the EVM `personal_sign` RPC (EIP-191) to sign a message.","title":"EthereumPersonalSignRpcInput","x-stainless-model":"wallets.ethereum_personal_sign_rpc_input"},"EthereumSignTransactionRpcInputParams":{"type":"object","properties":{"transaction":{"$ref":"#/components/schemas/UnsignedEthereumTransaction"}},"required":["transaction"],"additionalProperties":false,"description":"Parameters for the EVM `eth_signTransaction` RPC.","title":"EthereumSignTransactionRpcInputParams","x-stainless-model":"wallets.ethereum_sign_transaction_rpc_input_params"},"EthereumSignTransactionRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["eth_signTransaction"]},"params":{"$ref":"#/components/schemas/EthereumSignTransactionRpcInputParams"},"address":{"type":"string"},"chain_type":{"type":"string","enum":["ethereum"]},"wallet_id":{"type":"string"}},"required":["method","params"],"additionalProperties":false,"description":"Executes the EVM `eth_signTransaction` RPC to sign a transaction.","title":"EthereumSignTransactionRpcInput","x-stainless-model":"wallets.ethereum_sign_transaction_rpc_input"},"EthereumSendTransactionRpcInputParams":{"type":"object","properties":{"transaction":{"$ref":"#/components/schemas/UnsignedEthereumTransaction"}},"required":["transaction"],"additionalProperties":false,"description":"Parameters for the EVM `eth_sendTransaction` RPC.","title":"EthereumSendTransactionRpcInputParams","x-stainless-model":"wallets.ethereum_send_transaction_rpc_input_params"},"EthereumSendTransactionRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["eth_sendTransaction"]},"caip2":{"$ref":"#/components/schemas/CAIP2"},"params":{"$ref":"#/components/schemas/EthereumSendTransactionRpcInputParams"},"sponsor":{"type":"boolean"},"reference_id":{"type":"string","minLength":1,"maxLength":64},"experimental_data_suffix":{"$ref":"#/components/schemas/Hex"},"address":{"type":"string"},"chain_type":{"type":"string","enum":["ethereum"]},"wallet_id":{"type":"string"}},"required":["method","caip2","params"],"additionalProperties":false,"description":"Executes the EVM `eth_sendTransaction` RPC to sign and broadcast a transaction.","title":"EthereumSendTransactionRpcInput","x-stainless-model":"wallets.ethereum_send_transaction_rpc_input"},"EthereumTypedDataInput":{"type":"object","properties":{"domain":{"$ref":"#/components/schemas/TypedDataDomainInputParams"},"types":{"$ref":"#/components/schemas/TypedDataTypesInputParams"},"message":{"type":"object","additionalProperties":{"x-stainless-any":true}},"primary_type":{"type":"string"}},"required":["domain","types","message","primary_type"],"additionalProperties":false,"description":"EIP-712 typed data object.","title":"EthereumTypedDataInput","x-stainless-model":"wallets.ethereum_typed_data_input"},"EthereumSignTypedDataRpcInputParams":{"type":"object","properties":{"typed_data":{"$ref":"#/components/schemas/EthereumTypedDataInput"}},"required":["typed_data"],"additionalProperties":false,"description":"Parameters for the EVM `eth_signTypedData_v4` RPC.","title":"EthereumSignTypedDataRpcInputParams","x-stainless-model":"wallets.ethereum_sign_typed_data_rpc_input_params"},"EthereumSignTypedDataRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["eth_signTypedData_v4"]},"params":{"$ref":"#/components/schemas/EthereumSignTypedDataRpcInputParams"},"caip2":{"$ref":"#/components/schemas/CAIP2"},"signature_options":{"$ref":"#/components/schemas/SignatureOptions"},"address":{"type":"string"},"chain_type":{"type":"string","enum":["ethereum"]},"wallet_id":{"type":"string"}},"required":["method","params"],"additionalProperties":false,"description":"Executes the EVM `eth_signTypedData_v4` RPC (EIP-712) to sign a typed data object.","title":"EthereumSignTypedDataRpcInput","x-stainless-model":"wallets.ethereum_sign_typed_data_rpc_input"},"EthereumSecp256k1SignRpcInputParams":{"type":"object","properties":{"hash":{"$ref":"#/components/schemas/Hex"}},"required":["hash"],"additionalProperties":false,"description":"Parameters for the EVM `secp256k1_sign` RPC.","title":"EthereumSecp256k1SignRpcInputParams","x-stainless-model":"wallets.ethereum_secp_256k_1_sign_rpc_input_params"},"EthereumSecp256k1SignRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["secp256k1_sign"]},"params":{"$ref":"#/components/schemas/EthereumSecp256k1SignRpcInputParams"},"address":{"type":"string"},"chain_type":{"type":"string","enum":["ethereum"]},"wallet_id":{"type":"string"}},"required":["method","params"],"additionalProperties":false,"description":"Signs a raw hash on the secp256k1 curve.","title":"EthereumSecp256k1SignRpcInput","x-stainless-model":"wallets.ethereum_secp_256k_1_sign_rpc_input"},"EthereumSign7702AuthorizationRpcInputParams":{"type":"object","properties":{"contract":{"type":"string"},"chain_id":{"$ref":"#/components/schemas/Quantity"},"nonce":{"$ref":"#/components/schemas/Quantity"},"executor":{"type":"string","enum":["self"]}},"required":["contract","chain_id"],"additionalProperties":false,"description":"Parameters for the EVM `eth_sign7702Authorization` RPC.","title":"EthereumSign7702AuthorizationRpcInputParams","x-stainless-model":"wallets.ethereum_sign_7702_authorization_rpc_input_params"},"EthereumSign7702AuthorizationRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["eth_sign7702Authorization"]},"params":{"$ref":"#/components/schemas/EthereumSign7702AuthorizationRpcInputParams"},"address":{"type":"string"},"chain_type":{"type":"string","enum":["ethereum"]},"wallet_id":{"type":"string"}},"required":["method","params"],"additionalProperties":false,"description":"Signs an EIP-7702 authorization.","title":"EthereumSign7702AuthorizationRpcInput","x-stainless-model":"wallets.ethereum_sign_7702_authorization_rpc_input"},"EthereumSignUserOperationRpcInputParams":{"type":"object","properties":{"contract":{"type":"string"},"user_operation":{"$ref":"#/components/schemas/UserOperationInput"},"chain_id":{"$ref":"#/components/schemas/Quantity"}},"required":["contract","user_operation","chain_id"],"additionalProperties":false,"description":"Parameters for the EVM `eth_signUserOperation` RPC.","title":"EthereumSignUserOperationRpcInputParams","x-stainless-model":"wallets.ethereum_sign_user_operation_rpc_input_params"},"EthereumSignUserOperationRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["eth_signUserOperation"]},"params":{"$ref":"#/components/schemas/EthereumSignUserOperationRpcInputParams"},"address":{"type":"string"},"chain_type":{"type":"string","enum":["ethereum"]},"wallet_id":{"type":"string"}},"required":["method","params"],"additionalProperties":false,"description":"Executes an RPC method to hash and sign a UserOperation.","title":"EthereumSignUserOperationRpcInput","x-stainless-model":"wallets.ethereum_sign_user_operation_rpc_input"},"EthereumSendCallsCall":{"type":"object","properties":{"to":{"type":"string"},"value":{"$ref":"#/components/schemas/Quantity"},"data":{"$ref":"#/components/schemas/Hex"}},"required":["to"],"additionalProperties":false,"description":"A single call within a batched wallet_sendCalls request.","title":"EthereumSendCallsCall","x-stainless-model":"wallets.ethereum_send_calls_call"},"EthereumSendCallsRpcInputParams":{"type":"object","properties":{"calls":{"type":"array","items":{"$ref":"#/components/schemas/EthereumSendCallsCall"},"minItems":1,"maxItems":35}},"required":["calls"],"additionalProperties":false,"description":"Parameters for the `wallet_sendCalls` RPC.","title":"EthereumSendCallsRpcInputParams","x-stainless-model":"wallets.ethereum_send_calls_rpc_input_params"},"EthereumSendCallsRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["wallet_sendCalls"]},"caip2":{"$ref":"#/components/schemas/CAIP2"},"params":{"$ref":"#/components/schemas/EthereumSendCallsRpcInputParams"},"sponsor":{"type":"boolean"},"experimental_data_suffix":{"$ref":"#/components/schemas/Hex"},"address":{"type":"string"},"chain_type":{"type":"string","enum":["ethereum"]},"wallet_id":{"type":"string"}},"required":["method","caip2","params"],"additionalProperties":false,"description":"Executes the `wallet_sendCalls` RPC (EIP-5792) to batch multiple calls into a single atomic transaction.","title":"EthereumSendCallsRpcInput","x-stainless-model":"wallets.ethereum_send_calls_rpc_input"},"EthereumRpcInput":{"oneOf":[{"$ref":"#/components/schemas/EthereumSignTransactionRpcInput"},{"$ref":"#/components/schemas/EthereumSendTransactionRpcInput"},{"$ref":"#/components/schemas/EthereumPersonalSignRpcInput"},{"$ref":"#/components/schemas/EthereumSignTypedDataRpcInput"},{"$ref":"#/components/schemas/EthereumSecp256k1SignRpcInput"},{"$ref":"#/components/schemas/EthereumSign7702AuthorizationRpcInput"},{"$ref":"#/components/schemas/EthereumSignUserOperationRpcInput"},{"$ref":"#/components/schemas/EthereumSendCallsRpcInput"}],"discriminator":{"propertyName":"method","mapping":{"eth_signTransaction":"#/components/schemas/EthereumSignTransactionRpcInput","eth_sendTransaction":"#/components/schemas/EthereumSendTransactionRpcInput","personal_sign":"#/components/schemas/EthereumPersonalSignRpcInput","eth_signTypedData_v4":"#/components/schemas/EthereumSignTypedDataRpcInput","secp256k1_sign":"#/components/schemas/EthereumSecp256k1SignRpcInput","eth_sign7702Authorization":"#/components/schemas/EthereumSign7702AuthorizationRpcInput","eth_signUserOperation":"#/components/schemas/EthereumSignUserOperationRpcInput","wallet_sendCalls":"#/components/schemas/EthereumSendCallsRpcInput"}},"description":"Request body for Ethereum wallet RPC operations, discriminated by method.","title":"EthereumRpcInput","x-stainless-model":"wallets.ethereum_rpc_input"},"EthereumPersonalSignRpcResponseData":{"type":"object","properties":{"signature":{"type":"string"},"encoding":{"type":"string","enum":["hex"]}},"required":["signature","encoding"],"description":"Data returned by the EVM `personal_sign` RPC.","title":"EthereumPersonalSignRpcResponseData","x-stainless-model":"wallets.ethereum_personal_sign_rpc_response_data"},"EthereumPersonalSignRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["personal_sign"]},"data":{"$ref":"#/components/schemas/EthereumPersonalSignRpcResponseData"}},"required":["method","data"],"description":"Response to the EVM `personal_sign` RPC.","title":"EthereumPersonalSignRpcResponse","x-stainless-model":"wallets.ethereum_personal_sign_rpc_response"},"EthereumSignTransactionRpcResponseData":{"type":"object","properties":{"signed_transaction":{"type":"string"},"encoding":{"type":"string","enum":["rlp"]}},"required":["signed_transaction","encoding"],"description":"Data returned by the EVM `eth_signTransaction` RPC.","title":"EthereumSignTransactionRpcResponseData","x-stainless-model":"wallets.ethereum_sign_transaction_rpc_response_data"},"EthereumSignTransactionRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["eth_signTransaction"]},"data":{"$ref":"#/components/schemas/EthereumSignTransactionRpcResponseData"}},"required":["method","data"],"description":"Response to the EVM `eth_signTransaction` RPC.","title":"EthereumSignTransactionRpcResponse","x-stainless-model":"wallets.ethereum_sign_transaction_rpc_response"},"EthereumSendTransactionRpcResponseData":{"type":"object","properties":{"transaction_id":{"type":"string"},"hash":{"type":"string"},"caip2":{"$ref":"#/components/schemas/CAIP2"},"transaction_request":{"$ref":"#/components/schemas/UnsignedEthereumTransaction"},"user_operation_hash":{"type":"string"},"reference_id":{"type":["string","null"]}},"required":["hash","caip2"],"description":"Data returned by the EVM `eth_sendTransaction` RPC.","title":"EthereumSendTransactionRpcResponseData","x-stainless-model":"wallets.ethereum_send_transaction_rpc_response_data"},"EthereumSendTransactionRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["eth_sendTransaction"]},"data":{"$ref":"#/components/schemas/EthereumSendTransactionRpcResponseData"}},"required":["method","data"],"description":"Response to the EVM `eth_sendTransaction` RPC.","title":"EthereumSendTransactionRpcResponse","x-stainless-model":"wallets.ethereum_send_transaction_rpc_response"},"EthereumSignTypedDataRpcResponseData":{"type":"object","properties":{"signature":{"type":"string"},"encoding":{"type":"string","enum":["hex"]}},"required":["signature","encoding"],"description":"Data returned by the EVM `eth_signTypedData_v4` RPC.","title":"EthereumSignTypedDataRpcResponseData","x-stainless-model":"wallets.ethereum_sign_typed_data_rpc_response_data"},"EthereumSignTypedDataRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["eth_signTypedData_v4"]},"data":{"$ref":"#/components/schemas/EthereumSignTypedDataRpcResponseData"}},"required":["method","data"],"description":"Response to the EVM `eth_signTypedData_v4` RPC.","title":"EthereumSignTypedDataRpcResponse","x-stainless-model":"wallets.ethereum_sign_typed_data_rpc_response"},"EthereumSecp256k1SignRpcResponseData":{"type":"object","properties":{"signature":{"$ref":"#/components/schemas/Hex"},"encoding":{"type":"string","enum":["hex"]}},"required":["signature","encoding"],"description":"Data returned by the EVM `secp256k1_sign` RPC.","title":"EthereumSecp256k1SignRpcResponseData","x-stainless-model":"wallets.ethereum_secp_256k_1_sign_rpc_response_data"},"EthereumSecp256k1SignRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["secp256k1_sign"]},"data":{"$ref":"#/components/schemas/EthereumSecp256k1SignRpcResponseData"}},"required":["method","data"],"description":"Response to the EVM `secp256k1_sign` RPC.","title":"EthereumSecp256k1SignRpcResponse","x-stainless-model":"wallets.ethereum_secp_256k_1_sign_rpc_response"},"EthereumSign7702AuthorizationRpcResponseData":{"type":"object","properties":{"authorization":{"$ref":"#/components/schemas/EthereumSign7702Authorization"}},"required":["authorization"],"description":"Data returned by the EVM `eth_sign7702Authorization` RPC.","title":"EthereumSign7702AuthorizationRpcResponseData","x-stainless-model":"wallets.ethereum_sign_7702_authorization_rpc_response_data"},"EthereumSign7702AuthorizationRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["eth_sign7702Authorization"]},"data":{"$ref":"#/components/schemas/EthereumSign7702AuthorizationRpcResponseData"}},"required":["method","data"],"description":"Response to the EVM `eth_sign7702Authorization` RPC.","title":"EthereumSign7702AuthorizationRpcResponse","x-stainless-model":"wallets.ethereum_sign_7702_authorization_rpc_response"},"EthereumSignUserOperationRpcResponseData":{"type":"object","properties":{"signature":{"type":"string"},"encoding":{"type":"string","enum":["hex"]}},"required":["signature","encoding"],"description":"Data returned by the EVM `eth_signUserOperation` RPC.","title":"EthereumSignUserOperationRpcResponseData","x-stainless-model":"wallets.ethereum_sign_user_operation_rpc_response_data"},"EthereumSignUserOperationRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["eth_signUserOperation"]},"data":{"$ref":"#/components/schemas/EthereumSignUserOperationRpcResponseData"}},"required":["method","data"],"description":"Response to the EVM `eth_signUserOperation` RPC.","title":"EthereumSignUserOperationRpcResponse","x-stainless-model":"wallets.ethereum_sign_user_operation_rpc_response"},"EthereumSendCallsRpcResponseData":{"type":"object","properties":{"transaction_id":{"type":"string"},"caip2":{"$ref":"#/components/schemas/CAIP2"}},"required":["transaction_id","caip2"],"description":"Data returned by the `wallet_sendCalls` RPC.","title":"EthereumSendCallsRpcResponseData","x-stainless-model":"wallets.ethereum_send_calls_rpc_response_data"},"EthereumSendCallsRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["wallet_sendCalls"]},"data":{"$ref":"#/components/schemas/EthereumSendCallsRpcResponseData"}},"required":["method","data"],"description":"Response to the `wallet_sendCalls` RPC.","title":"EthereumSendCallsRpcResponse","x-stainless-model":"wallets.ethereum_send_calls_rpc_response"},"EthereumRpcResponse":{"oneOf":[{"$ref":"#/components/schemas/EthereumPersonalSignRpcResponse"},{"$ref":"#/components/schemas/EthereumSignTypedDataRpcResponse"},{"$ref":"#/components/schemas/EthereumSignTransactionRpcResponse"},{"$ref":"#/components/schemas/EthereumSendTransactionRpcResponse"},{"$ref":"#/components/schemas/EthereumSignUserOperationRpcResponse"},{"$ref":"#/components/schemas/EthereumSign7702AuthorizationRpcResponse"},{"$ref":"#/components/schemas/EthereumSecp256k1SignRpcResponse"},{"$ref":"#/components/schemas/EthereumSendCallsRpcResponse"}],"discriminator":{"propertyName":"method","mapping":{"personal_sign":"#/components/schemas/EthereumPersonalSignRpcResponse","eth_signTypedData_v4":"#/components/schemas/EthereumSignTypedDataRpcResponse","eth_signTransaction":"#/components/schemas/EthereumSignTransactionRpcResponse","eth_sendTransaction":"#/components/schemas/EthereumSendTransactionRpcResponse","eth_signUserOperation":"#/components/schemas/EthereumSignUserOperationRpcResponse","eth_sign7702Authorization":"#/components/schemas/EthereumSign7702AuthorizationRpcResponse","secp256k1_sign":"#/components/schemas/EthereumSecp256k1SignRpcResponse","wallet_sendCalls":"#/components/schemas/EthereumSendCallsRpcResponse"}},"description":"Response body for Ethereum wallet RPC operations, discriminated by method.","title":"EthereumRpcResponse","x-stainless-model":"wallets.ethereum_rpc_response"},"SolanaSignTransactionRpcInputParams":{"type":"object","properties":{"transaction":{"type":"string","maxLength":100002},"encoding":{"type":"string","enum":["base64"]}},"required":["transaction","encoding"],"additionalProperties":false,"description":"Parameters for the SVM `signTransaction` RPC.","title":"SolanaSignTransactionRpcInputParams","x-stainless-model":"wallets.solana_sign_transaction_rpc_input_params"},"SolanaSignTransactionRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["signTransaction"]},"params":{"$ref":"#/components/schemas/SolanaSignTransactionRpcInputParams"},"address":{"type":"string"},"chain_type":{"type":"string","enum":["solana"]},"wallet_id":{"type":"string"}},"required":["method","params"],"additionalProperties":false,"description":"Executes the SVM `signTransaction` RPC to sign a transaction.","title":"SolanaSignTransactionRpcInput","x-stainless-model":"wallets.solana_sign_transaction_rpc_input"},"SolanaSignAndSendTransactionRpcInputParams":{"type":"object","properties":{"transaction":{"type":"string","maxLength":100002},"encoding":{"type":"string","enum":["base64"]}},"required":["transaction","encoding"],"additionalProperties":false,"description":"Parameters for the SVM `signAndSendTransaction` RPC.","title":"SolanaSignAndSendTransactionRpcInputParams","x-stainless-model":"wallets.solana_sign_and_send_transaction_rpc_input_params"},"SolanaSignAndSendTransactionRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["signAndSendTransaction"]},"caip2":{"$ref":"#/components/schemas/CAIP2"},"params":{"$ref":"#/components/schemas/SolanaSignAndSendTransactionRpcInputParams"},"sponsor":{"type":"boolean"},"reference_id":{"type":"string","minLength":1,"maxLength":64},"optimistic_broadcast":{"type":"boolean"},"address":{"type":"string"},"chain_type":{"type":"string","enum":["solana"]},"wallet_id":{"type":"string"}},"required":["method","caip2","params"],"additionalProperties":false,"description":"Executes the SVM `signAndSendTransaction` RPC to sign and broadcast a transaction.","title":"SolanaSignAndSendTransactionRpcInput","x-stainless-model":"wallets.solana_sign_and_send_transaction_rpc_input"},"SolanaSignMessageRpcInputParams":{"type":"object","properties":{"message":{"type":"string","maxLength":100002},"encoding":{"type":"string","enum":["base64"]}},"required":["message","encoding"],"additionalProperties":false,"description":"Parameters for the SVM `signMessage` RPC.","title":"SolanaSignMessageRpcInputParams","x-stainless-model":"wallets.solana_sign_message_rpc_input_params"},"SolanaSignMessageRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["signMessage"]},"params":{"$ref":"#/components/schemas/SolanaSignMessageRpcInputParams"},"address":{"type":"string"},"chain_type":{"type":"string","enum":["solana"]},"wallet_id":{"type":"string"}},"required":["method","params"],"additionalProperties":false,"description":"Executes the SVM `signMessage` RPC to sign a message.","title":"SolanaSignMessageRpcInput","x-stainless-model":"wallets.solana_sign_message_rpc_input"},"SolanaRpcInput":{"oneOf":[{"$ref":"#/components/schemas/SolanaSignTransactionRpcInput"},{"$ref":"#/components/schemas/SolanaSignAndSendTransactionRpcInput"},{"$ref":"#/components/schemas/SolanaSignMessageRpcInput"}],"discriminator":{"propertyName":"method","mapping":{"signTransaction":"#/components/schemas/SolanaSignTransactionRpcInput","signAndSendTransaction":"#/components/schemas/SolanaSignAndSendTransactionRpcInput","signMessage":"#/components/schemas/SolanaSignMessageRpcInput"}},"description":"Request body for Solana wallet RPC operations, discriminated by method.","title":"SolanaRpcInput","x-stainless-model":"wallets.solana_rpc_input"},"SolanaSignTransactionRpcResponseData":{"type":"object","properties":{"signed_transaction":{"type":"string"},"encoding":{"type":"string","enum":["base64"]}},"required":["signed_transaction","encoding"],"description":"Data returned by the SVM `signTransaction` RPC.","title":"SolanaSignTransactionRpcResponseData","x-stainless-model":"wallets.solana_sign_transaction_rpc_response_data"},"SolanaSignTransactionRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["signTransaction"]},"data":{"$ref":"#/components/schemas/SolanaSignTransactionRpcResponseData"}},"required":["method","data"],"description":"Response to the SVM `signTransaction` RPC.","title":"SolanaSignTransactionRpcResponse","x-stainless-model":"wallets.solana_sign_transaction_rpc_response"},"SolanaSignAndSendTransactionRpcResponseData":{"type":"object","properties":{"transaction_id":{"type":"string"},"hash":{"type":"string"},"caip2":{"$ref":"#/components/schemas/CAIP2"},"reference_id":{"type":["string","null"]},"signed_transaction":{"type":"string"}},"required":["hash","caip2"],"description":"Data returned by the SVM `signAndSendTransaction` RPC.","title":"SolanaSignAndSendTransactionRpcResponseData","x-stainless-model":"wallets.solana_sign_and_send_transaction_rpc_response_data"},"SolanaSignAndSendTransactionRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["signAndSendTransaction"]},"data":{"$ref":"#/components/schemas/SolanaSignAndSendTransactionRpcResponseData"}},"required":["method","data"],"description":"Response to the SVM `signAndSendTransaction` RPC.","title":"SolanaSignAndSendTransactionRpcResponse","x-stainless-model":"wallets.solana_sign_and_send_transaction_rpc_response"},"SolanaSignMessageRpcResponseData":{"type":"object","properties":{"signature":{"type":"string"},"encoding":{"type":"string","enum":["base64"]}},"required":["signature","encoding"],"description":"Data returned by the SVM `signMessage` RPC.","title":"SolanaSignMessageRpcResponseData","x-stainless-model":"wallets.solana_sign_message_rpc_response_data"},"SolanaSignMessageRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["signMessage"]},"data":{"$ref":"#/components/schemas/SolanaSignMessageRpcResponseData"}},"required":["method","data"],"description":"Response to the SVM `signMessage` RPC.","title":"SolanaSignMessageRpcResponse","x-stainless-model":"wallets.solana_sign_message_rpc_response"},"SolanaRpcResponse":{"oneOf":[{"$ref":"#/components/schemas/SolanaSignMessageRpcResponse"},{"$ref":"#/components/schemas/SolanaSignTransactionRpcResponse"},{"$ref":"#/components/schemas/SolanaSignAndSendTransactionRpcResponse"}],"discriminator":{"propertyName":"method","mapping":{"signMessage":"#/components/schemas/SolanaSignMessageRpcResponse","signTransaction":"#/components/schemas/SolanaSignTransactionRpcResponse","signAndSendTransaction":"#/components/schemas/SolanaSignAndSendTransactionRpcResponse"}},"description":"Response body for Solana wallet RPC operations, discriminated by method.","title":"SolanaRpcResponse","x-stainless-model":"wallets.solana_rpc_response"},"SparkNetwork":{"type":"string","enum":["MAINNET","REGTEST"],"description":"The Spark network.","title":"SparkNetwork","x-stainless-model":"wallets.spark_network"},"SparkSigningKeyshare":{"type":"object","properties":{"owner_identifiers":{"type":"array","items":{"type":"string"}},"threshold":{"type":"number"},"public_key":{"type":"string"},"public_shares":{"type":"object","additionalProperties":{"type":"string"}},"updated_time":{"type":"string"}},"required":["owner_identifiers","threshold","public_key","public_shares","updated_time"],"description":"A Spark signing keyshare.","title":"SparkSigningKeyshare","x-stainless-model":"wallets.spark_signing_keyshare"},"SparkWalletLeaf":{"type":"object","properties":{"id":{"type":"string"},"tree_id":{"type":"string"},"value":{"type":"number"},"parent_node_id":{"type":"string"},"node_tx":{"type":"string"},"refund_tx":{"type":"string"},"vout":{"type":"number"},"verifying_public_key":{"type":"string"},"owner_identity_public_key":{"type":"string"},"signing_keyshare":{"$ref":"#/components/schemas/SparkSigningKeyshare"},"status":{"type":"string"},"network":{"$ref":"#/components/schemas/SparkNetwork"}},"required":["id","tree_id","value","node_tx","refund_tx","vout","verifying_public_key","owner_identity_public_key","status","network"],"description":"A Spark wallet leaf node.","title":"SparkWalletLeaf","x-stainless-model":"wallets.spark_wallet_leaf"},"SparkTransferLeaf":{"type":"object","properties":{"leaf":{"$ref":"#/components/schemas/SparkWalletLeaf"},"secret_cipher":{"type":"string"},"signature":{"type":"string"},"intermediate_refund_tx":{"type":"string"}},"required":["secret_cipher","signature","intermediate_refund_tx"],"description":"A Spark transfer leaf.","title":"SparkTransferLeaf","x-stainless-model":"wallets.spark_transfer_leaf"},"SparkTransfer":{"type":"object","properties":{"id":{"type":"string"},"sender_identity_public_key":{"type":"string"},"receiver_identity_public_key":{"type":"string"},"status":{"type":"string"},"total_value":{"type":"number"},"expiry_time":{"type":"string"},"leaves":{"type":"array","items":{"$ref":"#/components/schemas/SparkTransferLeaf"}},"created_time":{"type":"string"},"updated_time":{"type":"string"},"type":{"type":"string"},"transfer_direction":{"type":"string"}},"required":["id","sender_identity_public_key","receiver_identity_public_key","status","total_value","leaves","type","transfer_direction"],"description":"A Spark transfer.","title":"SparkTransfer","x-stainless-model":"wallets.spark_transfer"},"SparkUserTokenMetadata":{"type":"object","properties":{"raw_token_identifier":{"type":"string"},"token_public_key":{"type":"string"},"token_name":{"type":"string"},"token_ticker":{"type":"string"},"decimals":{"type":"number"},"max_supply":{"type":"string"}},"required":["raw_token_identifier","token_public_key","token_name","token_ticker","decimals","max_supply"],"description":"Metadata for a Spark user token.","title":"SparkUserTokenMetadata","x-stainless-model":"wallets.spark_user_token_metadata"},"SparkTokenBalance":{"type":"object","properties":{"balance":{"type":"string"},"token_metadata":{"$ref":"#/components/schemas/SparkUserTokenMetadata"}},"required":["balance","token_metadata"],"description":"Balance of a Spark token.","title":"SparkTokenBalance","x-stainless-model":"wallets.spark_token_balance"},"SparkBalance":{"type":"object","properties":{"balance":{"type":"string"},"token_balances":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SparkTokenBalance"}}},"required":["balance","token_balances"],"description":"The balance of a Spark wallet.","title":"SparkBalance","x-stainless-model":"wallets.spark_balance"},"TokenOutput":{"type":"object","properties":{"id":{"type":"string"},"owner_public_key":{"type":"string"},"revocation_commitment":{"type":"string"},"withdraw_bond_sats":{"type":"number"},"withdraw_relative_block_locktime":{"type":"number"},"token_public_key":{"type":"string"},"token_identifier":{"type":"string"},"token_amount":{"type":"string"}},"required":["owner_public_key","token_amount"],"description":"A Spark token output.","title":"TokenOutput","x-stainless-model":"wallets.token_output"},"OutputWithPreviousTransactionData":{"type":"object","properties":{"output":{"$ref":"#/components/schemas/TokenOutput"},"previous_transaction_hash":{"type":"string"},"previous_transaction_vout":{"type":"number"}},"required":["previous_transaction_hash","previous_transaction_vout"],"description":"A Spark token output with its previous transaction data.","title":"OutputWithPreviousTransactionData","x-stainless-model":"wallets.output_with_previous_transaction_data"},"SparkLightningFee":{"type":"object","properties":{"original_value":{"type":"number"},"original_unit":{"type":"string"}},"required":["original_value","original_unit"],"description":"The fee for a Spark Lightning payment.","title":"SparkLightningFee","x-stainless-model":"wallets.spark_lightning_fee"},"SparkLightningReceiveRequest":{"type":"object","properties":{"id":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"network":{"type":"string"},"invoice":{"x-stainless-any":true},"status":{"type":"string"},"typename":{"type":"string"},"transfer":{"x-stainless-any":true},"payment_preimage":{"type":"string"},"receiver_identity_public_key":{"type":"string"}},"required":["id","created_at","updated_at","network","status","typename"],"description":"A Spark Lightning receive request.","title":"SparkLightningReceiveRequest","x-stainless-model":"wallets.spark_lightning_receive_request"},"SparkLightningSendRequest":{"type":"object","properties":{"id":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"network":{"type":"string"},"encoded_invoice":{"type":"string"},"fee":{"$ref":"#/components/schemas/SparkLightningFee"},"idempotency_key":{"type":"string"},"status":{"type":"string"},"typename":{"type":"string"},"transfer":{"x-stainless-any":true},"payment_preimage":{"type":"string"}},"required":["id","created_at","updated_at","network","encoded_invoice","fee","idempotency_key","status","typename"],"description":"A Spark Lightning send request.","title":"SparkLightningSendRequest","x-stainless-model":"wallets.spark_lightning_send_request"},"SparkTransferRpcInputParams":{"type":"object","properties":{"receiver_spark_address":{"type":"string"},"amount_sats":{"type":"number"}},"required":["receiver_spark_address","amount_sats"],"additionalProperties":false,"description":"Parameters for the Spark `transfer` RPC.","title":"SparkTransferRpcInputParams","x-stainless-model":"wallets.spark_transfer_rpc_input_params"},"SparkTransferRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["transfer"]},"params":{"$ref":"#/components/schemas/SparkTransferRpcInputParams"},"network":{"allOf":[{"$ref":"#/components/schemas/SparkNetwork"},{"default":"MAINNET"}]}},"required":["method","params"],"additionalProperties":false,"description":"Transfers satoshis to a Spark address.","title":"SparkTransferRpcInput","x-stainless-model":"wallets.spark_transfer_rpc_input"},"SparkGetBalanceRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["getBalance"]},"network":{"allOf":[{"$ref":"#/components/schemas/SparkNetwork"},{"default":"MAINNET"}]}},"required":["method"],"additionalProperties":false,"description":"Gets the balance of the Spark wallet.","title":"SparkGetBalanceRpcInput","x-stainless-model":"wallets.spark_get_balance_rpc_input"},"SparkOutputSelectionStrategy":{"type":"string","enum":["SMALL_FIRST","LARGE_FIRST"],"description":"Strategy for selecting outputs in a Spark token transfer.","title":"SparkOutputSelectionStrategy","x-stainless-model":"wallets.spark_output_selection_strategy"},"SparkTransferTokensRpcInputParams":{"type":"object","properties":{"token_identifier":{"type":"string"},"token_amount":{"type":"number"},"receiver_spark_address":{"type":"string"},"output_selection_strategy":{"$ref":"#/components/schemas/SparkOutputSelectionStrategy"},"selected_outputs":{"type":"array","items":{"$ref":"#/components/schemas/OutputWithPreviousTransactionData"}}},"required":["token_identifier","token_amount","receiver_spark_address"],"additionalProperties":false,"description":"Parameters for the Spark `transferTokens` RPC.","title":"SparkTransferTokensRpcInputParams","x-stainless-model":"wallets.spark_transfer_tokens_rpc_input_params"},"SparkTransferTokensRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["transferTokens"]},"params":{"$ref":"#/components/schemas/SparkTransferTokensRpcInputParams"},"network":{"allOf":[{"$ref":"#/components/schemas/SparkNetwork"},{"default":"MAINNET"}]}},"required":["method","params"],"additionalProperties":false,"description":"Transfers tokens to a Spark address.","title":"SparkTransferTokensRpcInput","x-stainless-model":"wallets.spark_transfer_tokens_rpc_input"},"SparkGetStaticDepositAddressRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["getStaticDepositAddress"]},"network":{"allOf":[{"$ref":"#/components/schemas/SparkNetwork"},{"default":"MAINNET"}]}},"required":["method"],"additionalProperties":false,"description":"Gets a static deposit address for the Spark wallet.","title":"SparkGetStaticDepositAddressRpcInput","x-stainless-model":"wallets.spark_get_static_deposit_address_rpc_input"},"SparkGetClaimStaticDepositQuoteRpcInputParams":{"type":"object","properties":{"transaction_id":{"type":"string"},"output_index":{"type":"number"}},"required":["transaction_id"],"additionalProperties":false,"description":"Parameters for the Spark `getClaimStaticDepositQuote` RPC.","title":"SparkGetClaimStaticDepositQuoteRpcInputParams","x-stainless-model":"wallets.spark_get_claim_static_deposit_quote_rpc_input_params"},"SparkGetClaimStaticDepositQuoteRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["getClaimStaticDepositQuote"]},"params":{"$ref":"#/components/schemas/SparkGetClaimStaticDepositQuoteRpcInputParams"},"network":{"allOf":[{"$ref":"#/components/schemas/SparkNetwork"},{"default":"MAINNET"}]}},"required":["method","params"],"additionalProperties":false,"description":"Gets a quote for claiming a static deposit.","title":"SparkGetClaimStaticDepositQuoteRpcInput","x-stainless-model":"wallets.spark_get_claim_static_deposit_quote_rpc_input"},"SparkClaimStaticDepositRpcInputParams":{"type":"object","properties":{"transaction_id":{"type":"string"},"output_index":{"type":"number"},"credit_amount_sats":{"type":"number"},"signature":{"type":"string"}},"required":["transaction_id","credit_amount_sats","signature"],"additionalProperties":false,"description":"Parameters for the Spark `claimStaticDeposit` RPC.","title":"SparkClaimStaticDepositRpcInputParams","x-stainless-model":"wallets.spark_claim_static_deposit_rpc_input_params"},"SparkClaimStaticDepositRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["claimStaticDeposit"]},"params":{"$ref":"#/components/schemas/SparkClaimStaticDepositRpcInputParams"},"network":{"allOf":[{"$ref":"#/components/schemas/SparkNetwork"},{"default":"MAINNET"}]}},"required":["method","params"],"additionalProperties":false,"description":"Claims a static deposit into the Spark wallet.","title":"SparkClaimStaticDepositRpcInput","x-stainless-model":"wallets.spark_claim_static_deposit_rpc_input"},"SparkCreateLightningInvoiceRpcInputParams":{"type":"object","properties":{"amount_sats":{"type":"number"},"memo":{"type":"string"},"expiry_seconds":{"type":"number"},"include_spark_address":{"type":"boolean"},"receiver_identity_pubkey":{"type":"string"},"description_hash":{"type":"string"}},"required":["amount_sats"],"additionalProperties":false,"description":"Parameters for the Spark `createLightningInvoice` RPC.","title":"SparkCreateLightningInvoiceRpcInputParams","x-stainless-model":"wallets.spark_create_lightning_invoice_rpc_input_params"},"SparkCreateLightningInvoiceRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["createLightningInvoice"]},"params":{"$ref":"#/components/schemas/SparkCreateLightningInvoiceRpcInputParams"},"network":{"allOf":[{"$ref":"#/components/schemas/SparkNetwork"},{"default":"MAINNET"}]}},"required":["method","params"],"additionalProperties":false,"description":"Creates a Lightning invoice for the Spark wallet.","title":"SparkCreateLightningInvoiceRpcInput","x-stainless-model":"wallets.spark_create_lightning_invoice_rpc_input"},"SparkPayLightningInvoiceRpcInputParams":{"type":"object","properties":{"invoice":{"type":"string"},"max_fee_sats":{"type":"number"},"prefer_spark":{"type":"boolean"},"amount_sats_to_send":{"type":"number"}},"required":["invoice","max_fee_sats"],"additionalProperties":false,"description":"Parameters for the Spark `payLightningInvoice` RPC.","title":"SparkPayLightningInvoiceRpcInputParams","x-stainless-model":"wallets.spark_pay_lightning_invoice_rpc_input_params"},"SparkPayLightningInvoiceRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["payLightningInvoice"]},"params":{"$ref":"#/components/schemas/SparkPayLightningInvoiceRpcInputParams"},"network":{"allOf":[{"$ref":"#/components/schemas/SparkNetwork"},{"default":"MAINNET"}]}},"required":["method","params"],"additionalProperties":false,"description":"Pays a Lightning invoice from the Spark wallet.","title":"SparkPayLightningInvoiceRpcInput","x-stainless-model":"wallets.spark_pay_lightning_invoice_rpc_input"},"SparkSignMessageWithIdentityKeyRpcInputParams":{"type":"object","properties":{"message":{"type":"string"},"compact":{"type":"boolean"}},"required":["message"],"additionalProperties":false,"description":"Parameters for the Spark `signMessageWithIdentityKey` RPC.","title":"SparkSignMessageWithIdentityKeyRpcInputParams","x-stainless-model":"wallets.spark_sign_message_with_identity_key_rpc_input_params"},"SparkSignMessageWithIdentityKeyRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["signMessageWithIdentityKey"]},"params":{"$ref":"#/components/schemas/SparkSignMessageWithIdentityKeyRpcInputParams"},"network":{"allOf":[{"$ref":"#/components/schemas/SparkNetwork"},{"default":"MAINNET"}]}},"required":["method","params"],"additionalProperties":false,"description":"Signs a message with the Spark identity key.","title":"SparkSignMessageWithIdentityKeyRpcInput","x-stainless-model":"wallets.spark_sign_message_with_identity_key_rpc_input"},"SparkRpcInput":{"oneOf":[{"$ref":"#/components/schemas/SparkTransferRpcInput"},{"$ref":"#/components/schemas/SparkGetBalanceRpcInput"},{"$ref":"#/components/schemas/SparkTransferTokensRpcInput"},{"$ref":"#/components/schemas/SparkGetStaticDepositAddressRpcInput"},{"$ref":"#/components/schemas/SparkGetClaimStaticDepositQuoteRpcInput"},{"$ref":"#/components/schemas/SparkClaimStaticDepositRpcInput"},{"$ref":"#/components/schemas/SparkCreateLightningInvoiceRpcInput"},{"$ref":"#/components/schemas/SparkPayLightningInvoiceRpcInput"},{"$ref":"#/components/schemas/SparkSignMessageWithIdentityKeyRpcInput"}],"discriminator":{"propertyName":"method","mapping":{"transfer":"#/components/schemas/SparkTransferRpcInput","getBalance":"#/components/schemas/SparkGetBalanceRpcInput","transferTokens":"#/components/schemas/SparkTransferTokensRpcInput","getStaticDepositAddress":"#/components/schemas/SparkGetStaticDepositAddressRpcInput","getClaimStaticDepositQuote":"#/components/schemas/SparkGetClaimStaticDepositQuoteRpcInput","claimStaticDeposit":"#/components/schemas/SparkClaimStaticDepositRpcInput","createLightningInvoice":"#/components/schemas/SparkCreateLightningInvoiceRpcInput","payLightningInvoice":"#/components/schemas/SparkPayLightningInvoiceRpcInput","signMessageWithIdentityKey":"#/components/schemas/SparkSignMessageWithIdentityKeyRpcInput"}},"description":"Request body for Spark wallet RPC operations, discriminated by method.","title":"SparkRpcInput","x-stainless-model":"wallets.spark_rpc_input"},"SparkTransferRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["transfer"]},"data":{"$ref":"#/components/schemas/SparkTransfer"}},"required":["method"],"description":"Response to the Spark `transfer` RPC.","title":"SparkTransferRpcResponse","x-stainless-model":"wallets.spark_transfer_rpc_response"},"SparkGetBalanceRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["getBalance"]},"data":{"$ref":"#/components/schemas/SparkBalance"}},"required":["method"],"description":"Response to the Spark `getBalance` RPC.","title":"SparkGetBalanceRpcResponse","x-stainless-model":"wallets.spark_get_balance_rpc_response"},"SparkTransferTokensRpcResponseData":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"description":"Data returned by the Spark `transferTokens` RPC.","title":"SparkTransferTokensRpcResponseData","x-stainless-model":"wallets.spark_transfer_tokens_rpc_response_data"},"SparkTransferTokensRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["transferTokens"]},"data":{"$ref":"#/components/schemas/SparkTransferTokensRpcResponseData"}},"required":["method"],"description":"Response to the Spark `transferTokens` RPC.","title":"SparkTransferTokensRpcResponse","x-stainless-model":"wallets.spark_transfer_tokens_rpc_response"},"SparkGetStaticDepositAddressRpcResponseData":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"],"description":"Data returned by the Spark `getStaticDepositAddress` RPC.","title":"SparkGetStaticDepositAddressRpcResponseData","x-stainless-model":"wallets.spark_get_static_deposit_address_rpc_response_data"},"SparkGetStaticDepositAddressRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["getStaticDepositAddress"]},"data":{"$ref":"#/components/schemas/SparkGetStaticDepositAddressRpcResponseData"}},"required":["method"],"description":"Response to the Spark `getStaticDepositAddress` RPC.","title":"SparkGetStaticDepositAddressRpcResponse","x-stainless-model":"wallets.spark_get_static_deposit_address_rpc_response"},"SparkGetClaimStaticDepositQuoteRpcResponseData":{"type":"object","properties":{"transaction_id":{"type":"string"},"output_index":{"type":"number"},"network":{"type":"string"},"credit_amount_sats":{"type":"number"},"signature":{"type":"string"}},"required":["transaction_id","output_index","network","credit_amount_sats","signature"],"description":"Data returned by the Spark `getClaimStaticDepositQuote` RPC.","title":"SparkGetClaimStaticDepositQuoteRpcResponseData","x-stainless-model":"wallets.spark_get_claim_static_deposit_quote_rpc_response_data"},"SparkGetClaimStaticDepositQuoteRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["getClaimStaticDepositQuote"]},"data":{"$ref":"#/components/schemas/SparkGetClaimStaticDepositQuoteRpcResponseData"}},"required":["method"],"description":"Response to the Spark `getClaimStaticDepositQuote` RPC.","title":"SparkGetClaimStaticDepositQuoteRpcResponse","x-stainless-model":"wallets.spark_get_claim_static_deposit_quote_rpc_response"},"SparkClaimStaticDepositRpcResponseData":{"type":"object","properties":{"transfer_id":{"type":"string"}},"required":["transfer_id"],"description":"Data returned by the Spark `claimStaticDeposit` RPC.","title":"SparkClaimStaticDepositRpcResponseData","x-stainless-model":"wallets.spark_claim_static_deposit_rpc_response_data"},"SparkClaimStaticDepositRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["claimStaticDeposit"]},"data":{"$ref":"#/components/schemas/SparkClaimStaticDepositRpcResponseData"}},"required":["method"],"description":"Response to the Spark `claimStaticDeposit` RPC.","title":"SparkClaimStaticDepositRpcResponse","x-stainless-model":"wallets.spark_claim_static_deposit_rpc_response"},"SparkCreateLightningInvoiceRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["createLightningInvoice"]},"data":{"$ref":"#/components/schemas/SparkLightningReceiveRequest"}},"required":["method"],"description":"Response to the Spark `createLightningInvoice` RPC.","title":"SparkCreateLightningInvoiceRpcResponse","x-stainless-model":"wallets.spark_create_lightning_invoice_rpc_response"},"SparkPayLightningInvoiceRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["payLightningInvoice"]},"data":{"anyOf":[{"$ref":"#/components/schemas/SparkTransfer"},{"$ref":"#/components/schemas/SparkLightningSendRequest"}]}},"required":["method"],"description":"Response to the Spark `payLightningInvoice` RPC.","title":"SparkPayLightningInvoiceRpcResponse","x-stainless-model":"wallets.spark_pay_lightning_invoice_rpc_response"},"SparkSignMessageWithIdentityKeyRpcResponseData":{"type":"object","properties":{"signature":{"type":"string"}},"required":["signature"],"description":"Data returned by the Spark `signMessageWithIdentityKey` RPC.","title":"SparkSignMessageWithIdentityKeyRpcResponseData","x-stainless-model":"wallets.spark_sign_message_with_identity_key_rpc_response_data"},"SparkSignMessageWithIdentityKeyRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["signMessageWithIdentityKey"]},"data":{"$ref":"#/components/schemas/SparkSignMessageWithIdentityKeyRpcResponseData"}},"required":["method"],"description":"Response to the Spark `signMessageWithIdentityKey` RPC.","title":"SparkSignMessageWithIdentityKeyRpcResponse","x-stainless-model":"wallets.spark_sign_message_with_identity_key_rpc_response"},"SparkRpcResponse":{"oneOf":[{"$ref":"#/components/schemas/SparkTransferRpcResponse"},{"$ref":"#/components/schemas/SparkGetBalanceRpcResponse"},{"$ref":"#/components/schemas/SparkTransferTokensRpcResponse"},{"$ref":"#/components/schemas/SparkGetStaticDepositAddressRpcResponse"},{"$ref":"#/components/schemas/SparkGetClaimStaticDepositQuoteRpcResponse"},{"$ref":"#/components/schemas/SparkClaimStaticDepositRpcResponse"},{"$ref":"#/components/schemas/SparkCreateLightningInvoiceRpcResponse"},{"$ref":"#/components/schemas/SparkPayLightningInvoiceRpcResponse"},{"$ref":"#/components/schemas/SparkSignMessageWithIdentityKeyRpcResponse"}],"discriminator":{"propertyName":"method","mapping":{"transfer":"#/components/schemas/SparkTransferRpcResponse","getBalance":"#/components/schemas/SparkGetBalanceRpcResponse","transferTokens":"#/components/schemas/SparkTransferTokensRpcResponse","getStaticDepositAddress":"#/components/schemas/SparkGetStaticDepositAddressRpcResponse","getClaimStaticDepositQuote":"#/components/schemas/SparkGetClaimStaticDepositQuoteRpcResponse","claimStaticDeposit":"#/components/schemas/SparkClaimStaticDepositRpcResponse","createLightningInvoice":"#/components/schemas/SparkCreateLightningInvoiceRpcResponse","payLightningInvoice":"#/components/schemas/SparkPayLightningInvoiceRpcResponse","signMessageWithIdentityKey":"#/components/schemas/SparkSignMessageWithIdentityKeyRpcResponse"}},"description":"Response body for Spark wallet RPC operations, discriminated by method.","title":"SparkRpcResponse","x-stainless-model":"wallets.spark_rpc_response"},"TronTransferContract":{"type":"object","properties":{"type":{"type":"string","enum":["TransferContract"]},"owner_address":{"$ref":"#/components/schemas/TronHexAddress"},"to_address":{"$ref":"#/components/schemas/TronHexAddress"},"amount":{"type":"integer","exclusiveMinimum":0}},"required":["type","owner_address","to_address","amount"],"additionalProperties":false,"description":"Tron native TRX transfer contract.","title":"TronTransferContract","x-stainless-model":"wallets.tron_transfer_contract"},"TronTriggerSmartContract":{"type":"object","properties":{"type":{"type":"string","enum":["TriggerSmartContract"]},"owner_address":{"$ref":"#/components/schemas/TronHexAddress"},"contract_address":{"$ref":"#/components/schemas/TronHexAddress"},"data":{"type":"string","pattern":"^(?:[0-9a-fA-F]{2})*$"},"call_value":{"type":"integer","minimum":0},"call_token_value":{"type":"integer","minimum":0},"token_id":{"type":"integer","minimum":0}},"required":["type","owner_address","contract_address"],"additionalProperties":false,"description":"Tron smart contract call (TRC-20 transfers and general contract interactions).","title":"TronTriggerSmartContract","x-stainless-model":"wallets.tron_trigger_smart_contract"},"TronContract":{"oneOf":[{"$ref":"#/components/schemas/TronTransferContract"},{"$ref":"#/components/schemas/TronTriggerSmartContract"}],"discriminator":{"propertyName":"type","mapping":{"TransferContract":"#/components/schemas/TronTransferContract","TriggerSmartContract":"#/components/schemas/TronTriggerSmartContract"}},"description":"A Tron contract, discriminated by type. Supported types: TransferContract, TriggerSmartContract.","title":"TronContract","x-stainless-model":"wallets.tron_contract"},"TronRawDataForSign":{"type":"object","properties":{"contract":{"type":"array","items":{"$ref":"#/components/schemas/TronContract"}},"data":{"type":"string","pattern":"^(?:[0-9a-fA-F]{2})*$"},"timestamp":{"type":"integer","minimum":0},"fee_limit":{"type":"integer","minimum":0},"ref_block_bytes":{"type":"string","pattern":"^[0-9a-fA-F]{4}$"},"ref_block_hash":{"type":"string","pattern":"^[0-9a-fA-F]{16}$"},"expiration":{"type":"integer","minimum":0}},"required":["contract","ref_block_bytes","ref_block_hash","expiration"],"additionalProperties":false,"description":"Tron raw_data for tron_signTransaction. Block reference fields are required; caller is responsible for fetching them.","title":"TronRawDataForSign","x-stainless-model":"wallets.tron_raw_data_for_sign"},"TronRawDataForSend":{"type":"object","properties":{"contract":{"type":"array","items":{"$ref":"#/components/schemas/TronContract"}},"data":{"type":"string","pattern":"^(?:[0-9a-fA-F]{2})*$"},"timestamp":{"type":"integer","minimum":0},"fee_limit":{"type":"integer","minimum":0},"ref_block_bytes":{"type":"string","pattern":"^[0-9a-fA-F]{4}$"},"ref_block_hash":{"type":"string","pattern":"^[0-9a-fA-F]{16}$"},"expiration":{"type":"integer","minimum":0}},"required":["contract"],"additionalProperties":false,"description":"Tron raw_data for tron_sendTransaction. Block reference fields are optional; Privy fetches fresh values if omitted.","title":"TronRawDataForSend","x-stainless-model":"wallets.tron_raw_data_for_send"},"TronSignTransactionRpcInputParams":{"type":"object","properties":{"raw_data":{"$ref":"#/components/schemas/TronRawDataForSign"}},"required":["raw_data"],"additionalProperties":false,"description":"Parameters for the Tron `tron_signTransaction` RPC.","title":"TronSignTransactionRpcInputParams","x-stainless-model":"wallets.tron_sign_transaction_rpc_input_params"},"TronSignTransactionRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["tron_signTransaction"]},"params":{"$ref":"#/components/schemas/TronSignTransactionRpcInputParams"}},"required":["method","params"],"additionalProperties":false,"description":"Executes the Tron `tron_signTransaction` RPC to sign a transaction. The caller is responsible for broadcasting.","title":"TronSignTransactionRpcInput","x-stainless-model":"wallets.tron_sign_transaction_rpc_input"},"TronSendTransactionRpcInputParams":{"type":"object","properties":{"raw_data":{"$ref":"#/components/schemas/TronRawDataForSend"},"reference_id":{"type":"string","maxLength":64}},"required":["raw_data"],"additionalProperties":false,"description":"Parameters for the Tron `tron_sendTransaction` RPC.","title":"TronSendTransactionRpcInputParams","x-stainless-model":"wallets.tron_send_transaction_rpc_input_params"},"TronSendTransactionRpcInput":{"type":"object","properties":{"method":{"type":"string","enum":["tron_sendTransaction"]},"caip2":{"$ref":"#/components/schemas/CAIP2"},"params":{"$ref":"#/components/schemas/TronSendTransactionRpcInputParams"}},"required":["method","params"],"additionalProperties":false,"description":"Executes the Tron `tron_sendTransaction` RPC to sign and broadcast a transaction.","title":"TronSendTransactionRpcInput","x-stainless-model":"wallets.tron_send_transaction_rpc_input"},"TronRpcInput":{"oneOf":[{"$ref":"#/components/schemas/TronSignTransactionRpcInput"},{"$ref":"#/components/schemas/TronSendTransactionRpcInput"}],"discriminator":{"propertyName":"method","mapping":{"tron_signTransaction":"#/components/schemas/TronSignTransactionRpcInput","tron_sendTransaction":"#/components/schemas/TronSendTransactionRpcInput"}},"description":"Request body for Tron wallet RPC operations, discriminated by method.","title":"TronRpcInput","x-stainless-model":"wallets.tron_rpc_input"},"TronSignTransactionRpcResponseData":{"type":"object","properties":{"signed_transaction":{"type":"string"},"encoding":{"type":"string","enum":["hex"]}},"required":["signed_transaction","encoding"],"additionalProperties":false,"description":"Data returned by the Tron `tron_signTransaction` RPC.","title":"TronSignTransactionRpcResponseData","x-stainless-model":"wallets.tron_sign_transaction_rpc_response_data"},"TronSignTransactionRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["tron_signTransaction"]},"data":{"$ref":"#/components/schemas/TronSignTransactionRpcResponseData"}},"required":["method","data"],"additionalProperties":false,"description":"Response to the Tron `tron_signTransaction` RPC.","title":"TronSignTransactionRpcResponse","x-stainless-model":"wallets.tron_sign_transaction_rpc_response"},"TronSendTransactionRpcResponseData":{"type":"object","properties":{"hash":{"type":"string"},"caip2":{"$ref":"#/components/schemas/CAIP2"},"transaction_id":{"type":"string"},"reference_id":{"type":"string"}},"required":["hash","caip2","transaction_id"],"additionalProperties":false,"description":"Data returned by the Tron `tron_sendTransaction` RPC.","title":"TronSendTransactionRpcResponseData","x-stainless-model":"wallets.tron_send_transaction_rpc_response_data"},"TronSendTransactionRpcResponse":{"type":"object","properties":{"method":{"type":"string","enum":["tron_sendTransaction"]},"data":{"$ref":"#/components/schemas/TronSendTransactionRpcResponseData"}},"required":["method","data"],"additionalProperties":false,"description":"Response to the Tron `tron_sendTransaction` RPC.","title":"TronSendTransactionRpcResponse","x-stainless-model":"wallets.tron_send_transaction_rpc_response"},"TronRpcResponse":{"oneOf":[{"$ref":"#/components/schemas/TronSignTransactionRpcResponse"},{"$ref":"#/components/schemas/TronSendTransactionRpcResponse"}],"discriminator":{"propertyName":"method","mapping":{"tron_signTransaction":"#/components/schemas/TronSignTransactionRpcResponse","tron_sendTransaction":"#/components/schemas/TronSendTransactionRpcResponse"}},"description":"Response body for Tron wallet RPC operations, discriminated by method.","title":"TronRpcResponse","x-stainless-model":"wallets.tron_rpc_response"},"Wallet":{"type":"object","properties":{"id":{"type":"string","description":"Unique ID of the wallet. This will be the primary identifier when using the wallet in the future."},"address":{"type":"string","description":"Address of the wallet."},"display_name":{"type":"string","description":"A human-readable label for the wallet."},"external_id":{"type":"string","description":"A customer-provided identifier for mapping to external systems. Write-once, set only at creation."},"public_key":{"type":"string","description":"The compressed, raw public key for the wallet along the chain cryptographic curve."},"created_at":{"type":"number","description":"Unix timestamp of when the wallet was created in milliseconds."},"chain_type":{"$ref":"#/components/schemas/WalletChainType"},"policy_ids":{"type":"array","items":{"type":"string"},"description":"List of policy IDs for policies that are enforced on the wallet."},"owner_id":{"type":["string","null"],"format":"cuid2","description":"The key quorum ID of the owner of the wallet."},"additional_signers":{"$ref":"#/components/schemas/WalletAdditionalSigner"},"exported_at":{"type":["number","null"],"description":"Unix timestamp of when the wallet was exported in milliseconds, if the wallet was exported."},"imported_at":{"type":["number","null"],"description":"Unix timestamp of when the wallet was imported in milliseconds, if the wallet was imported."},"authorization_threshold":{"type":"number","description":"The number of keys that must sign for an action to be valid."},"archived_at":{"type":["number","null"],"default":null,"description":"Unix timestamp of when the wallet was archived in milliseconds, or null if the wallet is active."},"custody":{"$ref":"#/components/schemas/WalletCustodian"}},"required":["id","address","created_at","chain_type","policy_ids","owner_id","additional_signers","exported_at","imported_at"],"description":"A wallet managed by Privy's wallet infrastructure.","title":"Wallet","example":{"id":"id2tptkqrxd39qo9j423etij","address":"0xF1DBff66C993EE895C8cb176c30b07A559d76496","display_name":"Treasury","external_id":"my-order-123","chain_type":"ethereum","policy_ids":[],"additional_signers":[],"owner_id":"rkiz0ivz254drv1xw982v3jq","created_at":1741834854578,"exported_at":null,"imported_at":null,"archived_at":null},"x-stainless-model":"wallets.wallet"},"GetByWalletAddressRequestBody":{"type":"object","properties":{"address":{"allOf":[{"$ref":"#/components/schemas/Address"},{"description":"The blockchain address of the wallet to look up."}]},"include_archived":{"type":"boolean","description":"Include archived wallets in lookup. Defaults to false (archived wallets return 404)."}},"required":["address"],"additionalProperties":false,"description":"Request body for looking up a wallet by its blockchain address.","title":"GetByWalletAddressRequestBody","example":{"address":"0xF1DBff66C993EE895C8cb176c30b07A559d76496"},"x-stainless-model":"wallets.get_by_wallet_address_request_body"},"WalletUpdateRequestBody":{"type":"object","properties":{"display_name":{"type":["string","null"],"maxLength":100,"description":"A human-readable label for the wallet. Set to null to clear."},"policy_ids":{"type":"array","items":{"type":"string","minLength":24,"maxLength":24},"maxItems":1,"description":"New policy IDs to enforce on the wallet. Currently, only one policy is supported per wallet."},"owner":{"allOf":[{"$ref":"#/components/schemas/OwnerInput"},{"description":"New owner of the wallet. Cannot be used together with `owner_id`. Set to `null` to clear the existing owner."}]},"owner_id":{"allOf":[{"$ref":"#/components/schemas/OwnerIdInput"},{"description":"New key quorum ID to set as the owner of the wallet. Cannot be used together with `owner`. Set to `null` to clear the existing owner."}]},"additional_signers":{"$ref":"#/components/schemas/AdditionalSignerInput"}},"description":"Request body for updating a wallet. `owner` and `owner_id` are mutually exclusive.","title":"WalletUpdateRequestBody","x-stainless-model":"wallets.wallet_update_request_body"},"WalletBatchItemInput":{"type":"object","properties":{"chain_type":{"$ref":"#/components/schemas/WalletChainType"},"display_name":{"type":"string","maxLength":100,"description":"A human-readable label for the wallet."},"external_id":{"type":"string","maxLength":64,"pattern":"^[a-zA-Z0-9_-]+$","description":"A customer-provided identifier for mapping to external systems. URL-safe characters only ([a-zA-Z0-9_-]), max 64 chars. Write-once: cannot be changed after creation."},"policy_ids":{"type":"array","items":{"type":"string","minLength":24,"maxLength":24},"maxItems":1,"description":"List of policy IDs for policies that should be enforced on the wallet. Currently, only one policy is supported per wallet."},"owner":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"},"additional_signers":{"$ref":"#/components/schemas/AdditionalSignerInput"}},"required":["chain_type"],"additionalProperties":false,"description":"Input for a single wallet in a batch creation request.","title":"WalletBatchItemInput","example":{"chain_type":"ethereum"},"x-stainless-model":"wallets.wallet_batch_item_input"},"WalletBatchCreateInput":{"type":"object","properties":{"wallets":{"type":"array","items":{"$ref":"#/components/schemas/WalletBatchItemInput"},"minItems":1,"maxItems":100,"description":"Array of wallet creation requests. Minimum 1, maximum 100."}},"required":["wallets"],"additionalProperties":false,"description":"Request body for batch wallet creation.","title":"WalletBatchCreateInput","example":{"wallets":[{"chain_type":"ethereum"},{"chain_type":"solana"}]},"x-stainless-model":"wallets.wallet_batch_create_input"},"WalletBatchCreateResult":{"oneOf":[{"type":"object","properties":{"index":{"type":"number","description":"The index of the wallet in the original request array."},"success":{"type":"boolean","enum":[true]},"wallet":{"$ref":"#/components/schemas/Wallet"}},"required":["index","success","wallet"],"description":"A successful wallet creation result within a batch operation.","title":"WalletBatchCreateSuccess"},{"type":"object","properties":{"index":{"type":"number","description":"The index of the wallet in the original request array."},"success":{"type":"boolean","enum":[false]},"error":{"type":"string","description":"A human-readable error message with details about what went wrong."},"code":{"type":"string","description":"A PrivyErrorCode string identifying the error type (e.g., \"invalid_data\", \"resource_conflict\")."}},"required":["index","success","error","code"],"description":"A failed wallet creation result within a batch operation.","title":"WalletBatchCreateFailure"}],"description":"A single result from a batch wallet creation operation.","title":"WalletBatchCreateResult","x-stainless-model":"wallets.wallet_batch_create_result"},"WalletBatchCreateResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/WalletBatchCreateResult"},"description":"Array of results for each wallet creation request, in the same order as input."}},"required":["results"],"description":"Response for a batch wallet creation request.","title":"WalletBatchCreateResponse","example":{"results":[{"index":0,"success":true,"wallet":{"id":"id2tptkqrxd39qo9j423etij","address":"0xF1DBff66C993EE895C8cb176c30b07A559d76496","display_name":"Treasury","external_id":"my-order-123","chain_type":"ethereum","policy_ids":[],"additional_signers":[],"owner_id":"rkiz0ivz254drv1xw982v3jq","created_at":1741834854578,"exported_at":null,"imported_at":null,"archived_at":null}},{"index":1,"success":false,"error":"Policy not found","code":"not_found"}]},"x-stainless-model":"wallets.wallet_batch_create_response"},"WalletRpcRequestBody":{"oneOf":[{"$ref":"#/components/schemas/EthereumSignTransactionRpcInput"},{"$ref":"#/components/schemas/EthereumSendTransactionRpcInput"},{"$ref":"#/components/schemas/EthereumPersonalSignRpcInput"},{"$ref":"#/components/schemas/EthereumSignTypedDataRpcInput"},{"$ref":"#/components/schemas/EthereumSecp256k1SignRpcInput"},{"$ref":"#/components/schemas/EthereumSign7702AuthorizationRpcInput"},{"$ref":"#/components/schemas/EthereumSignUserOperationRpcInput"},{"$ref":"#/components/schemas/EthereumSendCallsRpcInput"},{"$ref":"#/components/schemas/SolanaSignTransactionRpcInput"},{"$ref":"#/components/schemas/SolanaSignAndSendTransactionRpcInput"},{"$ref":"#/components/schemas/SolanaSignMessageRpcInput"},{"$ref":"#/components/schemas/SparkTransferRpcInput"},{"$ref":"#/components/schemas/SparkGetBalanceRpcInput"},{"$ref":"#/components/schemas/SparkTransferTokensRpcInput"},{"$ref":"#/components/schemas/SparkGetStaticDepositAddressRpcInput"},{"$ref":"#/components/schemas/SparkGetClaimStaticDepositQuoteRpcInput"},{"$ref":"#/components/schemas/SparkClaimStaticDepositRpcInput"},{"$ref":"#/components/schemas/SparkCreateLightningInvoiceRpcInput"},{"$ref":"#/components/schemas/SparkPayLightningInvoiceRpcInput"},{"$ref":"#/components/schemas/SparkSignMessageWithIdentityKeyRpcInput"},{"$ref":"#/components/schemas/TronSignTransactionRpcInput"},{"$ref":"#/components/schemas/TronSendTransactionRpcInput"},{"$ref":"#/components/schemas/ExportPrivateKeyRpcInput"},{"$ref":"#/components/schemas/ExportSeedPhraseRpcInput"}],"discriminator":{"propertyName":"method","mapping":{"eth_signTransaction":"#/components/schemas/EthereumSignTransactionRpcInput","eth_sendTransaction":"#/components/schemas/EthereumSendTransactionRpcInput","personal_sign":"#/components/schemas/EthereumPersonalSignRpcInput","eth_signTypedData_v4":"#/components/schemas/EthereumSignTypedDataRpcInput","secp256k1_sign":"#/components/schemas/EthereumSecp256k1SignRpcInput","eth_sign7702Authorization":"#/components/schemas/EthereumSign7702AuthorizationRpcInput","eth_signUserOperation":"#/components/schemas/EthereumSignUserOperationRpcInput","wallet_sendCalls":"#/components/schemas/EthereumSendCallsRpcInput","signTransaction":"#/components/schemas/SolanaSignTransactionRpcInput","signAndSendTransaction":"#/components/schemas/SolanaSignAndSendTransactionRpcInput","signMessage":"#/components/schemas/SolanaSignMessageRpcInput","transfer":"#/components/schemas/SparkTransferRpcInput","getBalance":"#/components/schemas/SparkGetBalanceRpcInput","transferTokens":"#/components/schemas/SparkTransferTokensRpcInput","getStaticDepositAddress":"#/components/schemas/SparkGetStaticDepositAddressRpcInput","getClaimStaticDepositQuote":"#/components/schemas/SparkGetClaimStaticDepositQuoteRpcInput","claimStaticDeposit":"#/components/schemas/SparkClaimStaticDepositRpcInput","createLightningInvoice":"#/components/schemas/SparkCreateLightningInvoiceRpcInput","payLightningInvoice":"#/components/schemas/SparkPayLightningInvoiceRpcInput","signMessageWithIdentityKey":"#/components/schemas/SparkSignMessageWithIdentityKeyRpcInput","tron_signTransaction":"#/components/schemas/TronSignTransactionRpcInput","tron_sendTransaction":"#/components/schemas/TronSendTransactionRpcInput","exportPrivateKey":"#/components/schemas/ExportPrivateKeyRpcInput","exportSeedPhrase":"#/components/schemas/ExportSeedPhraseRpcInput"}},"description":"Request body for wallet RPC operations, discriminated by method.","title":"WalletRpcRequestBody","x-stainless-model":"wallets.wallet_rpc_request_body"},"WalletRpcResponse":{"oneOf":[{"$ref":"#/components/schemas/EthereumPersonalSignRpcResponse"},{"$ref":"#/components/schemas/EthereumSignTypedDataRpcResponse"},{"$ref":"#/components/schemas/EthereumSignTransactionRpcResponse"},{"$ref":"#/components/schemas/EthereumSendTransactionRpcResponse"},{"$ref":"#/components/schemas/EthereumSignUserOperationRpcResponse"},{"$ref":"#/components/schemas/EthereumSign7702AuthorizationRpcResponse"},{"$ref":"#/components/schemas/EthereumSecp256k1SignRpcResponse"},{"$ref":"#/components/schemas/EthereumSendCallsRpcResponse"},{"$ref":"#/components/schemas/SolanaSignMessageRpcResponse"},{"$ref":"#/components/schemas/SolanaSignTransactionRpcResponse"},{"$ref":"#/components/schemas/SolanaSignAndSendTransactionRpcResponse"},{"$ref":"#/components/schemas/SparkTransferRpcResponse"},{"$ref":"#/components/schemas/SparkGetBalanceRpcResponse"},{"$ref":"#/components/schemas/SparkTransferTokensRpcResponse"},{"$ref":"#/components/schemas/SparkGetStaticDepositAddressRpcResponse"},{"$ref":"#/components/schemas/SparkGetClaimStaticDepositQuoteRpcResponse"},{"$ref":"#/components/schemas/SparkClaimStaticDepositRpcResponse"},{"$ref":"#/components/schemas/SparkCreateLightningInvoiceRpcResponse"},{"$ref":"#/components/schemas/SparkPayLightningInvoiceRpcResponse"},{"$ref":"#/components/schemas/SparkSignMessageWithIdentityKeyRpcResponse"},{"$ref":"#/components/schemas/TronSignTransactionRpcResponse"},{"$ref":"#/components/schemas/TronSendTransactionRpcResponse"},{"$ref":"#/components/schemas/ExportPrivateKeyRpcResponse"},{"$ref":"#/components/schemas/ExportSeedPhraseRpcResponse"}],"discriminator":{"propertyName":"method","mapping":{"personal_sign":"#/components/schemas/EthereumPersonalSignRpcResponse","eth_signTypedData_v4":"#/components/schemas/EthereumSignTypedDataRpcResponse","eth_signTransaction":"#/components/schemas/EthereumSignTransactionRpcResponse","eth_sendTransaction":"#/components/schemas/EthereumSendTransactionRpcResponse","eth_signUserOperation":"#/components/schemas/EthereumSignUserOperationRpcResponse","eth_sign7702Authorization":"#/components/schemas/EthereumSign7702AuthorizationRpcResponse","secp256k1_sign":"#/components/schemas/EthereumSecp256k1SignRpcResponse","wallet_sendCalls":"#/components/schemas/EthereumSendCallsRpcResponse","signMessage":"#/components/schemas/SolanaSignMessageRpcResponse","signTransaction":"#/components/schemas/SolanaSignTransactionRpcResponse","signAndSendTransaction":"#/components/schemas/SolanaSignAndSendTransactionRpcResponse","transfer":"#/components/schemas/SparkTransferRpcResponse","getBalance":"#/components/schemas/SparkGetBalanceRpcResponse","transferTokens":"#/components/schemas/SparkTransferTokensRpcResponse","getStaticDepositAddress":"#/components/schemas/SparkGetStaticDepositAddressRpcResponse","getClaimStaticDepositQuote":"#/components/schemas/SparkGetClaimStaticDepositQuoteRpcResponse","claimStaticDeposit":"#/components/schemas/SparkClaimStaticDepositRpcResponse","createLightningInvoice":"#/components/schemas/SparkCreateLightningInvoiceRpcResponse","payLightningInvoice":"#/components/schemas/SparkPayLightningInvoiceRpcResponse","signMessageWithIdentityKey":"#/components/schemas/SparkSignMessageWithIdentityKeyRpcResponse","tron_signTransaction":"#/components/schemas/TronSignTransactionRpcResponse","tron_sendTransaction":"#/components/schemas/TronSendTransactionRpcResponse","exportPrivateKey":"#/components/schemas/ExportPrivateKeyRpcResponse","exportSeedPhrase":"#/components/schemas/ExportSeedPhraseRpcResponse"}},"description":"Response body for wallet RPC operations, discriminated by method.","title":"WalletRpcResponse","example":{"method":"eth_sendTransaction","data":{"hash":"0x0775aeed9c9ce6e0fbc4db25c5e4e6368029651c905c286f813126a09025a21e","caip2":"eip155:8453","transaction_request":{"nonce":1,"to":"0xF1DBff66C993EE895C8cb176c30b07A559d76496","from":"0x38Bc05d7b69F63D05337829fA5Dc4896F179B5fA","value":"0x1","gas_limit":"0x5208","max_fee_per_gas":"0xfc328","max_priority_fee_per_gas":"0xf4240","type":2,"chain_id":"1"}}},"x-stainless-model":"wallets.wallet_rpc_response"},"WalletAuthenticateRequestBody":{"type":"object","properties":{"user_jwt":{"type":"string","description":"The user's JWT, to be used to authenticate the user."},"encryption_type":{"type":"string","enum":["HPKE"],"description":"The encryption type for the authentication response. Currently only supports HPKE."},"recipient_public_key":{"type":"string","description":"The public key of your ECDH keypair, in base64-encoded, SPKI-format, whose private key will be able to decrypt the session key."}},"required":["user_jwt","encryption_type","recipient_public_key"],"additionalProperties":false,"description":"Request body for wallet authentication with HPKE-encrypted response.","title":"WalletAuthenticateRequestBody","x-stainless-model":"wallets.wallet_authenticate_request_body"},"IntentBinding":{"type":"object","properties":{"type":{"type":"string","enum":["intent"]},"intentId":{"type":"string"}},"required":["type","intentId"],"additionalProperties":false,"description":"A binding that scopes a user signing key to a specific intent.","title":"IntentBinding","x-stainless-model":"wallets.intent_binding"},"UserSigningKeyBinding":{"oneOf":[{"$ref":"#/components/schemas/IntentBinding"}],"discriminator":{"propertyName":"type","mapping":{"intent":"#/components/schemas/IntentBinding"}},"description":"A binding that scopes a user signing key to a specific bound value.","title":"UserSigningKeyBinding","x-stainless-model":"wallets.user_signing_key_binding"},"WalletAuthenticateBoundEncryptedRequestBody":{"type":"object","properties":{"user_jwt":{"type":"string"},"encryption_type":{"type":"string","enum":["HPKE"]},"recipient_public_key":{"type":"string"},"bindings":{"type":"array","items":{"$ref":"#/components/schemas/UserSigningKeyBinding"},"minItems":1,"maxItems":10,"description":"Bindings that scope the USK. The key can only authorize the bound values."}},"required":["user_jwt","encryption_type","recipient_public_key","bindings"],"additionalProperties":false,"description":"Request body for creating an encrypted, bound user signing key.","title":"WalletAuthenticateBoundEncryptedRequestBody","x-stainless-model":"wallets.wallet_authenticate_bound_encrypted_request_body"},"WalletAuthenticateBoundUnencryptedRequestBody":{"type":"object","properties":{"user_jwt":{"type":"string"},"bindings":{"type":"array","items":{"$ref":"#/components/schemas/UserSigningKeyBinding"},"minItems":1,"maxItems":10,"description":"Bindings that scope the USK. The key can only authorize the bound values."}},"required":["user_jwt","bindings"],"additionalProperties":false,"description":"Request body for creating an unencrypted, bound user signing key.","title":"WalletAuthenticateBoundUnencryptedRequestBody","x-stainless-model":"wallets.wallet_authenticate_bound_unencrypted_request_body"},"WalletAuthenticateBoundRequestBody":{"anyOf":[{"$ref":"#/components/schemas/WalletAuthenticateBoundEncryptedRequestBody"},{"$ref":"#/components/schemas/WalletAuthenticateBoundUnencryptedRequestBody"}],"description":"Request body for creating a user signing key scoped to specific bindings. The returned USK can only authorize the bound values and cannot sign other RPC requests.","title":"WalletAuthenticateBoundRequestBody","x-stainless-model":"wallets.wallet_authenticate_bound_request_body"},"EncryptedAuthorizationKey":{"type":"object","properties":{"encryption_type":{"type":"string","enum":["HPKE"],"description":"The encryption type used. Currently only supports HPKE."},"encapsulated_key":{"type":"string","description":"Base64-encoded ephemeral public key used in the HPKE encryption process. Required for decryption."},"ciphertext":{"type":"string","description":"The encrypted authorization key corresponding to the user's current authentication session."}},"required":["encryption_type","encapsulated_key","ciphertext"],"description":"HPKE-encrypted authorization key with encapsulated key and ciphertext.","title":"EncryptedAuthorizationKey","x-stainless-model":"wallets.encrypted_authorization_key"},"EncryptedWalletAuthenticateResponse":{"type":"object","properties":{"encrypted_authorization_key":{"$ref":"#/components/schemas/EncryptedAuthorizationKey"},"expires_at":{"type":"number","description":"The expiration time of the authorization key in milliseconds since the epoch."},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/Wallet"}}},"required":["encrypted_authorization_key","expires_at","wallets"],"description":"The response from authenticating a wallet with HPKE encryption, containing an encrypted authorization key and wallet data.","title":"EncryptedWalletAuthenticateResponse","example":{"encrypted_authorization_key":{"encryption_type":"HPKE","encapsulated_key":"BECqbgIAcs3TpP5GadS6F8mXkSktR2DR8WNtd3e0Qcy7PpoRHEygpzjFWttntS+SEM3VSr4Thewh18ZP9chseLE=","ciphertext":"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgsqM8IKMlpFxVypBUa/Q2QvB1AmS/g5WHPp3SKq9A75uhRANCAATeX6BDghwclKAH8+/7IjvS1tCpvIfZ570IR44acX93pUGz5iEvpkg+HGaalHAXubuoUMq9CUWRm4wo+3090Nus"},"expires_at":1697059200000,"wallets":[{"id":"ubul5xhljqorce73sf82u0p3","address":"0x3DE69Fd93873d40459f27Ce5B74B42536f8d6149","chain_type":"ethereum","policy_ids":[],"additional_signers":[{"signer_id":"p3cyj3n8mt9f9u2htfize511","override_policy_ids":[]}],"created_at":1744300912643,"owner_id":"lzjb3xnjk2ntod3w1hgwa358","exported_at":null,"imported_at":null,"archived_at":null},{"id":"sb4y18l68xze8gfszafmyv3q","address":"9wtGmqMamnKfz49XBwnJASbjcVnnKnT78qKopCL54TAk","chain_type":"solana","policy_ids":[],"additional_signers":[{"signer_id":"p3cyj3n8mt9f9u2htfize511","override_policy_ids":[]}],"created_at":1744300912644,"owner_id":"lzjb3xnjk2ntod3w1hgwa358","exported_at":null,"imported_at":null,"archived_at":null}]},"x-stainless-model":"wallets.encrypted_wallet_authenticate_response"},"RawWalletAuthenticateResponse":{"type":"object","properties":{"authorization_key":{"type":"string","description":"The raw authorization key data."},"expires_at":{"type":"number","description":"The expiration time of the authorization key in milliseconds since the epoch."},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/Wallet"}}},"required":["authorization_key","expires_at","wallets"],"description":"The response from authenticating a wallet without encryption, containing a raw authorization key and wallet data.","title":"RawWalletAuthenticateResponse","x-stainless-model":"wallets.raw_wallet_authenticate_response"},"WalletAuthenticateWithJwtResponse":{"anyOf":[{"$ref":"#/components/schemas/EncryptedWalletAuthenticateResponse"},{"$ref":"#/components/schemas/RawWalletAuthenticateResponse"}],"description":"The response from authenticating a wallet, containing an authorization key and wallet data.","title":"WalletAuthenticateWithJwtResponse","x-stainless-model":"wallets.wallet_authenticate_with_jwt_response"},"EncryptedBoundAuthenticateResponse":{"type":"object","properties":{"encrypted_authorization_key":{"$ref":"#/components/schemas/EncryptedAuthorizationKey"},"expires_at":{"type":"number"},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/Wallet"}},"bindings":{"type":"array","items":{"$ref":"#/components/schemas/UserSigningKeyBinding"}}},"required":["encrypted_authorization_key","expires_at","wallets","bindings"],"description":"Encrypted response from bound wallet authentication, with bindings.","title":"EncryptedBoundAuthenticateResponse","x-stainless-model":"wallets.encrypted_bound_authenticate_response"},"RawBoundAuthenticateResponse":{"type":"object","properties":{"authorization_key":{"type":"string"},"expires_at":{"type":"number"},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/Wallet"}},"bindings":{"type":"array","items":{"$ref":"#/components/schemas/UserSigningKeyBinding"}}},"required":["authorization_key","expires_at","wallets","bindings"],"description":"Unencrypted response from bound wallet authentication, with bindings.","title":"RawBoundAuthenticateResponse","x-stainless-model":"wallets.raw_bound_authenticate_response"},"WalletAuthenticateIntentsResponse":{"anyOf":[{"$ref":"#/components/schemas/EncryptedBoundAuthenticateResponse"},{"$ref":"#/components/schemas/RawBoundAuthenticateResponse"}],"description":"The response from authenticating a wallet with intent bindings, containing an authorization key, wallet data, and the bindings the key is scoped to.","title":"WalletAuthenticateIntentsResponse","x-stainless-model":"wallets.wallet_authenticate_intents_response"},"PrivateKeyInitInput":{"type":"object","properties":{"address":{"type":"string","description":"The address of the wallet to import."},"chain_type":{"$ref":"#/components/schemas/WalletImportSupportedChains"},"encryption_type":{"$ref":"#/components/schemas/HPKEEncryption"},"entropy_type":{"type":"string","enum":["private-key"]}},"required":["address","chain_type","encryption_type","entropy_type"],"description":"The input for private key wallets.","title":"PrivateKeyInitInput","x-stainless-model":"wallets.private_key_init_input"},"HDInitInput":{"type":"object","properties":{"address":{"type":"string","description":"The address of the wallet to import."},"chain_type":{"$ref":"#/components/schemas/WalletImportSupportedChains"},"encryption_type":{"$ref":"#/components/schemas/HPKEEncryption"},"entropy_type":{"type":"string","enum":["hd"],"description":"The entropy type of the wallet to import."},"index":{"type":"integer","minimum":0,"description":"The index of the wallet to import."}},"required":["address","chain_type","encryption_type","entropy_type","index"],"description":"The input for HD wallets.","title":"HDInitInput","x-stainless-model":"wallets.hd_init_input"},"PrivateKeySubmitInput":{"type":"object","properties":{"address":{"type":"string","description":"The address of the wallet to import."},"chain_type":{"$ref":"#/components/schemas/WalletImportSupportedChains"},"encryption_type":{"$ref":"#/components/schemas/HPKEEncryption"},"entropy_type":{"type":"string","enum":["private-key"]},"ciphertext":{"type":"string","description":"The encrypted entropy of the wallet to import."},"encapsulated_key":{"type":"string","description":"The base64-encoded encapsulated key that was generated during encryption, for use during decryption inside the TEE."},"hpke_config":{"$ref":"#/components/schemas/HPKEImportConfig"}},"required":["address","chain_type","encryption_type","entropy_type","ciphertext","encapsulated_key"],"description":"The submission input for importing a private key wallet.","title":"PrivateKeySubmitInput","x-stainless-model":"wallets.private_key_submit_input"},"HDSubmitInput":{"type":"object","properties":{"address":{"type":"string","description":"The address of the wallet to import."},"chain_type":{"$ref":"#/components/schemas/WalletImportSupportedChains"},"encryption_type":{"$ref":"#/components/schemas/HPKEEncryption"},"entropy_type":{"type":"string","enum":["hd"],"description":"The entropy type of the wallet to import."},"index":{"type":"integer","minimum":0,"description":"The index of the wallet to import."},"ciphertext":{"type":"string","description":"The encrypted entropy of the wallet to import."},"encapsulated_key":{"type":"string","description":"The base64-encoded encapsulated key that was generated during encryption, for use during decryption inside the TEE."},"hpke_config":{"$ref":"#/components/schemas/HPKEImportConfig"}},"required":["address","chain_type","encryption_type","entropy_type","index","ciphertext","encapsulated_key"],"description":"The submission input for importing an HD wallet.","title":"HDSubmitInput","x-stainless-model":"wallets.hd_submit_input"},"WalletExportRequestBody":{"type":"object","properties":{"encryption_type":{"$ref":"#/components/schemas/HPKEEncryption"},"recipient_public_key":{"type":"string","description":"The base64-encoded encryption public key to encrypt the wallet private key with."},"export_seed_phrase":{"type":"boolean"}},"required":["encryption_type","recipient_public_key"],"description":"Request body for exporting a wallet private key.","title":"WalletExportRequestBody","example":{"encryption_type":"HPKE","recipient_public_key":"BDAZLOIdTaPycEYkgG0MvCzbIKJLli/yWkAV5yCa9yOsZ4JsrLweA5MnP8YIiY4k/RRzC+APhhO+P+Hoz/rt7Go="},"x-stainless-model":"wallets.wallet_export_request_body"},"WalletRevokeResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"description":"The response body from revoking a wallet delegation.","title":"WalletRevokeResponse","x-stainless-model":"wallets.wallet_revoke_response"},"WalletExportResponseBody":{"type":"object","properties":{"encryption_type":{"$ref":"#/components/schemas/HPKEEncryption"},"ciphertext":{"type":"string","description":"The encrypted private key."},"encapsulated_key":{"type":"string","description":"The base64-encoded encapsulated key that was generated during encryption, for use during decryption."}},"required":["encryption_type","ciphertext","encapsulated_key"],"description":"Response body containing the encrypted wallet private key.","title":"WalletExportResponseBody","example":{"encryption_type":"HPKE","encapsulated_key":"BOhR6xITDt5THJawHHJKrKdI9CBr2M/SDWzZZAaOW4gCMsSpC65U007WyKiwuuOVAo1BNm4YgcBBROuMmyIZXZk=","ciphertext":"PRoRXygG+YYSDBXjCopNYZmx8Z6nvdl1D0lpePTYZdZI2VGfK+LkFt+GlEJqdoi9"},"x-stainless-model":"wallets.wallet_export_response_body"},"WalletCreateWalletsWithRecoveryResponse":{"type":"object","properties":{"wallets":{"type":"array","items":{"$ref":"#/components/schemas/Wallet"},"description":"The wallets that were created."},"recovery_user_id":{"type":"string","description":"The ID of the created user."}},"required":["wallets","recovery_user_id"],"description":"The response from creating wallets with an associated recovery user.","title":"WalletCreateWalletsWithRecoveryResponse","x-stainless-model":"wallets.wallet_create_wallets_with_recovery_response"},"RelayerFee":{"type":"object","properties":{"type":{"type":"string","enum":["relayer"]},"recipient":{"anyOf":[{"type":"string"},{"type":"string"},{"$ref":"#/components/schemas/TronAddress"}]},"amount":{"type":"string","description":"Amount in USD (in decimals)."}},"required":["type","amount"],"additionalProperties":false,"description":"Estimated fee paid to the relayer.","title":"RelayerFee","example":{"type":"relayer","recipient":"0x1234567890abcdef1234567890abcdef12345678","amount":"0.20"},"x-stainless-model":"wallets.relayer_fee"},"PrivyFee":{"type":"object","properties":{"type":{"type":"string","enum":["privy"]},"recipient":{"anyOf":[{"type":"string"},{"type":"string"},{"$ref":"#/components/schemas/TronAddress"}]},"amount":{"type":"string","description":"Amount in USD (in decimals)."}},"required":["type","amount"],"additionalProperties":false,"description":"Estimated fee paid to Privy.","title":"PrivyFee","example":{"type":"privy","amount":"0.20"},"x-stainless-model":"wallets.privy_fee"},"DeveloperFee":{"type":"object","properties":{"type":{"type":"string","enum":["developer"]},"recipient":{"anyOf":[{"type":"string"},{"type":"string"},{"$ref":"#/components/schemas/TronAddress"}]},"amount":{"type":"string","description":"Amount in USD (in decimals)."}},"required":["type","amount"],"additionalProperties":false,"description":"Estimated fee paid to the developer.","title":"DeveloperFee","example":{"type":"developer","recipient":"0x1234567890abcdef1234567890abcdef12345678","amount":"0.20"},"x-stainless-model":"wallets.developer_fee"},"FeeLineItem":{"oneOf":[{"$ref":"#/components/schemas/RelayerFee"},{"$ref":"#/components/schemas/PrivyFee"},{"$ref":"#/components/schemas/DeveloperFee"}],"discriminator":{"propertyName":"type","mapping":{"relayer":"#/components/schemas/RelayerFee","privy":"#/components/schemas/PrivyFee","developer":"#/components/schemas/DeveloperFee"}},"description":"An individual fee assessed on a transfer.","title":"FeeLineItem","example":{"type":"privy","amount":"0.20"},"x-stainless-model":"wallets.fee_line_item"},"Gas":{"type":"object","properties":{"base_amount":{"type":"string","description":"Gas cost in the gas token's base units (e.g. wei)."},"amount":{"type":"string","description":"Gas cost in the gas token as a human-readable decimal string (e.g. \"0.0001\")."},"gas_asset":{"type":"string","description":"Gas token symbol (e.g. \"ETH\", \"USDC\")."}},"required":["base_amount","amount","gas_asset"],"additionalProperties":false,"description":"Gas cost for a blockchain action. Includes both raw base-unit amount and a human-readable decimal string, plus the gas token symbol.","title":"Gas","example":{"base_amount":"100000000000000","amount":"0.0001","gas_asset":"ETH"},"x-stainless-model":"wallets.gas"},"WalletActionType":{"type":"string","enum":["swap","transfer","earn_deposit","earn_withdraw","earn_incentive_claim"],"description":"Type of wallet action","title":"WalletActionType","x-stainless-model":"wallet_actions.wallet_action_type"},"WalletActionStatus":{"type":"string","enum":["pending","succeeded","rejected","failed"],"description":"Status of a wallet action.","title":"WalletActionStatus","x-stainless-model":"wallet_actions.wallet_action_status"},"WalletActionInclude":{"type":"string","enum":["steps"],"description":"Expandable relations to include on a wallet action response.","title":"WalletActionInclude","x-stainless-model":"wallet_actions.wallet_action_include"},"WalletActionStepType":{"type":"string","enum":["evm_transaction","evm_user_operation","svm_transaction","tvm_transaction","external_transaction","custodian_transaction"],"description":"Type of a wallet action step.","title":"WalletActionStepType","x-stainless-model":"wallet_actions.wallet_action_step_type"},"EVMWalletActionStepStatus":{"type":"string","enum":["preparing","queued","pending","retrying","confirmed","rejected","reverted","replaced","abandoned"],"description":"Status of an EVM step in a wallet action.","title":"EVMWalletActionStepStatus","x-stainless-model":"wallet_actions.evm_wallet_action_step_status"},"FailureReason":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable failure message."},"details":{"description":"Additional error details, if available.","x-stainless-any":true}},"required":["message"],"description":"A description of why a wallet action (or a step within a wallet action) failed.","title":"FailureReason","x-stainless-model":"wallet_actions.failure_reason"},"EVMTransactionWalletActionStep":{"type":"object","properties":{"type":{"type":"string","enum":["evm_transaction"]},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"finalized":{"type":"boolean","description":"Whether this step has reached on-chain finality. Absent until finality is confirmed."},"status":{"allOf":[{"$ref":"#/components/schemas/EVMWalletActionStepStatus"},{"description":"EVM transaction status."}]},"caip2":{"type":"string","description":"CAIP-2 chain identifier of the transaction, containing the chain ID."},"transaction_hash":{"type":["string","null"],"description":"The transaction hash for this step. May change while the step status is non-terminal."}},"required":["type","status","caip2","transaction_hash"],"description":"A wallet action step consisting of an EVM transaction.","title":"EVMTransactionWalletActionStep","x-stainless-model":"wallet_actions.evm_transaction_wallet_action_step"},"EVMUserOperationWalletActionStep":{"type":"object","properties":{"type":{"type":"string","enum":["evm_user_operation"]},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"finalized":{"type":"boolean","description":"Whether this step has reached on-chain finality. Absent until finality is confirmed."},"gas_credits_charged_usd":{"type":"string","description":"Amount charged in USD for gas sponsorship on this step."},"status":{"allOf":[{"$ref":"#/components/schemas/EVMWalletActionStepStatus"},{"description":"User operation status."}]},"user_operation_hash":{"type":["string","null"],"description":"The user operation hash for this step. May change while the step status is non-terminal."},"bundle_transaction_hash":{"type":["string","null"],"description":"Transaction hash of the bundle in which this user operation was included. Null until included by a bundler."},"caip2":{"type":"string","description":"CAIP-2 network identifier, containing the chain ID of the user operation."},"entrypoint_version":{"type":"string","enum":["0.6","0.7","0.8","0.9"],"description":"The entrypoint version of the user operation."}},"required":["type","status","user_operation_hash","bundle_transaction_hash","caip2","entrypoint_version"],"description":"A wallet action step consisting of an EVM user operation.","title":"EVMUserOperationWalletActionStep","x-stainless-model":"wallet_actions.evm_user_operation_wallet_action_step"},"SVMWalletActionStepStatus":{"type":"string","enum":["preparing","queued","pending","confirmed","rejected","reverted","failed"],"description":"Status of an SVM step in a wallet action.","title":"SVMWalletActionStepStatus","x-stainless-model":"wallet_actions.svm_wallet_action_step_status"},"SVMTransactionWalletActionStep":{"type":"object","properties":{"type":{"type":"string","enum":["svm_transaction"]},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"finalized":{"type":"boolean","description":"Whether this step has reached on-chain finality. Absent until finality is confirmed."},"gas_credits_charged_usd":{"type":"string","description":"Amount charged in USD for gas sponsorship on this step."},"status":{"allOf":[{"$ref":"#/components/schemas/SVMWalletActionStepStatus"},{"description":"SVM transaction status."}]},"caip2":{"type":"string","description":"CAIP-2 chain identifier for the Solana network."},"transaction_signature":{"type":["string","null"],"description":"The Solana transaction signature (base58-encoded). Null until broadcast."}},"required":["type","status","caip2","transaction_signature"],"description":"A wallet action step consisting of an SVM (Solana) transaction.","title":"SVMTransactionWalletActionStep","x-stainless-model":"wallet_actions.svm_transaction_wallet_action_step"},"TVMWalletActionStepStatus":{"type":"string","enum":["preparing","queued","pending","confirmed","rejected","reverted","failed"],"description":"Status of a TVM (Tron) step in a wallet action.","title":"TVMWalletActionStepStatus","x-stainless-model":"wallet_actions.tvm_wallet_action_step_status"},"TVMTransactionWalletActionStep":{"type":"object","properties":{"type":{"type":"string","enum":["tvm_transaction"]},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"status":{"allOf":[{"$ref":"#/components/schemas/TVMWalletActionStepStatus"},{"description":"TVM transaction status."}]},"caip2":{"type":"string","description":"CAIP-2 chain identifier for the Tron network."},"transaction_id":{"type":["string","null"],"description":"The Tron transaction ID. Null until broadcast."}},"required":["type","status","caip2","transaction_id"],"description":"A wallet action step consisting of a TVM (Tron) transaction.","title":"TVMTransactionWalletActionStep","x-stainless-model":"wallet_actions.tvm_transaction_wallet_action_step"},"ExternalTransactionWalletActionStepStatus":{"type":"string","enum":["preparing","queued","pending","confirmed","rejected","failed"],"description":"Status of an external transaction step in a wallet action.","title":"ExternalTransactionWalletActionStepStatus","x-stainless-model":"wallet_actions.external_transaction_wallet_action_step_status"},"ExternalTransactionWalletActionStep":{"type":"object","properties":{"type":{"type":"string","enum":["external_transaction"]},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"status":{"allOf":[{"$ref":"#/components/schemas/ExternalTransactionWalletActionStepStatus"},{"description":"External transaction step status."}]}},"required":["type","status"],"description":"A wallet action step representing a cross-chain/cross-asset fill by an external provider.","title":"ExternalTransactionWalletActionStep","x-stainless-model":"wallet_actions.external_transaction_wallet_action_step"},"CustodianTransactionWalletActionStepStatus":{"type":"string","enum":["preparing","queued","custodian_reviewing","pending","confirmed","rejected","failed"],"description":"Status of a custodian transaction step in a wallet action.","title":"CustodianTransactionWalletActionStepStatus","x-stainless-model":"wallet_actions.custodian_transaction_wallet_action_step_status"},"CustodianTransactionWalletActionStep":{"type":"object","properties":{"type":{"type":"string","enum":["custodian_transaction"]},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"status":{"allOf":[{"$ref":"#/components/schemas/CustodianTransactionWalletActionStepStatus"},{"description":"Custodian transaction step status."}]},"custodian":{"type":"string","description":"Identifier of the custodian executing this transaction (e.g. \"bridge\")."}},"required":["type","status","custodian"],"description":"A wallet action step representing a transaction executed by a custodian (e.g. Bridge).","title":"CustodianTransactionWalletActionStep","x-stainless-model":"wallet_actions.custodian_transaction_wallet_action_step"},"WalletActionStep":{"oneOf":[{"$ref":"#/components/schemas/EVMTransactionWalletActionStep"},{"$ref":"#/components/schemas/EVMUserOperationWalletActionStep"},{"$ref":"#/components/schemas/SVMTransactionWalletActionStep"},{"$ref":"#/components/schemas/TVMTransactionWalletActionStep"},{"$ref":"#/components/schemas/ExternalTransactionWalletActionStep"},{"$ref":"#/components/schemas/CustodianTransactionWalletActionStep"}],"discriminator":{"propertyName":"type","mapping":{"evm_transaction":"#/components/schemas/EVMTransactionWalletActionStep","evm_user_operation":"#/components/schemas/EVMUserOperationWalletActionStep","svm_transaction":"#/components/schemas/SVMTransactionWalletActionStep","tvm_transaction":"#/components/schemas/TVMTransactionWalletActionStep","external_transaction":"#/components/schemas/ExternalTransactionWalletActionStep","custodian_transaction":"#/components/schemas/CustodianTransactionWalletActionStep"}},"description":"A step within a wallet action, representing a single onchain action.","title":"WalletActionStep","x-stainless-model":"wallet_actions.wallet_action_step"},"SwapActionResponse":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the wallet action."},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The current status of the wallet action."}]},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when the wallet action was created."},"failure_reason":{"allOf":[{"$ref":"#/components/schemas/FailureReason"},{"description":"Top-level failure context for the wallet action. Present on rejected or failed actions when available."}]},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action. Only returned if `?include=steps` is provided."},"type":{"type":"string","enum":["swap"]},"caip2":{"type":"string","description":"CAIP-2 chain identifier for the swap."},"input_token":{"type":"string","description":"Token address or \"native\" for the token being sold."},"output_token":{"type":"string","description":"Token address or \"native\" for the token being bought."},"input_amount":{"type":["string","null"],"description":"Exact base-unit amount of input token. Populated after on-chain confirmation."},"output_amount":{"type":["string","null"],"description":"Exact base-unit amount of output token. Populated after on-chain confirmation."},"destination_caip2":{"type":"string","description":"Destination chain CAIP-2 identifier. Present for cross-chain swaps."},"destination_address":{"type":"string","description":"Recipient address on the destination chain. Present for cross-chain swaps. May differ from the source wallet address when swapping between chain types (e.g. EVM to Solana)."},"estimated_fees":{"type":["array","null"],"items":{"$ref":"#/components/schemas/FeeLineItem"},"description":"Estimated fee breakdown from the provider quote. Only present for cross-chain swaps. Populated after on-chain confirmation."},"estimated_gas":{"description":"Estimated source-chain gas cost from the provider quote. Only present for cross-chain swaps. Populated after on-chain confirmation.","anyOf":[{"$ref":"#/components/schemas/Gas"},{"type":"null"}]},"fees":{"type":["array","null"],"items":{"$ref":"#/components/schemas/FeeLineItem"},"description":"Actual fees paid for the swap. Populated after on-chain confirmation. Only present for cross-chain swaps."},"gas":{"description":"Actual source-chain gas cost. Populated after on-chain confirmation. Only present for cross-chain swaps.","anyOf":[{"$ref":"#/components/schemas/Gas"},{"type":"null"}]}},"required":["id","status","wallet_id","created_at","type","caip2","input_token","output_token","input_amount","output_amount"],"description":"Response for a swap action.","title":"SwapActionResponse","x-stainless-model":"wallet_actions.swap_action_response"},"TransferActionResponse":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the wallet action."},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The current status of the wallet action."}]},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when the wallet action was created."},"failure_reason":{"allOf":[{"$ref":"#/components/schemas/FailureReason"},{"description":"Top-level failure context for the wallet action. Present on rejected or failed actions when available."}]},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action. Only returned if `?include=steps` is provided."},"type":{"type":"string","enum":["transfer"]},"amount_type":{"$ref":"#/components/schemas/AmountType"},"source_asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Present when the transfer was initiated with a named asset; omitted for custom-token transfers."},"source_asset_address":{"type":"string","description":"Token contract address (EVM) or mint address (Solana). Present when the transfer was initiated with `asset_address`."},"source_asset_decimals":{"type":"integer","description":"Number of decimals for the transferred token. Present when the transfer was initiated with `asset_address` and the decimals were resolved on-chain."},"source_amount":{"type":"string","description":"Decimal amount sent on the source chain (e.g. \"1.5\"). For exact_output cross-chain transfers, null until fill confirmation."},"source_chain":{"type":"string","description":"Chain name (e.g. \"base\", \"ethereum\")."},"destination_address":{"type":"string","description":"Recipient address."},"destination_asset":{"type":"string","description":"Destination asset for cross-asset transfers. Omitted for same-asset transfers."},"destination_chain":{"type":"string","description":"Destination chain for cross-chain transfers. Omitted for same-chain transfers."},"destination_amount":{"type":["string","null"],"description":"Amount received on the destination chain. For exact_output cross-chain transfers, set at creation (the guaranteed exact amount). For exact_input cross-chain transfers, null until fill confirmation."},"estimated_fees":{"type":["array","null"],"items":{"$ref":"#/components/schemas/FeeLineItem"},"description":"Estimated fee breakdown from the provider quote. Only present for cross-chain or cross-asset transfers. Populated after on-chain confirmation."},"estimated_gas":{"description":"Estimated source-chain gas cost from the provider quote. Only present for cross-chain or cross-asset transfers. Populated after on-chain confirmation.","anyOf":[{"$ref":"#/components/schemas/Gas"},{"type":"null"}]},"fees":{"type":["array","null"],"items":{"$ref":"#/components/schemas/FeeLineItem"},"description":"Actual fees paid for the transfer. Populated after on-chain confirmation. Only present for cross-chain transfers."},"gas":{"description":"Actual source-chain gas cost. Populated after on-chain confirmation. Only present for cross-chain transfers.","anyOf":[{"$ref":"#/components/schemas/Gas"},{"type":"null"}]}},"required":["id","status","wallet_id","created_at","type","source_chain","destination_address","destination_amount"],"description":"Response for a transfer action.","title":"TransferActionResponse","x-stainless-model":"wallet_actions.transfer_action_response"},"EarnIncetiveClaimRewardEntry":{"type":"object","properties":{"token_address":{"type":"string","description":"Address of the reward token."},"token_symbol":{"type":"string","description":"Symbol of the reward token (e.g. \"MORPHO\")."},"token_decimals":{"type":"integer","description":"Number of decimal places for the reward token."},"amount":{"type":"string","description":"Claimable amount in base units."}},"required":["token_address","token_symbol","amount"],"description":"A specific reward token and amount associated with an earn incentive claim.","title":"EarnIncetiveClaimRewardEntry","x-stainless-model":"wallet_actions.earn_incetive_claim_reward_entry"},"EarnDepositActionResponse":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the wallet action."},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The current status of the wallet action."}]},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when the wallet action was created."},"failure_reason":{"allOf":[{"$ref":"#/components/schemas/FailureReason"},{"description":"Top-level failure context for the wallet action. Present on rejected or failed actions when available."}]},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action. Only returned if `?include=steps` is provided."},"type":{"type":"string","enum":["earn_deposit"]},"caip2":{"type":"string","description":"CAIP-2 chain identifier."},"vault_id":{"type":"string","description":"The vault ID."},"vault_address":{"type":"string","description":"ERC-4626 vault contract address."},"asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Only present when the token is known in the asset registry."},"asset_address":{"type":"string","description":"Underlying asset token address."},"decimals":{"type":"integer","description":"Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry."},"amount":{"type":"string","description":"Human-readable decimal amount of asset deposited (e.g. \"1.5\"). Only present when the token is known in the asset registry."},"raw_amount":{"type":"string","description":"Base-unit amount of asset deposited (e.g. \"1500000\")."},"share_amount":{"type":["string","null"],"description":"Vault shares received in base units. Populated after on-chain confirmation."}},"required":["id","status","wallet_id","created_at","type","caip2","vault_id","vault_address","asset_address","raw_amount","share_amount"],"description":"Response for an earn deposit action.","title":"EarnDepositActionResponse","x-stainless-model":"wallet_actions.earn_deposit_action_response"},"EarnWithdrawActionResponse":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the wallet action."},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The current status of the wallet action."}]},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when the wallet action was created."},"failure_reason":{"allOf":[{"$ref":"#/components/schemas/FailureReason"},{"description":"Top-level failure context for the wallet action. Present on rejected or failed actions when available."}]},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action. Only returned if `?include=steps` is provided."},"type":{"type":"string","enum":["earn_withdraw"]},"caip2":{"type":"string","description":"CAIP-2 chain identifier."},"vault_id":{"type":"string","description":"The vault ID."},"vault_address":{"type":"string","description":"ERC-4626 vault contract address."},"asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Only present when the token is known in the asset registry."},"asset_address":{"type":"string","description":"Underlying asset token address."},"decimals":{"type":"integer","description":"Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry."},"amount":{"type":"string","description":"Human-readable decimal amount of asset withdrawn (e.g. \"1.5\"). Only present when the token is known in the asset registry."},"raw_amount":{"type":"string","description":"Base-unit amount of asset withdrawn (e.g. \"1500000\")."},"share_amount":{"type":["string","null"],"description":"Vault shares burned in base units. Populated after on-chain confirmation."}},"required":["id","status","wallet_id","created_at","type","caip2","vault_id","vault_address","asset_address","raw_amount","share_amount"],"description":"Response for an earn withdraw action.","title":"EarnWithdrawActionResponse","x-stainless-model":"wallet_actions.earn_withdraw_action_response"},"EarnIncentiveClaimActionResponse":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the wallet action."},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The current status of the wallet action."}]},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp of when the wallet action was created."},"failure_reason":{"allOf":[{"$ref":"#/components/schemas/FailureReason"},{"description":"Top-level failure context for the wallet action. Present on rejected or failed actions when available."}]},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action. Only returned if `?include=steps` is provided."},"type":{"type":"string","enum":["earn_incentive_claim"]},"chain":{"type":"string","description":"EVM chain name (e.g. \"base\", \"ethereum\")."},"rewards":{"type":["array","null"],"items":{"$ref":"#/components/schemas/EarnIncetiveClaimRewardEntry"},"description":"Claimed reward tokens. Populated after the preparation step fetches from Merkl."}},"required":["id","status","wallet_id","created_at","type","chain","rewards"],"description":"Response for an earn incentive claim action.","title":"EarnIncentiveClaimActionResponse","x-stainless-model":"wallet_actions.earn_incentive_claim_action_response"},"WalletActionResponse":{"oneOf":[{"$ref":"#/components/schemas/SwapActionResponse"},{"$ref":"#/components/schemas/TransferActionResponse"},{"$ref":"#/components/schemas/EarnDepositActionResponse"},{"$ref":"#/components/schemas/EarnWithdrawActionResponse"},{"$ref":"#/components/schemas/EarnIncentiveClaimActionResponse"}],"discriminator":{"propertyName":"type","mapping":{"swap":"#/components/schemas/SwapActionResponse","transfer":"#/components/schemas/TransferActionResponse","earn_deposit":"#/components/schemas/EarnDepositActionResponse","earn_withdraw":"#/components/schemas/EarnWithdrawActionResponse","earn_incentive_claim":"#/components/schemas/EarnIncentiveClaimActionResponse"}},"description":"Response for a wallet action, discriminated on type.","title":"WalletActionResponse","x-stainless-model":"wallet_actions.wallet_action_response"},"ListWalletActionsQuery":{"type":"object","properties":{"cursor":{"type":"string","minLength":1},"limit":{"type":["number","null"],"maximum":100},"type":{"$ref":"#/components/schemas/WalletActionType"}},"description":"Query parameters for listing wallet actions.","title":"ListWalletActionsQuery","x-stainless-model":"wallet_actions.list_wallet_actions_query"},"ListWalletActionsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionResponse"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"],"description":"Paginated list of wallet actions.","title":"ListWalletActionsResponse","x-stainless-model":"wallet_actions.list_wallet_actions_response"},"NamedTokenTransferSource":{"type":"object","properties":{"amount":{"type":"string","maxLength":100,"description":"Amount as a decimal string in the token's standard unit (e.g. \"1.5\" for 1.5 USDC, \"0.01\" for 0.01 ETH). For exact_input, specifies the amount to send. Not in the smallest on-chain unit (wei, lamports, etc.). Maximum 100 characters.","deprecated":true},"chain":{"type":"string","description":"The blockchain network on which to perform the transfer. Supported chains include: 'ethereum', 'base', 'arbitrum', 'polygon', 'solana', and their respective testnets."},"asset":{"type":"string","description":"The asset to transfer. Supported: 'usdc', 'usdb', 'usdt' (stablecoins), 'eth' (native Ethereum), 'sol' (native Solana)."}},"required":["amount","chain","asset"],"additionalProperties":false,"description":"Source for a transfer identified by a named asset (e.g. \"usdc\", \"eth\"). Use this variant for first-class assets maintained by Privy.","title":"NamedTokenTransferSource","example":{"asset":"usdc","amount":"10.5","chain":"base"},"x-stainless-model":"wallets.named_token_transfer_source"},"CustomTokenTransferSource":{"type":"object","properties":{"amount":{"type":"string","maxLength":100,"description":"Amount as a decimal string in the token's standard unit (e.g. \"1.5\" for 1.5 USDC, \"0.01\" for 0.01 ETH). For exact_input, specifies the amount to send. Not in the smallest on-chain unit (wei, lamports, etc.). Maximum 100 characters.","deprecated":true},"chain":{"type":"string","description":"The blockchain network on which to perform the transfer. Supported chains include: 'ethereum', 'base', 'arbitrum', 'polygon', 'solana', and their respective testnets."},"asset_address":{"anyOf":[{"type":"string"},{"type":"string"},{"$ref":"#/components/schemas/TronAddress"}],"description":"The token contract address (EVM) or mint address (Solana) of the asset to transfer."}},"required":["amount","chain","asset_address"],"additionalProperties":false,"description":"Source for a transfer identified by a token contract address (EVM) or mint address (Solana). Use this variant for tokens that are not first-class assets.","title":"CustomTokenTransferSource","example":{"asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","amount":"10.5","chain":"base"},"x-stainless-model":"wallets.custom_token_transfer_source"},"TokenTransferSource":{"anyOf":[{"$ref":"#/components/schemas/NamedTokenTransferSource"},{"$ref":"#/components/schemas/CustomTokenTransferSource"}],"description":"The source asset, amount, and chain for a token transfer. Specify either `asset` (named) or `asset_address` (custom), not both.","title":"TokenTransferSource","example":{"asset":"usdc","amount":"10.5","chain":"base"},"x-stainless-model":"wallets.token_transfer_source"},"TokenTransferDestination":{"type":"object","properties":{"address":{"anyOf":[{"type":"string"},{"type":"string"},{"$ref":"#/components/schemas/TronAddress"}],"description":"Recipient address (hex for EVM, base58 for Solana, base58check for Tron)"},"asset":{"type":"string","description":"The destination asset. Required for cross-asset transfers (e.g., source 'usdt' to destination 'usdc')."},"chain":{"type":"string","description":"The destination blockchain network. Required for cross-chain transfers (e.g., source 'base' to destination 'arbitrum')."}},"required":["address"],"additionalProperties":false,"description":"The destination address for a token transfer. Optionally specify a different asset or chain for cross-asset or cross-chain transfers.","title":"TokenTransferDestination","example":{"address":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2"},"x-stainless-model":"wallets.token_transfer_destination"},"TotalFeeConfigurationBps":{"type":"object","properties":{"type":{"type":"string","enum":["total_fee_bps"],"description":"Discriminator: total fee specified in BPS."},"value":{"type":"integer","minimum":0,"maximum":10000,"description":"Total fee in basis points (1 bps = 0.01%)."}},"required":["type","value"],"additionalProperties":false,"description":"Total fees assessed on a transfer, in BPS","title":"TotalFeeConfigurationBps","example":{"type":"total_fee_bps","value":50},"x-stainless-model":"wallets.total_fee_configuration_bps"},"FeeConfiguration":{"oneOf":[{"$ref":"#/components/schemas/TotalFeeConfigurationBps"}],"discriminator":{"propertyName":"type","mapping":{"total_fee_bps":"#/components/schemas/TotalFeeConfigurationBps"}},"description":"How transfer fees are specified. If omitted, a default fee configuration is applied.","title":"FeeConfiguration","example":{"type":"total_fee_bps","value":50},"x-stainless-model":"wallets.fee_configuration"},"TransferRequestBody":{"type":"object","properties":{"amount":{"type":"string","maxLength":100,"description":"Amount as a decimal string in the token's standard unit (e.g. \"1.5\" for 1.5 USDC). For exact_input, the amount to send. For exact_output, the exact amount to receive. Takes precedence over source.amount when both are provided."},"amount_type":{"$ref":"#/components/schemas/AmountType"},"source":{"$ref":"#/components/schemas/TokenTransferSource"},"destination":{"$ref":"#/components/schemas/TokenTransferDestination"},"slippage_bps":{"type":"integer","minimum":0,"maximum":10000,"description":"Maximum allowed slippage in basis points (1 bps = 0.01%). Only applicable for cross-chain or cross-asset transfers; omit to use the provider default."},"fee_configuration":{"allOf":[{"$ref":"#/components/schemas/FeeConfiguration"},{"description":"Optional fee configuration for the transfer. If omitted, cross-chain transfers will not charge additional fees."}]}},"required":["source","destination"],"additionalProperties":false,"description":"Request body for initiating a sponsored token transfer from an embedded wallet.","title":"TransferRequestBody","example":{"amount":"10.5","source":{"asset":"usdc","amount":"10.5","chain":"base"},"destination":{"address":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2"}},"x-stainless-model":"wallets.transfer_request_body"},"TransferQuoteRequestBody":{"type":"object","properties":{"amount":{"type":"string","maxLength":100,"description":"Amount as a decimal string in the token's standard unit (e.g. \"1.5\" for 1.5 USDC). For exact_input, the amount to send. For exact_output, the exact amount to receive. Takes precedence over source.amount when both are provided."},"amount_type":{"$ref":"#/components/schemas/AmountType"},"source":{"$ref":"#/components/schemas/TokenTransferSource"},"destination":{"$ref":"#/components/schemas/TokenTransferDestination"},"slippage_bps":{"type":"integer","minimum":0,"maximum":10000,"description":"Maximum allowed slippage in basis points (1 bps = 0.01%). Only applicable for cross-chain or cross-asset transfers; omit to use the provider default."},"fee_configuration":{"allOf":[{"$ref":"#/components/schemas/FeeConfiguration"},{"description":"Optional fee configuration for the transfer. If omitted, cross-chain transfers will not charge additional fees."}]}},"required":["source","destination"],"additionalProperties":false,"description":"Request body for requesting a quote for a cross-asset or cross-chain (DADC) transfer.","title":"TransferQuoteRequestBody","example":{"source":{"asset":"usdc","amount":"10.5","chain":"base"},"destination":{"address":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","asset":"usdc","chain":"arbitrum"}},"x-stainless-model":"wallets.transfer_quote_request_body"},"TransferQuoteResponse":{"type":"object","properties":{"amount_type":{"$ref":"#/components/schemas/AmountType"},"source":{"$ref":"#/components/schemas/TokenTransferSource"},"destination":{"$ref":"#/components/schemas/TokenTransferDestination"},"estimated_input_amount":{"type":"string","description":"Estimated input amount in decimals. For exact_input, this equals source.amount. For exact_output, this is the estimated amount the sender needs to provide."},"estimated_output_amount":{"type":"string","description":"Estimated output amount in decimals. For exact_input, this is an estimate subject to slippage. For exact_output, this is the guaranteed exact amount to be received."},"estimated_fees":{"type":"array","items":{"$ref":"#/components/schemas/FeeLineItem"},"description":"Estimated fees in USD for the transfer. Only present for cross-chain transfers."},"estimated_gas":{"allOf":[{"$ref":"#/components/schemas/Gas"},{"description":"Estimated source gas cost with full token metadata. Only present for cross-chain transfers."}]},"expires_at":{"type":"number","description":"Quote expiry as Unix timestamp (seconds)."}},"required":["source","destination","estimated_input_amount","estimated_output_amount","estimated_fees","expires_at"],"additionalProperties":false,"description":"Response containing a quote for a cross-asset or cross-chain (DADC) transfer.","title":"TransferQuoteResponse","example":{"source":{"asset":"usdc","amount":"10.50","chain":"base"},"destination":{"address":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","asset":"usdc","chain":"arbitrum"},"estimated_input_amount":"10.50","estimated_output_amount":"10.45","estimated_fees":[{"type":"relayer","amount":"0.20"},{"type":"privy","amount":"0.20"},{"type":"developer","recipient":"0x1234567890abcdef1234567890abcdef12345678","amount":"0.60"}],"estimated_gas":{"base_amount":"100000000000000","amount":"0.0001","gas_asset":"ETH"},"expires_at":1715200000},"x-stainless-model":"wallets.transfer_quote_response"},"Transaction":{"type":"object","properties":{"caip2":{"type":"string"},"transaction_hash":{"type":["string","null"]},"user_operation_hash":{"type":"string"},"status":{"type":"string","enum":["broadcasted","confirmed","execution_reverted","failed","replaced","finalized","provider_error","pending"]},"created_at":{"type":"number"},"sponsored":{"type":"boolean"},"id":{"type":"string"},"wallet_id":{"type":"string"},"reference_id":{"type":["string","null"]}},"required":["caip2","transaction_hash","status","created_at","id","wallet_id"],"description":"A transaction from a Privy wallet.","title":"Transaction","example":{"id":"cm7oxq1el000e11o8iwp7d0d0","wallet_id":"fmfdj6yqly31huorjqzq38zc","status":"confirmed","transaction_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c","caip2":"eip155:8453","created_at":1631573050000},"x-stainless-model":"transactions.transaction"},"EvmCaip2ChainId":{"type":"string","pattern":"^eip155:\\d+$","description":"An EVM CAIP-2 chain identifier (e.g., \"eip155:8453\" for Base).","title":"EvmCaip2ChainId","x-stainless-model":"yield.evm_caip_2_chain_id"},"EthereumYieldProvider":{"type":"string","enum":["morpho","aave"],"description":"Supported yield/lending protocol providers.","title":"EthereumYieldProvider","x-stainless-model":"yield.ethereum_yield_provider"},"EthereumYieldSweepType":{"type":"string","enum":["deposit","withdraw"],"description":"Type of yield sweep.","title":"EthereumYieldSweepType","x-stainless-model":"yield.ethereum_yield_sweep_type"},"EthereumYieldSweepStatus":{"type":"string","enum":["pending","confirmed","failed"],"description":"Status of a yield sweep.","title":"EthereumYieldSweepStatus","x-stainless-model":"yield.ethereum_yield_sweep_status"},"EthereumYieldDepositInput":{"type":"object","properties":{"vault_id":{"type":"string","description":"The ID of the vault to deposit into."},"asset_amount":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$","description":"The amount of the underlying asset to deposit, in the smallest unit (e.g., wei for ETH, 6 decimals for USDC). Must be a non-negative integer string."}},"required":["vault_id","asset_amount"],"additionalProperties":false,"description":"Input for depositing assets into an ERC-4626 vault.","title":"EthereumYieldDepositInput","example":{"vault_id":"cm7oxq1el000e11o8iwp7d0d0","asset_amount":"1000000"},"x-stainless-model":"yield.ethereum_yield_deposit_input"},"EthereumYieldWithdrawInput":{"type":"object","properties":{"vault_id":{"type":"string","description":"The ID of the vault to withdraw from."},"asset_amount":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$","description":"The amount of the underlying asset to withdraw, in the smallest unit (e.g., wei for ETH, 6 decimals for USDC). Must be a non-negative integer string."}},"required":["vault_id","asset_amount"],"additionalProperties":false,"description":"Input for withdrawing assets from an ERC-4626 vault.","title":"EthereumYieldWithdrawInput","example":{"vault_id":"cm7oxq1el000e11o8iwp7d0d0","asset_amount":"1000000"},"x-stainless-model":"yield.ethereum_yield_withdraw_input"},"EthereumYieldSweepResponse":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the yield sweep."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the sweep."},"vault_id":{"type":"string","description":"The ID of the vault involved in the sweep."},"type":{"$ref":"#/components/schemas/EthereumYieldSweepType"},"status":{"$ref":"#/components/schemas/EthereumYieldSweepStatus"},"asset_amount":{"type":["string","null"],"description":"The amount of underlying assets involved. Set after the sweep is confirmed on-chain."},"share_amount":{"type":["string","null"],"description":"The amount of vault shares involved. Set after the sweep is confirmed on-chain."},"created_at":{"type":"number","description":"Unix timestamp of when the sweep was created, in milliseconds."},"updated_at":{"type":"number","description":"Unix timestamp of when the sweep was last updated, in milliseconds."}},"required":["id","wallet_id","vault_id","type","status","asset_amount","share_amount","created_at","updated_at"],"description":"A yield sweep record representing a deposit or withdrawal.","title":"EthereumYieldSweepResponse","example":{"id":"cm7oxq1el000e11o8iwp7d0d0","wallet_id":"fmfdj6yqly31huorjqzq38zc","vault_id":"cm7oxq1el000e11o8iwp7d0d0","type":"deposit","status":"pending","asset_amount":"1000000","share_amount":"987654321","created_at":1631573050000,"updated_at":1631573050000},"x-stainless-model":"yield.ethereum_yield_sweep_response"},"EthereumVaultDetailsInput":{"type":"object","properties":{"vault_id":{"type":"string","description":"The Privy vault ID."}},"required":["vault_id"],"additionalProperties":false,"description":"Input for fetching vault details.","title":"EthereumVaultDetailsInput","example":{"vault_id":"cm7oxq1el000e11o8iwp7d0d0"},"x-stainless-model":"yield.ethereum_vault_details_input"},"EthereumYieldSweepIdInput":{"type":"object","properties":{"id":{"type":"string","description":"The yield sweep ID."}},"required":["id"],"additionalProperties":false,"description":"Input for fetching a yield sweep by ID.","title":"EthereumYieldSweepIdInput","example":{"id":"cm7oxq1el000e11o8iwp7d0d0"},"x-stainless-model":"yield.ethereum_yield_sweep_id_input"},"EthereumVaultResponse":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the vault."},"provider":{"$ref":"#/components/schemas/EthereumYieldProvider"},"vault_address":{"type":"string","description":"The on-chain address of the ERC-4626 vault contract."},"underlying_vault_address":{"type":"string","description":"The address of the underlying vault that the fee vault wraps. If this is not a fee vault, this equals vault_address."},"asset_address":{"type":"string","description":"The address of the underlying asset token (e.g., USDC)."},"caip2":{"type":"string","description":"The CAIP-2 chain identifier."},"created_at":{"type":"number","description":"Unix timestamp of when the vault was created, in milliseconds."}},"required":["id","provider","vault_address","underlying_vault_address","asset_address","caip2","created_at"],"description":"A vault configuration for yield features.","title":"EthereumVaultResponse","example":{"id":"cm7oxq1el000e11o8iwp7d0d0","provider":"morpho","vault_address":"0x1234567890abcdef1234567890abcdef12345678","underlying_vault_address":"0x1234567890abcdef1234567890abcdef12345678","asset_address":"0xabcdef1234567890abcdef1234567890abcdef12","caip2":"eip155:8453","created_at":1631573050000},"x-stainless-model":"yield.ethereum_vault_response"},"EthereumVaultDetailsResponse":{"type":"object","properties":{"id":{"type":"string","description":"Vault identifier."},"name":{"type":"string","description":"Human-readable vault name from the yield provider."},"provider":{"$ref":"#/components/schemas/EthereumYieldProvider"},"vault_address":{"type":"string","description":"On-chain vault contract address."},"asset_address":{"type":"string","description":"Underlying asset token address."},"caip2":{"type":"string","description":"Chain identifier (e.g., eip155:8453)."},"user_apy":{"type":["number","null"],"description":"Current annual percentage yield in basis points (e.g., 500 for 5%). 1 basis point = 0.01%."},"app_apy":{"type":["number","null"],"description":"Annual percentage yield earned by the app from fee wrapper fees, in basis points. Null when APY data is unavailable."},"tvl_usd":{"type":["number","null"],"description":"Total value locked in USD."},"available_liquidity_usd":{"type":["number","null"],"description":"Assets available for instant withdrawal in USD."}},"required":["id","name","provider","vault_address","asset_address","caip2","user_apy","app_apy","tvl_usd","available_liquidity_usd"],"description":"Detailed vault information including current APY and liquidity.","title":"EthereumVaultDetailsResponse","example":{"id":"cm7oxq1el000e11o8iwp7d0d0","name":"Gauntlet USDC Prime","provider":"morpho","vault_address":"0x04422053aDDbc9bB2759b248B574e3FCA76Bc145","asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","caip2":"eip155:1","user_apy":500,"app_apy":50,"tvl_usd":1000000,"available_liquidity_usd":500000},"x-stainless-model":"yield.ethereum_vault_details_response"},"EthereumYieldPositionsInput":{"type":"object","properties":{"vault_id":{"type":"string","description":"The vault ID to get position for."},"include_archived":{"type":"boolean","description":"Include archived wallets in lookup. Defaults to false."}},"required":["vault_id"],"additionalProperties":false,"description":"Input for fetching yield positions.","title":"EthereumYieldPositionsInput","example":{"vault_id":"cm7oxq1el000e11o8iwp7d0d0"},"x-stainless-model":"yield.ethereum_yield_positions_input"},"VaultAsset":{"type":"object","properties":{"address":{"type":"string","description":"Token contract address."},"symbol":{"type":"string","description":"Token symbol (e.g., \"USDC\")."}},"required":["address","symbol"],"additionalProperties":false,"description":"The underlying token of a vault position.","title":"VaultAsset","example":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"USDC"},"x-stainless-model":"yield.vault_asset"},"EthereumVaultPosition":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/VaultAsset"},"total_deposited":{"type":"string","description":"Total amount deposited into the vault, in smallest unit."},"total_withdrawn":{"type":"string","description":"Total amount withdrawn from the vault, in smallest unit."},"assets_in_vault":{"type":"string","description":"Current asset value in the vault (realtime from ERC4626), in smallest unit."},"shares_in_vault":{"type":"string","description":"Current vault shares held (realtime from ERC4626)."}},"required":["asset","total_deposited","total_withdrawn","assets_in_vault","shares_in_vault"],"description":"A user's position in a DeFi vault.","title":"EthereumVaultPosition","example":{"asset":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"USDC"},"total_deposited":"1000000","total_withdrawn":"0","assets_in_vault":"1050000","shares_in_vault":"1000000000000000000"},"x-stainless-model":"yield.ethereum_vault_position"},"EthereumYieldPositionResponse":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/VaultAsset"},"total_deposited":{"type":"string","description":"Total amount deposited into the vault, in smallest unit."},"total_withdrawn":{"type":"string","description":"Total amount withdrawn from the vault, in smallest unit."},"assets_in_vault":{"type":"string","description":"Current asset value in the vault (realtime from ERC4626), in smallest unit."},"shares_in_vault":{"type":"string","description":"Current vault shares held (realtime from ERC4626)."}},"required":["asset","total_deposited","total_withdrawn","assets_in_vault","shares_in_vault"],"description":"A user's position in a yield vault.","title":"EthereumYieldPositionResponse","example":{"asset":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"USDC"},"total_deposited":"1000000","total_withdrawn":"0","assets_in_vault":"1050000","shares_in_vault":"1000000000000000000"},"x-stainless-model":"yield.ethereum_yield_position_response"},"EthereumYieldClaimInput":{"type":"object","properties":{"caip2":{"$ref":"#/components/schemas/EvmCaip2ChainId"}},"required":["caip2"],"additionalProperties":false,"description":"Input for claiming incentive rewards from vault participation.","title":"EthereumYieldClaimInput","example":{"caip2":"eip155:8453"},"x-stainless-model":"yield.ethereum_yield_claim_input"},"EthereumYieldClaimReward":{"type":"object","properties":{"token_address":{"type":"string","description":"Reward token contract address."},"token_symbol":{"type":"string","description":"Reward token symbol (e.g., \"MORPHO\")."},"amount":{"type":"string","description":"Amount claimed in the smallest unit."}},"required":["token_address","token_symbol","amount"],"description":"A single reward token claimed from vault participation.","title":"EthereumYieldClaimReward","example":{"token_address":"0x1234567890abcdef1234567890abcdef12345678","token_symbol":"MORPHO","amount":"115631364898103632676"},"x-stainless-model":"yield.ethereum_yield_claim_reward"},"EthereumYieldClaimResponse":{"type":"object","properties":{"id":{"type":"string","description":"Privy transaction record ID for the claim operation."},"caip2":{"$ref":"#/components/schemas/EvmCaip2ChainId"},"status":{"type":"string","enum":["broadcasted","confirmed","execution_reverted","failed","replaced","finalized","provider_error","pending"],"description":"The current status of the claim transaction."},"rewards":{"type":"array","items":{"$ref":"#/components/schemas/EthereumYieldClaimReward"},"description":"List of reward tokens claimed."},"created_at":{"type":"number","description":"Unix timestamp of when the claim was created, in milliseconds."},"updated_at":{"type":"number","description":"Unix timestamp of when the claim was last updated, in milliseconds."}},"required":["id","caip2","status","rewards","created_at","updated_at"],"description":"Response from a yield reward claim operation.","title":"EthereumYieldClaimResponse","example":{"id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","caip2":"eip155:8453","status":"pending","rewards":[{"token_address":"0x1234567890abcdef1234567890abcdef12345678","token_symbol":"MORPHO","amount":"115631364898103632676"}],"created_at":1631573050000,"updated_at":1631573050000},"x-stainless-model":"yield.ethereum_yield_claim_response"},"EthereumYieldClaimIdInput":{"type":"object","properties":{"id":{"type":"string","description":"The yield claim transaction ID."}},"required":["id"],"additionalProperties":false,"description":"Input for fetching a yield reward claim by ID.","title":"EthereumYieldClaimIdInput","example":{"id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"x-stainless-model":"yield.ethereum_yield_claim_id_input"},"AdvancedSwapRequestBody":{"type":"object","properties":{"input_token":{"type":"string","description":"Input token address (base58 mint address)."},"output_token":{"type":"string","description":"Output token address (base58 mint address)."},"caip2":{"type":"string","description":"CAIP-2 chain identifier. Defaults to Solana mainnet."},"amount":{"type":"string","description":"Amount in the smallest unit of the input token (e.g. lamports for SOL)."},"slippage_bps":{"anyOf":[{"type":"integer","minimum":0,"maximum":10000},{"type":"string","enum":["auto"]}],"default":"auto","description":"Max slippage tolerance in basis points (0-10000), or \"auto\" for provider-determined. Defaults to \"auto\"."},"dry_run":{"type":"boolean","description":"When true, skip transaction submission (quote + sign only). The signed transaction is still returned."},"platform_fee_bps":{"type":"integer","minimum":0,"maximum":10000,"description":"Platform fee in basis points, taken from the output token. Requires fee_recipient when > 0."},"fee_recipient":{"type":"string","description":"Token account (base58) to receive the platform fee. Must exist on-chain for the output token."}},"required":["input_token","output_token","amount"],"additionalProperties":false,"description":"Request body for initiating a synchronous Solana token swap through an embedded wallet.","title":"AdvancedSwapRequestBody","example":{"input_token":"So11111111111111111111111111111111111111112","output_token":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","caip2":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","amount":"1000000000","slippage_bps":50,"platform_fee_bps":100,"fee_recipient":"FeeAcct..."},"x-stainless-model":"wallets.advanced_swap_request_body"},"AdvancedSwapPlatformFee":{"type":"object","properties":{"amount":{"type":"string","description":"Fee amount in the smallest unit of the fee token."},"bps":{"type":"integer","description":"Fee in basis points."},"token":{"type":"string","description":"Token the fee was taken from (output token in v1)."}},"required":["amount","bps","token"],"additionalProperties":false,"description":"Platform fee collected on a swap.","title":"AdvancedSwapPlatformFee","x-stainless-model":"wallets.advanced_swap_platform_fee"},"SwapSubmissionStatus":{"type":"string","enum":["accepted","rejected","skipped"],"description":"\"accepted\" if the network has acknowledged the transaction, \"rejected\" if the network refused it, \"skipped\" if dry_run was set. Not an onchain confirmation.","title":"SwapSubmissionStatus","x-stainless-model":"wallets.swap_submission_status"},"AdvancedSwapResponse":{"type":"object","properties":{"transaction_hash":{"type":"string","description":"Solana transaction signature (base58)."},"submission_status":{"$ref":"#/components/schemas/SwapSubmissionStatus"},"signed_transaction":{"type":"string","description":"Fully signed transaction (base64). Callers can re-submit to any Solana RPC for redundancy."},"provider":{"type":"string","description":"Which aggregator fulfilled the swap (e.g. \"dflow\")."},"input_token":{"type":"string","description":"Input token address (base58)."},"output_token":{"type":"string","description":"Output token address (base58)."},"in_amount":{"type":"string","description":"Input amount consumed (smallest unit)."},"out_amount":{"type":"string","description":"Expected output amount before slippage (smallest unit)."},"min_out_amount":{"type":"string","description":"Minimum output amount guaranteed by slippage tolerance (smallest unit)."},"slippage_bps":{"type":"integer","description":"Slippage applied in basis points. Reflects the resolved value if \"auto\" was requested."},"platform_fee":{"allOf":[{"$ref":"#/components/schemas/AdvancedSwapPlatformFee"},{"description":"Platform fee details, present when a fee was applied."}]}},"required":["transaction_hash","submission_status","signed_transaction","provider","input_token","output_token","in_amount","out_amount","min_out_amount","slippage_bps"],"additionalProperties":false,"description":"Response from the synchronous Solana swap endpoint.","title":"AdvancedSwapResponse","example":{"transaction_hash":"5K4f...base58sig","submission_status":"accepted","signed_transaction":"AQAAAA...base64...","provider":"dflow","input_token":"So11111111111111111111111111111111111111112","output_token":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","in_amount":"1000000000","out_amount":"173500000","min_out_amount":"172632500","slippage_bps":50,"platform_fee":{"amount":"1735000","bps":100,"token":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}},"x-stainless-model":"wallets.advanced_swap_response"},"EthereumEarnProvider":{"type":"string","enum":["morpho","aave"],"description":"Supported earn provider protocols.","title":"EthereumEarnProvider","x-stainless-model":"wallet_actions.ethereum_earn_provider"},"EarnDepositRequestBody":{"type":"object","properties":{"vault_id":{"type":"string","description":"The ID of the vault to deposit into."},"amount":{"type":"string","minLength":1,"maxLength":200,"pattern":"^\\d+(\\.\\d+)?$","description":"Human-readable decimal amount to deposit (e.g. \"1.5\" for 1.5 USDC). Exactly one of `amount` or `raw_amount` must be provided."},"raw_amount":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$","description":"Amount in smallest unit to deposit (e.g. \"1500000\" for 1.5 USDC with 6 decimals). Exactly one of `amount` or `raw_amount` must be provided."}},"required":["vault_id"],"additionalProperties":false,"description":"Input for depositing assets into an ERC-4626 vault. Exactly one of `amount` or `raw_amount` must be provided.","title":"EarnDepositRequestBody","example":{"vault_id":"cm7oxq1el000e11o8iwp7d0d0","amount":"1.5"},"x-stainless-model":"wallet_actions.earn_deposit_request_body"},"EarnWithdrawRequestBody":{"type":"object","properties":{"vault_id":{"type":"string","description":"The ID of the vault to withdraw from."},"amount":{"type":"string","minLength":1,"maxLength":200,"pattern":"^\\d+(\\.\\d+)?$","description":"Human-readable decimal amount to withdraw (e.g. \"1.5\" for 1.5 USDC). Exactly one of `amount` or `raw_amount` must be provided."},"raw_amount":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$","description":"Amount in smallest unit to withdraw (e.g. \"1500000\" for 1.5 USDC with 6 decimals). Exactly one of `amount` or `raw_amount` must be provided."}},"required":["vault_id"],"additionalProperties":false,"description":"Input for withdrawing assets from an ERC-4626 vault. Exactly one of `amount` or `raw_amount` must be provided.","title":"EarnWithdrawRequestBody","example":{"vault_id":"cm7oxq1el000e11o8iwp7d0d0","amount":"1.5"},"x-stainless-model":"wallet_actions.earn_withdraw_request_body"},"EarnIncentiveClaimRequestBody":{"type":"object","properties":{"chain":{"type":"string","description":"The blockchain network on which to perform the incentive claim. Supported chains include: 'ethereum', 'base', 'arbitrum', 'polygon', 'solana', and more, along with their respective testnets."}},"required":["chain"],"additionalProperties":false,"description":"Input for claiming incentive rewards.","title":"EarnIncentiveClaimRequestBody","example":{"chain":"base"},"x-stainless-model":"wallet_actions.earn_incentive_claim_request_body"},"EthereumEarnPositionQuery":{"type":"object","properties":{"vault_id":{"type":"string","description":"The vault ID to get position for."},"include_archived":{"type":"boolean","description":"Include archived wallets in lookup. Defaults to false."}},"required":["vault_id"],"additionalProperties":false,"description":"Query parameters for fetching an earn vault position.","title":"EthereumEarnPositionQuery","example":{"vault_id":"cm7oxq1el000e11o8iwp7d0d0"},"x-stainless-model":"wallet_actions.ethereum_earn_position_query"},"EarnAsset":{"type":"object","properties":{"address":{"type":"string","description":"Token contract address."},"symbol":{"type":"string","description":"Lowercase token symbol (e.g. \"usdc\")."},"decimals":{"type":"integer","description":"Number of decimals for the asset (e.g. 6 for USDC)."}},"required":["address","symbol","decimals"],"description":"Asset metadata for an earn vault position.","title":"EarnAsset","example":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"usdc","decimals":6},"x-stainless-model":"wallet_actions.earn_asset"},"EthereumEarnPositionResponse":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/EarnAsset"},"total_deposited":{"type":"string","description":"Total amount deposited into the vault, in smallest unit."},"total_withdrawn":{"type":"string","description":"Total amount withdrawn from the vault, in smallest unit."},"assets_in_vault":{"type":"string","description":"Current asset value in the vault (realtime from ERC-4626), in smallest unit."},"shares_in_vault":{"type":"string","description":"Current vault shares held (realtime from ERC-4626)."}},"required":["asset","total_deposited","total_withdrawn","assets_in_vault","shares_in_vault"],"description":"A wallet's position in an earn vault.","title":"EthereumEarnPositionResponse","example":{"asset":{"address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"usdc","decimals":6},"total_deposited":"1000000","total_withdrawn":"0","assets_in_vault":"1050000","shares_in_vault":"1000000000000000000"},"x-stainless-model":"wallet_actions.ethereum_earn_position_response"},"EarnIncentiveRewardsQuery":{"type":"object","properties":{"chain":{"type":"string","description":"Chain name to fetch rewards for (e.g. \"base\", \"ethereum\")."}},"required":["chain"],"additionalProperties":false,"description":"Query parameters for fetching incentive rewards.","title":"EarnIncentiveRewardsQuery","example":{"chain":"base"},"x-stainless-model":"wallet_actions.earn_incentive_rewards_query"},"EarnIncentiveRewardEntry":{"type":"object","properties":{"token_address":{"type":"string","description":"Address of the reward token."},"token_symbol":{"type":"string","description":"Symbol of the reward token (e.g. \"MORPHO\")."},"token_decimals":{"type":"integer","description":"Number of decimals for the reward token."},"amount_claimed":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$","description":"Total amount already claimed, in smallest unit."},"amount_unclaimed":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$","description":"Amount available to claim on-chain but not yet claimed, in smallest unit."}},"required":["token_address","token_symbol","amount_claimed","amount_unclaimed"],"description":"A reward token with claimed and unclaimed amounts.","title":"EarnIncentiveRewardEntry","example":{"token_address":"0x0000000000000000000000000000000000000000","token_symbol":"MORPHO","token_decimals":18,"amount_claimed":"1000000000000000000","amount_unclaimed":"500000000000000000"},"x-stainless-model":"wallet_actions.earn_incentive_reward_entry"},"EarnIncentiveRewardsResponse":{"type":"object","properties":{"rewards":{"type":"array","items":{"$ref":"#/components/schemas/EarnIncentiveRewardEntry"},"description":"Reward tokens with their claimed and unclaimed amounts."}},"required":["rewards"],"description":"All incentive rewards for a wallet, with claimed and unclaimed amounts per token.","title":"EarnIncentiveRewardsResponse","example":{"rewards":[{"token_address":"0x0000000000000000000000000000000000000000","token_symbol":"MORPHO","token_decimals":18,"amount_claimed":"1000000000000000000","amount_unclaimed":"500000000000000000"}]},"x-stainless-model":"wallet_actions.earn_incentive_rewards_response"},"EthereumEarnVaultDetailsResponse":{"type":"object","properties":{"id":{"type":"string","description":"Vault identifier."},"name":{"type":"string","description":"Human-readable vault name from the yield provider."},"provider":{"$ref":"#/components/schemas/EthereumEarnProvider"},"vault_address":{"type":"string","description":"Onchain vault contract address."},"asset":{"$ref":"#/components/schemas/EarnAsset"},"caip2":{"type":"string","description":"CAIP-2 chain identifier (e.g. \"eip155:8453\")."},"user_apy":{"type":["number","null"],"description":"Current annual percentage yield in basis points (e.g. 500 for 5%). 1 basis point = 0.01%."},"app_apy":{"type":["number","null"],"description":"Annual percentage yield earned by the app from fee wrapper fees, in basis points."},"tvl_usd":{"type":["number","null"],"description":"Total value locked in USD."},"available_liquidity_usd":{"type":["number","null"],"description":"Available liquidity in USD."}},"required":["id","name","provider","vault_address","asset","caip2","user_apy","app_apy","tvl_usd","available_liquidity_usd"],"description":"Detailed vault information including current APY, liquidity, and asset metadata.","title":"EthereumEarnVaultDetailsResponse","example":{"id":"cm7oxq1el000e11o8iwp7d0d0","name":"Gauntlet USDC Prime","provider":"morpho","vault_address":"0x460b523b670e751c1d7c85f24504825e24f64700","asset":{"address":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","symbol":"usdc","decimals":6},"caip2":"eip155:8453","user_apy":500,"app_apy":50,"tvl_usd":64000000,"available_liquidity_usd":64000000},"x-stainless-model":"wallet_actions.ethereum_earn_vault_details_response"},"AuthorizationKey":{"type":"object","properties":{"public_key":{"type":"string"},"display_name":{"type":["string","null"],"maxLength":50}},"required":["public_key","display_name"],"additionalProperties":false,"description":"A public key authorized to sign on a key quorum.","title":"AuthorizationKey","x-stainless-model":"key_quorums.authorization_key"},"KeyQuorum":{"type":"object","properties":{"id":{"type":"string","format":"cuid2"},"display_name":{"type":["string","null"],"maxLength":50},"authorization_threshold":{"type":["number","null"],"minimum":1},"authorization_keys":{"type":"array","items":{"$ref":"#/components/schemas/AuthorizationKey"}},"user_ids":{"type":["array","null"],"items":{"type":"string"}},"key_quorum_ids":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":5,"description":"List of nested key quorum IDs that are members of this key quorum."}},"required":["id","display_name","authorization_threshold","authorization_keys","user_ids"],"description":"A key quorum for authorizing wallet operations.","title":"KeyQuorum","example":{"id":"tb54eps4z44ed0jepousxi4n","display_name":"Prod key quorum","authorization_threshold":1,"authorization_keys":[{"public_key":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEx4aoeD72yykviK+f/ckqE2CItVIG\n1rCnvC3/XZ1HgpOcMEMialRmTrqIK4oZlYd1RfxU3za/C9yjhboIuoPD3g==","display_name":null},{"public_key":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErzZtQr/bMIh3Y8f9ZqseB9i/AfjQ\nhu+agbNqXcJy/TfoNqvc/Y3Mh7gIZ8ZLXQEykycx4mYSpqrxp1lBKqsZDQ==","display_name":null}],"user_ids":null},"x-stainless-model":"key_quorums.key_quorum"},"KeyQuorumCreateRequestBody":{"type":"object","properties":{"public_keys":{"type":"array","items":{"type":"string"},"minItems":1,"description":"List of P-256 public keys of the keys that should be authorized to sign on the key quorum, in base64-encoded DER format. At least one of `user_ids`, `public_keys`, or `key_quorum_ids` is required."},"authorization_threshold":{"type":"number","minimum":1,"description":"The number of keys that must sign for an action to be valid. Must be less than or equal to total number of key quorum members."},"display_name":{"type":"string","maxLength":50},"user_ids":{"type":"array","items":{"type":"string"},"minItems":1,"description":"List of user IDs of the users that should be authorized to sign on the key quorum. At least one of `user_ids`, `public_keys`, or `key_quorum_ids` is required."},"key_quorum_ids":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":5,"description":"List of key quorum IDs that should be members of this key quorum. Key quorums can only be nested 1 level deep. At least one of `user_ids`, `public_keys`, or `key_quorum_ids` is required."}},"description":"Request input for creating a key quorum. At least one of `user_ids`, `public_keys`, or `key_quorum_ids` is required.","title":"KeyQuorumCreateRequestBody","x-stainless-model":"key_quorums.key_quorum_create_request_body"},"KeyQuorumUpdateRequestBody":{"type":"object","properties":{"public_keys":{"type":"array","items":{"type":"string"},"description":"List of P-256 public keys of the keys that should be authorized to sign on the key quorum, in base64-encoded DER format."},"authorization_threshold":{"type":"number","description":"The number of keys that must sign for an action to be valid. Must be less than or equal to total number of key quorum members."},"display_name":{"type":"string","maxLength":50},"user_ids":{"type":"array","items":{"type":"string"},"description":"List of user IDs of the users that should be authorized to sign on the key quorum."},"key_quorum_ids":{"type":"array","items":{"type":"string"},"maxItems":5,"description":"List of key quorum IDs that should be members of this key quorum. Key quorums can only be nested 1 level deep."}},"description":"Request input for updating an existing key quorum. At least one field must be provided.","title":"KeyQuorumUpdateRequestBody","x-stainless-model":"key_quorums.key_quorum_update_request_body"},"SmartWalletType":{"type":"string","enum":["safe","kernel","light_account","biconomy","coinbase_smart_wallet","thirdweb","nexus"],"description":"The supported smart wallet providers.","title":"SmartWalletType","x-stainless-model":"embedded_wallets.smart_wallet_type"},"AlchemyPaymasterContext":{"type":"object","properties":{"policy_id":{"type":"string","format":"uuid"}},"required":["policy_id"],"description":"The Alchemy paymaster context for a smart wallet network configuration.","title":"AlchemyPaymasterContext","x-stainless-model":"embedded_wallets.alchemy_paymaster_context"},"SmartWalletNetworkConfiguration":{"type":"object","properties":{"chain_id":{"type":"string","pattern":"^eip155:\\d+$"},"bundler_url":{"type":"string"},"paymaster_url":{"type":"string"},"rpc_url":{"type":"string"},"chain_name":{"type":"string"},"paymaster_context":{"$ref":"#/components/schemas/AlchemyPaymasterContext"}},"required":["chain_id","bundler_url"],"description":"Network configuration for a smart wallet.","title":"SmartWalletNetworkConfiguration","x-stainless-model":"embedded_wallets.smart_wallet_network_configuration"},"SmartWalletNetworkConfigurationInput":{"type":"object","properties":{"chain_id":{"type":"string","pattern":"^eip155:\\d+$"},"bundler_url":{"type":"string"},"paymaster_url":{"type":"string"},"rpc_url":{"type":"string"},"chain_name":{"type":"string"},"paymaster_context":{"$ref":"#/components/schemas/AlchemyPaymasterContext"}},"required":["chain_id"],"description":"Input for network configuration for a smart wallet.","title":"SmartWalletNetworkConfigurationInput","x-stainless-model":"embedded_wallets.smart_wallet_network_configuration_input"},"SmartWalletConfigurationDisabled":{"type":"object","properties":{"enabled":{"type":"boolean","enum":[false]}},"required":["enabled"],"description":"A disabled smart wallet configuration.","title":"SmartWalletConfigurationDisabled","x-stainless-model":"embedded_wallets.smart_wallet_configuration_disabled"},"SmartWalletConfigurationEnabled":{"type":"object","properties":{"enabled":{"type":"boolean","enum":[true]},"smart_wallet_type":{"$ref":"#/components/schemas/SmartWalletType"},"smart_wallet_version":{"type":"string"},"configured_networks":{"type":"array","items":{"$ref":"#/components/schemas/SmartWalletNetworkConfiguration"},"minItems":1}},"required":["enabled","smart_wallet_type","configured_networks"],"description":"An enabled smart wallet configuration.","title":"SmartWalletConfigurationEnabled","x-stainless-model":"embedded_wallets.smart_wallet_configuration_enabled"},"SmartWalletConfigurationInputEnabled":{"type":"object","properties":{"enabled":{"type":"boolean","enum":[true]},"smart_wallet_type":{"$ref":"#/components/schemas/SmartWalletType"},"smart_wallet_version":{"type":["string","null"]},"configured_networks":{"type":"array","items":{"$ref":"#/components/schemas/SmartWalletNetworkConfigurationInput"},"minItems":1}},"required":["enabled","smart_wallet_type","configured_networks"],"description":"An enabled smart wallet configuration input.","title":"SmartWalletConfigurationInputEnabled","x-stainless-model":"embedded_wallets.smart_wallet_configuration_input_enabled"},"SmartWalletConfiguration":{"anyOf":[{"$ref":"#/components/schemas/SmartWalletConfigurationDisabled"},{"$ref":"#/components/schemas/SmartWalletConfigurationEnabled"}],"description":"The configuration object for smart wallets.","title":"SmartWalletConfiguration","x-stainless-model":"embedded_wallets.smart_wallet_configuration"},"SmartWalletConfigurationInput":{"anyOf":[{"$ref":"#/components/schemas/SmartWalletConfigurationDisabled"},{"$ref":"#/components/schemas/SmartWalletConfigurationInputEnabled"}],"description":"The input configuration object for smart wallets.","title":"SmartWalletConfigurationInput","x-stainless-model":"embedded_wallets.smart_wallet_configuration_input"},"CurrencyAsset":{"type":"string","enum":["native-currency","USDC"],"description":"A currency asset type.","title":"CurrencyAsset","x-stainless-model":"apps.currency_asset"},"Currency":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/CAIP2"},"asset":{"$ref":"#/components/schemas/CurrencyAsset"}},"required":["chain"],"description":"A crypto currency identified by a CAIP-2 chain ID and optional asset.","title":"Currency","x-stainless-model":"apps.currency"},"EmbeddedWalletCreateOnLogin":{"type":"string","enum":["users-without-wallets","all-users","off"],"description":"Whether to create embedded wallets on login.","title":"EmbeddedWalletCreateOnLogin","x-stainless-model":"apps.embedded_wallet_create_on_login"},"EmbeddedWalletChainConfig":{"type":"object","properties":{"create_on_login":{"$ref":"#/components/schemas/EmbeddedWalletCreateOnLogin"}},"required":["create_on_login"],"description":"Chain-specific configuration for embedded wallets.","title":"EmbeddedWalletChainConfig","x-stainless-model":"apps.embedded_wallet_chain_config"},"UserOwnedRecoveryOption":{"type":"string","enum":["user-passcode","google-drive","icloud"],"description":"A user-owned recovery option for embedded wallets.","title":"UserOwnedRecoveryOption","x-stainless-model":"apps.user_owned_recovery_option"},"EmbeddedWalletInputSchema":{"type":"object","properties":{"create_on_login":{"$ref":"#/components/schemas/EmbeddedWalletCreateOnLogin"},"ethereum":{"$ref":"#/components/schemas/EmbeddedWalletChainConfig"},"solana":{"$ref":"#/components/schemas/EmbeddedWalletChainConfig"},"user_owned_recovery_options":{"type":"array","items":{"$ref":"#/components/schemas/UserOwnedRecoveryOption"}},"require_user_owned_recovery_on_create":{"type":"boolean"},"require_user_password_on_create":{"type":"boolean"}},"required":["create_on_login","ethereum","solana","user_owned_recovery_options"],"description":"Input configuration for embedded wallets.","title":"EmbeddedWalletInputSchema","x-stainless-model":"apps.embedded_wallet_input_schema"},"EmbeddedWalletMode":{"type":"string","enum":["legacy-embedded-wallets-only","user-controlled-server-wallets-only"],"description":"The mode for embedded wallets.","title":"EmbeddedWalletMode","x-stainless-model":"apps.embedded_wallet_mode"},"EmbeddedWalletConfigSchema":{"allOf":[{"$ref":"#/components/schemas/EmbeddedWalletInputSchema"},{"type":"object","properties":{"mode":{"$ref":"#/components/schemas/EmbeddedWalletMode"}},"required":["mode"]}],"description":"Configuration for embedded wallets including the mode.","title":"EmbeddedWalletConfigSchema","x-stainless-model":"apps.embedded_wallet_config_schema"},"TelegramAuthConfigSchema":{"type":"object","properties":{"bot_id":{"type":"string"},"bot_name":{"type":"string"},"link_enabled":{"type":"boolean"},"seamless_auth_enabled":{"type":"boolean"}},"required":["bot_id","bot_name","link_enabled","seamless_auth_enabled"],"description":"Configuration for Telegram authentication.","title":"TelegramAuthConfigSchema","x-stainless-model":"apps.telegram_auth_config_schema"},"FundingMethodEnum":{"type":"string","enum":["moonpay","coinbase-onramp","external"],"description":"A funding method for on-ramp.","title":"FundingMethodEnum","x-stainless-model":"apps.funding_method_enum"},"FundingOption":{"type":"object","properties":{"method":{"type":"string"},"provider":{"type":"string"}},"required":["method","provider"],"description":"A funding option with method and provider.","title":"FundingOption","x-stainless-model":"apps.funding_option"},"FundingConfigResponseSchema":{"type":"object","properties":{"default_recommended_currency":{"$ref":"#/components/schemas/Currency"},"default_recommended_amount":{"type":"string"},"methods":{"type":"array","items":{"$ref":"#/components/schemas/FundingMethodEnum"}},"options":{"type":"array","items":{"$ref":"#/components/schemas/FundingOption"}},"prompt_funding_on_wallet_creation":{"type":"boolean"},"cross_chain_bridging_enabled":{"type":"boolean"}},"required":["default_recommended_currency","default_recommended_amount","methods","options","prompt_funding_on_wallet_creation","cross_chain_bridging_enabled"],"description":"Configuration for funding and on-ramp options.","title":"FundingConfigResponseSchema","x-stainless-model":"apps.funding_config_response_schema"},"MfaMethod":{"type":"string","enum":["sms","totp","passkey"],"description":"A multi-factor authentication method supported by the app.","title":"MfaMethod","x-stainless-model":"apps.mfa_method"},"CaptchaProvider":{"type":"string","enum":["turnstile","hcaptcha"],"description":"The captcha provider enabled for an app.","title":"CaptchaProvider","x-stainless-model":"apps.captcha_provider"},"AppAllowlistConfig":{"type":"object","properties":{"error_title":{"type":["string","null"]},"error_detail":{"type":["string","null"]},"cta_text":{"type":["string","null"]},"cta_link":{"type":["string","null"]}},"required":["error_title","error_detail","cta_text","cta_link"],"additionalProperties":false,"description":"Configuration for the allowlist error page shown to users not on the allowlist.","title":"AppAllowlistConfig","x-stainless-model":"apps.app_allowlist_config"},"AppCustomOAuthProvider":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/CustomOAuthProviderID"},"provider_display_name":{"type":"string"},"provider_icon_url":{"type":"string"},"enabled":{"type":"boolean"}},"required":["provider","provider_display_name","provider_icon_url","enabled"],"additionalProperties":false,"description":"A custom OAuth provider configured for an app.","title":"AppCustomOAuthProvider","x-stainless-model":"apps.app_custom_oauth_provider"},"AppResponse":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":["string","null"]},"icon_url":{"type":["string","null"]},"terms_and_conditions_url":{"type":["string","null"]},"privacy_policy_url":{"type":["string","null"]},"require_users_accept_terms":{"type":["boolean","null"]},"theme":{"type":"string"},"accent_color":{"type":["string","null"]},"show_wallet_login_first":{"type":"boolean"},"allowed_domains":{"type":"array","items":{"type":"string"}},"allowed_native_app_ids":{"type":"array","items":{"type":"string"}},"allowed_native_app_url_schemes":{"type":"array","items":{"type":"string"}},"wallet_auth":{"type":"boolean"},"email_auth":{"type":"boolean"},"sms_auth":{"type":"boolean"},"google_oauth":{"type":"boolean"},"twitter_oauth":{"type":"boolean"},"discord_oauth":{"type":"boolean"},"github_oauth":{"type":"boolean"},"spotify_oauth":{"type":"boolean"},"instagram_oauth":{"type":"boolean"},"tiktok_oauth":{"type":"boolean"},"line_oauth":{"type":"boolean"},"twitch_oauth":{"type":"boolean"},"linkedin_oauth":{"type":"boolean"},"apple_oauth":{"type":"boolean"},"telegram_oauth":{"type":"boolean"},"custom_oauth_providers":{"type":"array","items":{"$ref":"#/components/schemas/AppCustomOAuthProvider"}},"farcaster_auth":{"type":"boolean"},"passkey_auth":{"type":"boolean"},"passkeys_for_signup_enabled":{"type":"boolean"},"telegram_auth":{"type":"boolean"},"guest_auth":{"type":"boolean"},"solana_wallet_auth":{"type":"boolean"},"external_wallets_for_signup_enabled":{"type":"boolean"},"custom_jwt_auth":{"type":"boolean"},"disable_plus_emails":{"type":"boolean"},"merge_accounts_by_email":{"type":"boolean"},"allowlist_enabled":{"type":"boolean"},"allowlist_config":{"$ref":"#/components/schemas/AppAllowlistConfig"},"wallet_connect_cloud_project_id":{"type":["string","null"]},"custom_api_url":{"type":["string","null"]},"embedded_wallet_config":{"$ref":"#/components/schemas/EmbeddedWalletConfigSchema"},"enforce_wallet_uis":{"type":"boolean"},"legacy_wallet_ui_config":{"type":"boolean"},"fiat_on_ramp_enabled":{"type":"boolean"},"captcha_enabled":{"type":"boolean"},"enabled_captcha_provider":{"anyOf":[{"$ref":"#/components/schemas/CaptchaProvider"},{"type":"null"}]},"twitter_oauth_on_mobile_enabled":{"type":"boolean"},"mfa_methods":{"type":"array","items":{"$ref":"#/components/schemas/MfaMethod"}},"captcha_site_key":{"type":"string"},"verification_key":{"type":"string"},"telegram_auth_config":{"$ref":"#/components/schemas/TelegramAuthConfigSchema"},"funding_config":{"$ref":"#/components/schemas/FundingConfigResponseSchema"},"max_linked_wallets_per_user":{"type":["number","null"]},"farcaster_link_wallets_enabled":{"type":"boolean"},"whatsapp_enabled":{"type":"boolean"},"smart_wallet_config":{"$ref":"#/components/schemas/SmartWalletConfiguration"},"data_classification":{"type":"string","enum":["public"],"description":"Indicates that this response contains only publicly accessible data, not a privileged resource"}},"required":["id","name","logo_url","icon_url","terms_and_conditions_url","privacy_policy_url","require_users_accept_terms","theme","accent_color","show_wallet_login_first","allowed_domains","allowed_native_app_ids","allowed_native_app_url_schemes","wallet_auth","email_auth","sms_auth","google_oauth","twitter_oauth","discord_oauth","github_oauth","spotify_oauth","instagram_oauth","tiktok_oauth","line_oauth","twitch_oauth","linkedin_oauth","apple_oauth","telegram_oauth","custom_oauth_providers","farcaster_auth","passkey_auth","passkeys_for_signup_enabled","telegram_auth","guest_auth","solana_wallet_auth","external_wallets_for_signup_enabled","custom_jwt_auth","disable_plus_emails","merge_accounts_by_email","allowlist_enabled","allowlist_config","wallet_connect_cloud_project_id","custom_api_url","embedded_wallet_config","enforce_wallet_uis","legacy_wallet_ui_config","fiat_on_ramp_enabled","captcha_enabled","enabled_captcha_provider","twitter_oauth_on_mobile_enabled","mfa_methods","verification_key","max_linked_wallets_per_user","farcaster_link_wallets_enabled","whatsapp_enabled","smart_wallet_config","data_classification"],"description":"The response for getting an app.","title":"AppResponse","x-stainless-model":"apps.app_response"},"EmailDomain":{"type":"string","description":"An email domain.","title":"EmailDomain","x-stainless-model":"apps.email_domain"},"EmailInviteInput":{"type":"object","properties":{"type":{"type":"string","enum":["email"]},"value":{"type":"string","format":"email"}},"required":["type","value"],"additionalProperties":false,"description":"Allowlist invite input for an email address.","title":"EmailInviteInput","x-stainless-model":"apps.email_invite_input"},"WalletInviteInput":{"type":"object","properties":{"type":{"type":"string","enum":["wallet"]},"value":{"anyOf":[{"type":"string"},{"type":"string"}]}},"required":["type","value"],"additionalProperties":false,"description":"Allowlist invite input for a wallet address.","title":"WalletInviteInput","x-stainless-model":"apps.wallet_invite_input"},"PhoneInviteInput":{"type":"object","properties":{"type":{"type":"string","enum":["phone"]},"value":{"type":"string"}},"required":["type","value"],"additionalProperties":false,"description":"Allowlist invite input for a phone number.","title":"PhoneInviteInput","x-stainless-model":"apps.phone_invite_input"},"EmailDomainInviteInput":{"type":"object","properties":{"type":{"type":"string","enum":["emailDomain"]},"value":{"$ref":"#/components/schemas/EmailDomain"}},"required":["type","value"],"additionalProperties":false,"description":"Allowlist invite input for an email domain.","title":"EmailDomainInviteInput","x-stainless-model":"apps.email_domain_invite_input"},"UserInviteInput":{"oneOf":[{"$ref":"#/components/schemas/EmailInviteInput"},{"$ref":"#/components/schemas/EmailDomainInviteInput"},{"$ref":"#/components/schemas/WalletInviteInput"},{"$ref":"#/components/schemas/PhoneInviteInput"}],"discriminator":{"propertyName":"type","mapping":{"email":"#/components/schemas/EmailInviteInput","emailDomain":"#/components/schemas/EmailDomainInviteInput","wallet":"#/components/schemas/WalletInviteInput","phone":"#/components/schemas/PhoneInviteInput"}},"description":"Input for adding or removing an allowlist entry. Discriminated by type.","title":"UserInviteInput","x-stainless-model":"apps.user_invite_input"},"AllowlistEntry":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"},"appId":{"type":"string"},"acceptedAt":{"type":["number","null"]}},"required":["id","type","value","appId","acceptedAt"],"description":"An allowlist entry for an app.","title":"AllowlistEntry","x-stainless-model":"apps.allowlist_entry"},"AllowlistDeletionResponse":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"description":"Confirmation response for deleting an allowlist entry.","title":"AllowlistDeletionResponse","x-stainless-model":"apps.allowlist_deletion_response"},"TestAccount":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"email":{"type":"string"},"phone_number":{"type":"string"},"otp_code":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","email","phone_number","otp_code","created_at","updated_at"],"description":"A test account for an app.","title":"TestAccount","x-stainless-model":"apps.test_account"},"TestAccountsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TestAccount"}}},"required":["data"],"description":"Response for listing test accounts for an app.","title":"TestAccountsResponse","x-stainless-model":"apps.test_accounts_response"},"GasSpendRequestBody":{"type":"object","properties":{"wallet_ids":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":100,"description":"List of wallet IDs to query gas spend for. Maximum 100."},"start_timestamp":{"type":"number","description":"Unix timestamp in milliseconds, inclusive. Must be less than or equal to `end_timestamp`, and the range from `start_timestamp` to `end_timestamp` must not exceed 30 days."},"end_timestamp":{"type":"number","description":"Unix timestamp in milliseconds, exclusive. Must be greater than or equal to `start_timestamp`, and the range from `start_timestamp` to `end_timestamp` must not exceed 30 days."}},"required":["wallet_ids","start_timestamp","end_timestamp"],"additionalProperties":false,"description":"Query parameters for getting gas spend for a set of wallets. The time range from `start_timestamp` to `end_timestamp` must not exceed 30 days.","title":"GasSpendRequestBody","example":{"wallet_ids":["fmfdj6yqly31huorjqzq38zc"],"start_timestamp":1700000000000,"end_timestamp":1700086400000},"x-stainless-model":"apps.gas_spend_request_body"},"GasSpendCurrency":{"type":"string","enum":["usd"],"description":"Currency for gas spend values.","title":"GasSpendCurrency","x-stainless-model":"apps.gas_spend_currency"},"GasSpendResponseBody":{"type":"object","properties":{"value":{"type":"string","description":"Total Privy credits charged as a decimal string."},"currency":{"allOf":[{"$ref":"#/components/schemas/GasSpendCurrency"},{"description":"Currency represented by the value."}]}},"required":["value","currency"],"additionalProperties":false,"description":"Aggregated Privy gas credits charged for a set of wallets over a time range.","title":"GasSpendResponseBody","example":{"value":"12.345678","currency":"usd"},"x-stainless-model":"apps.gas_spend_response_body"},"TransactionScanningMetadata":{"type":"object","properties":{"domain":{"type":"string"}},"required":["domain"],"description":"Additional information for Blockaid to validate against.","title":"TransactionScanningMetadata","x-stainless-model":"transactions.transaction_scanning_metadata"},"TransactionScanningRpcRequest":{"type":"object","properties":{"method":{"type":"string"},"params":{"type":"array","items":{"x-stainless-any":true}}},"required":["method","params"],"description":"Raw RPC request to execute with the wallet.","title":"TransactionScanningRpcRequest","x-stainless-model":"transactions.transaction_scanning_rpc_request"},"TransactionScanningRequestBody":{"type":"object","properties":{"chain_id":{"type":"string"},"metadata":{"$ref":"#/components/schemas/TransactionScanningMetadata"},"request":{"$ref":"#/components/schemas/TransactionScanningRpcRequest"}},"required":["chain_id","metadata","request"],"description":"The request body for scanning a transaction.","title":"TransactionScanningRequestBody","x-stainless-model":"transactions.transaction_scanning_request_body"},"TransactionScanningValidationErrorResult":{"type":"object","properties":{"status":{"type":"string","enum":["Error"]},"error":{"type":"string"}},"required":["status","error"],"description":"A failed validation result from a transaction scan.","title":"TransactionScanningValidationErrorResult","x-stainless-model":"transactions.transaction_scanning_validation_error_result"},"TransactionScanningValidationSuccessResult":{"type":"object","properties":{"status":{"type":"string","enum":["Success"]},"result_type":{"type":"string"}},"required":["status","result_type"],"description":"A successful validation result from a transaction scan.","title":"TransactionScanningValidationSuccessResult","x-stainless-model":"transactions.transaction_scanning_validation_success_result"},"TransactionScanningValidationResult":{"oneOf":[{"$ref":"#/components/schemas/TransactionScanningValidationErrorResult"},{"$ref":"#/components/schemas/TransactionScanningValidationSuccessResult"}],"discriminator":{"propertyName":"status","mapping":{"Error":"#/components/schemas/TransactionScanningValidationErrorResult","Success":"#/components/schemas/TransactionScanningValidationSuccessResult"}},"description":"The validation result from a transaction scan.","title":"TransactionScanningValidationResult","x-stainless-model":"transactions.transaction_scanning_validation_result"},"TransactionScanningAssetInfo":{"type":"object","properties":{"type":{"type":"string"},"symbol":{"type":"string"},"logo_url":{"type":"string"},"name":{"type":"string"},"decimals":{"type":"number"}},"description":"Information about the moving asset in a transaction scan.","title":"TransactionScanningAssetInfo","x-stainless-model":"transactions.transaction_scanning_asset_info"},"TransactionScanningAssetValue":{"type":"object","properties":{"value":{"type":"string"},"usd_price":{"type":"string"}},"description":"The value of an asset in a transaction scan result.","title":"TransactionScanningAssetValue","x-stainless-model":"transactions.transaction_scanning_asset_value"},"TransactionScanningAssetDiff":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/TransactionScanningAssetInfo"},"in":{"type":"array","items":{"$ref":"#/components/schemas/TransactionScanningAssetValue"}},"out":{"type":"array","items":{"$ref":"#/components/schemas/TransactionScanningAssetValue"}}},"required":["asset","in","out"],"description":"An asset diff representing assets entering/leaving a wallet.","title":"TransactionScanningAssetDiff","x-stainless-model":"transactions.transaction_scanning_asset_diff"},"TransactionScanningExposure":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/TransactionScanningAssetInfo"},"spenders":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/TransactionScanningAssetValue"}}},"required":["asset","spenders"],"description":"An exposure representing assets approved to spend.","title":"TransactionScanningExposure","x-stainless-model":"transactions.transaction_scanning_exposure"},"TransactionScanningCalldata":{"type":"object","properties":{"function_selector":{"type":"string"},"function_signature":{"type":"string"},"function_declaration":{"type":"string"}},"required":["function_selector"],"description":"Decoded calldata from a scanned transaction.","title":"TransactionScanningCalldata","x-stainless-model":"transactions.transaction_scanning_calldata"},"TransactionScanningParams":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"value":{"type":"string"},"data":{"type":"string"},"gas":{"type":"string"},"gas_price":{"type":"string"},"block_tag":{"type":"string"},"chain":{"type":"string"},"calldata":{"$ref":"#/components/schemas/TransactionScanningCalldata"}},"description":"The parameters of the scanned transaction.","title":"TransactionScanningParams","x-stainless-model":"transactions.transaction_scanning_params"},"TransactionScanningSimulationErrorResult":{"type":"object","properties":{"status":{"type":"string","enum":["Error"]},"error":{"type":"string"}},"required":["status","error"],"description":"A failed simulation result from a transaction scan.","title":"TransactionScanningSimulationErrorResult","x-stainless-model":"transactions.transaction_scanning_simulation_error_result"},"TransactionScanningSimulationSuccessResult":{"type":"object","properties":{"status":{"type":"string","enum":["Success"]},"params":{"$ref":"#/components/schemas/TransactionScanningParams"},"assets_diffs":{"type":"array","items":{"$ref":"#/components/schemas/TransactionScanningAssetDiff"}},"exposures":{"type":"array","items":{"$ref":"#/components/schemas/TransactionScanningExposure"}}},"required":["status","assets_diffs","exposures"],"description":"A successful simulation result from a transaction scan.","title":"TransactionScanningSimulationSuccessResult","x-stainless-model":"transactions.transaction_scanning_simulation_success_result"},"TransactionScanningSimulationResult":{"oneOf":[{"$ref":"#/components/schemas/TransactionScanningSimulationErrorResult"},{"$ref":"#/components/schemas/TransactionScanningSimulationSuccessResult"}],"discriminator":{"propertyName":"status","mapping":{"Error":"#/components/schemas/TransactionScanningSimulationErrorResult","Success":"#/components/schemas/TransactionScanningSimulationSuccessResult"}},"description":"The simulation result from a transaction scan.","title":"TransactionScanningSimulationResult","x-stainless-model":"transactions.transaction_scanning_simulation_result"},"TransactionScanningResponseBody":{"type":"object","properties":{"validation":{"$ref":"#/components/schemas/TransactionScanningValidationResult"},"simulation":{"$ref":"#/components/schemas/TransactionScanningSimulationResult"}},"required":["validation","simulation"],"description":"The response from scanning a transaction.","title":"TransactionScanningResponseBody","x-stainless-model":"transactions.transaction_scanning_response_body"},"AnalyticsEventInput":{"type":"object","properties":{"event_name":{"type":"string","maxLength":64,"pattern":"^[a-z0-9_-]+$"},"client_id":{"type":["string","null"],"format":"uuid"},"payload":{"type":"object","additionalProperties":{"x-stainless-any":true}}},"required":["event_name"],"description":"The input for capturing an analytics event.","title":"AnalyticsEventInput","x-stainless-model":"analytics.analytics_event_input"},"OrganizationSecretView":{"type":"object","properties":{"id":{"type":"string","description":"Unique secret identifier"},"last_four":{"type":"string","description":"Last four characters of the secret"},"created_at":{"type":"string","description":"ISO 8601 creation timestamp"},"revoked_at":{"type":["string","null"],"description":"ISO 8601 revocation timestamp, or null if active"},"signing_public_key":{"type":["string","null"],"description":"P-256 public key in PEM format for request signing, or null if not configured"}},"required":["id","last_four","created_at","revoked_at","signing_public_key"],"description":"View of an organization secret for list and management endpoints.","title":"OrganizationSecretView","x-stainless-model":"organizations.organization_secret_view"},"CreateOrganizationSecretResponse":{"allOf":[{"$ref":"#/components/schemas/OrganizationSecretView"},{"type":"object","properties":{"organization_secret":{"type":"string","description":"The plaintext organization secret. Returned only at creation time."}},"required":["organization_secret"]}],"description":"Response returned when creating a new organization secret.","title":"CreateOrganizationSecretResponse","x-stainless-model":"organizations.create_organization_secret_response"},"OrganizationSecretsListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSecretView"}}},"required":["data"],"description":"Response returned when listing organization secrets for an account.","title":"OrganizationSecretsListResponse","x-stainless-model":"organizations.organization_secrets_list_response"},"OrganizationSecretIdInput":{"type":"object","properties":{"secret_id":{"type":"string","minLength":1,"description":"The organization secret ID."}},"required":["secret_id"],"additionalProperties":false,"description":"Request body for targeting a specific organization secret.","title":"OrganizationSecretIdInput","x-stainless-model":"organizations.organization_secret_id_input"},"UpdateOrganizationSecretSigningKeyInput":{"allOf":[{"$ref":"#/components/schemas/OrganizationSecretIdInput"},{"type":"object","properties":{"signing_public_key":{"type":["string","null"],"description":"P-256 public key in PEM format, or null to clear the configured signing key."}},"required":["signing_public_key"],"additionalProperties":false}],"description":"Request body for updating the signing public key on an organization secret.","title":"UpdateOrganizationSecretSigningKeyInput","x-stainless-model":"organizations.update_organization_secret_signing_key_input"},"ConditionSetRequestParams":{"type":"object","properties":{"condition_set_id":{"type":"string","minLength":24,"maxLength":24}},"required":["condition_set_id"],"description":"Unique ID of the condition set to take actions on.","title":"ConditionSetRequestParams","x-stainless-model":"policies.condition_set_request_params"},"ConditionSetItemRequestParams":{"type":"object","properties":{"condition_set_id":{"type":"string","minLength":24,"maxLength":24},"condition_set_item_id":{"type":"string","minLength":24,"maxLength":24}},"required":["condition_set_id","condition_set_item_id"],"description":"Unique IDs of the condition set and the condition set item within the condition set to take actions on.","title":"ConditionSetItemRequestParams","x-stainless-model":"policies.condition_set_item_request_params"},"ConditionSetRequestBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Name to assign to condition set."},"owner":{"allOf":[{"$ref":"#/components/schemas/OwnerInput"},{"description":"Owner of the condition set. Exactly one of `owner` or `owner_id` is required; cannot be used together with `owner_id`."}]},"owner_id":{"allOf":[{"$ref":"#/components/schemas/OwnerIdInput"},{"description":"Key quorum ID to set as the owner of the condition set. Exactly one of `owner` or `owner_id` is required; cannot be used together with `owner`."}]}},"required":["name"],"additionalProperties":false,"description":"Request body for creating a condition set. Optionally provide `owner` or `owner_id` (but not both) to specify ownership.","title":"ConditionSetRequestBody","x-stainless-model":"policies.condition_set_request_body"},"ConditionSet":{"type":"object","properties":{"id":{"type":"string","minLength":24,"maxLength":24,"description":"Unique ID of the created condition set. This will be the primary identifier when using the condition set in the future."},"name":{"type":"string","minLength":1,"maxLength":100,"description":"Name of the condition set."},"owner_id":{"description":"The key quorum ID of the owner of the condition set, or null if unowned.","anyOf":[{"$ref":"#/components/schemas/KeyQuorumId"},{"type":"null"}]},"created_at":{"type":"number","description":"Unix timestamp of when the condition set was created in milliseconds."}},"required":["id","name","owner_id","created_at"],"description":"A condition set for grouping related condition values.","title":"ConditionSet","example":{"id":"qvah5m2hmp9abqlxdmfiht95","name":"Approved Recipients","owner_id":"asgkan0r7gi0wdbvf9cw8qio","created_at":1761271537642},"x-stainless-model":"policies.condition_set"},"UpdateConditionSetRequestBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Name to assign to condition set."},"owner":{"allOf":[{"$ref":"#/components/schemas/OwnerInput"},{"description":"New owner of the condition set. Cannot be used together with `owner_id`. Set to `null` to clear the existing owner."}]},"owner_id":{"allOf":[{"$ref":"#/components/schemas/OwnerIdInput"},{"description":"New key quorum ID to set as the owner of the condition set. Cannot be used together with `owner`. Set to `null` to clear the existing owner."}]}},"additionalProperties":false,"description":"Request body for updating a condition set. At least one field must be provided. `owner` and `owner_id` are mutually exclusive.","title":"UpdateConditionSetRequestBody","x-stainless-model":"policies.update_condition_set_request_body"},"ConditionSetItemValueInput":{"type":"object","properties":{"value":{"type":"string","minLength":1}},"required":["value"],"additionalProperties":false,"description":"A single value to add to a condition set.","title":"ConditionSetItemValueInput","x-stainless-model":"policies.condition_set_item_value_input"},"ConditionSetItemsRequestBody":{"type":"array","items":{"$ref":"#/components/schemas/ConditionSetItemValueInput"},"minItems":1,"maxItems":100,"description":"Array of values to add to the condition set. Maximum 100 items per request.","title":"ConditionSetItemsRequestBody","x-stainless-model":"policies.condition_set_items_request_body"},"ConditionSetItem":{"type":"object","properties":{"id":{"type":"string","minLength":24,"maxLength":24,"description":"Unique ID of the created condition set item."},"condition_set_id":{"type":"string","minLength":24,"maxLength":24,"description":"Unique ID of the condition set this item belongs to."},"value":{"type":"string","description":"The value stored in this condition set item."},"created_at":{"type":"number","description":"Unix timestamp of when the condition set item was created in milliseconds."}},"required":["id","condition_set_id","value","created_at"],"description":"A single item in a condition set.","title":"ConditionSetItem","example":{"id":"abc123xyz456def789ghi012","condition_set_id":"qvah5m2hmp9abqlxdmfiht95","value":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb","created_at":1761271537642},"x-stainless-model":"policies.condition_set_item"},"ConditionSetItems":{"type":"array","items":{"$ref":"#/components/schemas/ConditionSetItem"},"description":"Array of condition set items.","title":"ConditionSetItems","x-stainless-model":"policies.condition_set_items"},"ConditionSetItemsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ConditionSetItem"},"description":"List of condition set items."},"next_cursor":{"type":["string","null"],"description":"Cursor for pagination. Null if there are no more items."}},"required":["items","next_cursor"],"description":"Paginated list of condition set items.","title":"ConditionSetItemsResponse","x-stainless-model":"policies.condition_set_items_response"},"RecoveryType":{"type":"string","enum":["user_passcode_derived_recovery_key","privy_passcode_derived_recovery_key","privy_generated_recovery_key","google_drive_recovery_secret","icloud_recovery_secret"],"description":"The type of recovery mechanism used for wallet recovery.","title":"RecoveryType","x-stainless-model":"embedded_wallets.recovery_type"},"ICloudClientType":{"type":"string","enum":["web","expo-ios"],"description":"The client type for iCloud recovery operations.","title":"ICloudClientType","x-stainless-model":"embedded_wallets.icloud_client_type"},"RecoveryKeyMaterialInput":{"type":"object","properties":{"chain_type":{"type":"string"}},"description":"The input for getting the recovery key material.","title":"RecoveryKeyMaterialInput","x-stainless-model":"embedded_wallets.recovery_key_material_input"},"RecoveryKeyMaterialResponse":{"type":"object","properties":{"recovery_type":{"$ref":"#/components/schemas/RecoveryType"},"recovery_key_derivation_salt":{"type":"string"},"recovery_code":{"type":"string"},"recovery_key":{"type":"string"},"file_id":{"type":"string"},"icloud_record_name":{"type":"string"}},"required":["recovery_type","recovery_key_derivation_salt","recovery_code","recovery_key","file_id","icloud_record_name"],"description":"The response containing the recovery key material.","title":"RecoveryKeyMaterialResponse","x-stainless-model":"embedded_wallets.recovery_key_material_response"},"OAuthInitRecoveryInput":{"type":"object","properties":{"redirect_to":{"type":"string"},"token":{"type":"string"},"state_code":{"type":"string"},"code_challenge":{"type":"string"}},"required":["redirect_to"],"description":"The input for initiating an OAuth recovery flow.","title":"OAuthInitRecoveryInput","x-stainless-model":"embedded_wallets.oauth_init_recovery_input"},"OAuthAuthenticateRecoveryResponse":{"type":"object","properties":{"access_token":{"type":"string"}},"required":["access_token"],"description":"The response from authenticating with OAuth for recovery.","title":"OAuthAuthenticateRecoveryResponse","x-stainless-model":"embedded_wallets.oauth_authenticate_recovery_response"},"OAuthInitICloudRecoveryInput":{"type":"object","properties":{"client_type":{"$ref":"#/components/schemas/ICloudClientType"}},"required":["client_type"],"description":"The input for initiating an iCloud OAuth recovery flow.","title":"OAuthInitICloudRecoveryInput","x-stainless-model":"embedded_wallets.oauth_init_icloud_recovery_input"},"OAuthCallbackICloudExpoInput":{"type":"object","properties":{"ckWebAuthToken":{"type":"string"}},"required":["ckWebAuthToken"],"description":"The input for the iCloud Expo OAuth callback.","title":"OAuthCallbackICloudExpoInput","x-stainless-model":"embedded_wallets.oauth_callback_icloud_expo_input"},"RecoveryConfigurationICloudInput":{"type":"object","properties":{"client_type":{"$ref":"#/components/schemas/ICloudClientType"}},"required":["client_type"],"description":"The input for getting the iCloud recovery configuration.","title":"RecoveryConfigurationICloudInput","x-stainless-model":"embedded_wallets.recovery_configuration_icloud_input"},"RecoveryConfigurationICloudResponse":{"type":"object","properties":{"api_token":{"type":"string"},"container_identifier":{"type":"string"},"environment":{"type":"string"}},"required":["api_token","container_identifier","environment"],"description":"The response containing the iCloud recovery configuration.","title":"RecoveryConfigurationICloudResponse","x-stainless-model":"embedded_wallets.recovery_configuration_icloud_response"},"WalletEthereumAsset":{"type":"string","enum":["usdc","usdc.e","eth","avax","pol","usdt","eurc","usdb"],"description":"A named asset on Ethereum-compatible chains.","title":"WalletEthereumAsset","x-stainless-model":"wallets.wallet_ethereum_asset"},"WalletSolanaAsset":{"type":"string","enum":["sol","usdc","eurc","usdb"],"description":"A named asset on Solana.","title":"WalletSolanaAsset","x-stainless-model":"wallets.wallet_solana_asset"},"WalletAsset":{"anyOf":[{"$ref":"#/components/schemas/WalletEthereumAsset"},{"$ref":"#/components/schemas/WalletSolanaAsset"}],"description":"A named asset supported across all chains.","title":"WalletAsset","x-stainless-model":"wallets.wallet_asset"},"TransactionTokenAddressInput":{"type":"string","description":"Token contract address (EVM: 0x-prefixed hex) or mint address (Solana: base58), used to filter wallet transactions.","title":"TransactionTokenAddressInput","x-stainless-model":"wallets.transaction_token_address_input"},"TransferSentTransactionDetail":{"type":"object","properties":{"type":{"type":"string","enum":["transfer_sent"]},"sender":{"type":"string"},"sender_privy_user_id":{"type":["string","null"]},"recipient":{"type":"string"},"recipient_privy_user_id":{"type":["string","null"]},"chain":{"type":"string","enum":["ethereum","arbitrum","avalanche","base","tempo","linea","optimism","polygon","solana","zksync_era","sepolia","arbitrum_sepolia","avalanche_fuji","base_sepolia","linea_testnet","optimism_sepolia","polygon_amoy","solana_devnet","solana_testnet"]},"asset":{"anyOf":[{"$ref":"#/components/schemas/WalletEthereumAsset"},{"$ref":"#/components/schemas/WalletSolanaAsset"},{"type":"string"}]},"raw_value":{"type":"string"},"raw_value_decimals":{"type":"number"},"display_values":{"type":"object","additionalProperties":{"type":"string"}}},"required":["type","sender","sender_privy_user_id","recipient","recipient_privy_user_id","chain","asset","raw_value","raw_value_decimals","display_values"],"description":"Details for a sent transfer transaction.","title":"TransferSentTransactionDetail","x-stainless-model":"wallets.transfer_sent_transaction_detail"},"TransferReceivedTransactionDetail":{"type":"object","properties":{"type":{"type":"string","enum":["transfer_received"]},"sender":{"type":"string"},"sender_privy_user_id":{"type":["string","null"]},"recipient":{"type":"string"},"recipient_privy_user_id":{"type":["string","null"]},"chain":{"type":"string","enum":["ethereum","arbitrum","avalanche","base","tempo","linea","optimism","polygon","solana","zksync_era","sepolia","arbitrum_sepolia","avalanche_fuji","base_sepolia","linea_testnet","optimism_sepolia","polygon_amoy","solana_devnet","solana_testnet"]},"asset":{"anyOf":[{"$ref":"#/components/schemas/WalletEthereumAsset"},{"$ref":"#/components/schemas/WalletSolanaAsset"},{"type":"string"}]},"raw_value":{"type":"string"},"raw_value_decimals":{"type":"number"},"display_values":{"type":"object","additionalProperties":{"type":"string"}}},"required":["type","sender","sender_privy_user_id","recipient","recipient_privy_user_id","chain","asset","raw_value","raw_value_decimals","display_values"],"description":"Details for a received transfer transaction.","title":"TransferReceivedTransactionDetail","x-stainless-model":"wallets.transfer_received_transaction_detail"},"TransactionDetail":{"oneOf":[{"$ref":"#/components/schemas/TransferSentTransactionDetail"},{"$ref":"#/components/schemas/TransferReceivedTransactionDetail"}],"discriminator":{"propertyName":"type","mapping":{"transfer_sent":"#/components/schemas/TransferSentTransactionDetail","transfer_received":"#/components/schemas/TransferReceivedTransactionDetail"}},"description":"Details of a wallet transaction, varying by transaction type.","title":"TransactionDetail","x-stainless-model":"wallets.transaction_detail"},"LinkedAccountEmail":{"type":"object","properties":{"type":{"type":"string","enum":["email"]},"address":{"type":"string"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","address","verified_at","first_verified_at","latest_verified_at"],"description":"An email account linked to the user.","title":"LinkedAccountEmail","x-stainless-model":"users.linked_account_email"},"LinkedAccountPhone":{"type":"object","properties":{"type":{"type":"string","enum":["phone"]},"number":{"type":"string"},"phoneNumber":{"type":"string"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","phoneNumber","verified_at","first_verified_at","latest_verified_at"],"description":"A phone number account linked to the user.","title":"LinkedAccountPhone","x-stainless-model":"users.linked_account_phone"},"LinkedAccountBaseWallet":{"type":"object","properties":{"type":{"type":"string","enum":["wallet","smart_wallet"]},"address":{"type":"string"},"chain_type":{"type":"string","enum":["solana","ethereum"]}},"required":["type","address","chain_type"],"description":"Base schema for wallet accounts linked to the user.","title":"LinkedAccountBaseWallet","x-stainless-model":"users.linked_account_base_wallet"},"LinkedAccountEthereum":{"type":"object","properties":{"type":{"type":"string","enum":["wallet"]},"address":{"type":"string"},"chain_id":{"type":"string"},"chain_type":{"type":"string","enum":["ethereum"]},"wallet_client":{"type":"string","enum":["unknown"]},"wallet_client_type":{"type":"string"},"connector_type":{"type":"string"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","address","chain_type","wallet_client","verified_at","first_verified_at","latest_verified_at"],"description":"An Ethereum wallet account linked to the user.","title":"LinkedAccountEthereum","x-stainless-model":"users.linked_account_ethereum"},"LinkedAccountSmartWallet":{"type":"object","properties":{"type":{"type":"string","enum":["smart_wallet"]},"address":{"type":"string"},"smart_wallet_type":{"$ref":"#/components/schemas/SmartWalletType"},"smart_wallet_version":{"type":"string"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","address","smart_wallet_type","verified_at","first_verified_at","latest_verified_at"],"description":"A smart wallet account linked to the user.","title":"LinkedAccountSmartWallet","x-stainless-model":"users.linked_account_smart_wallet"},"LinkedAccountSolana":{"type":"object","properties":{"type":{"type":"string","enum":["wallet"]},"address":{"type":"string"},"chain_type":{"type":"string","enum":["solana"]},"wallet_client":{"type":"string","enum":["unknown"]},"wallet_client_type":{"type":"string"},"connector_type":{"type":"string"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","address","chain_type","wallet_client","verified_at","first_verified_at","latest_verified_at"],"description":"A Solana wallet account linked to the user.","title":"LinkedAccountSolana","x-stainless-model":"users.linked_account_solana"},"LinkedAccountFarcaster":{"type":"object","properties":{"type":{"type":"string","enum":["farcaster"]},"fid":{"type":"number"},"owner_address":{"type":"string"},"username":{"type":"string"},"display_name":{"type":"string"},"bio":{"type":"string"},"profile_picture":{"type":"string"},"profile_picture_url":{"type":"string"},"homepage_url":{"type":"string"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]},"signer_public_key":{"type":"string"}},"required":["type","fid","owner_address","verified_at","first_verified_at","latest_verified_at"],"description":"A Farcaster account linked to the user.","title":"LinkedAccountFarcaster","x-stainless-model":"users.linked_account_farcaster"},"LinkedAccountPasskey":{"type":"object","properties":{"type":{"type":"string","enum":["passkey"]},"created_with_browser":{"type":"string"},"created_with_os":{"type":"string"},"created_with_device":{"type":"string"},"credential_id":{"type":"string"},"authenticator_name":{"type":"string"},"public_key":{"type":"string"},"enrolled_in_mfa":{"type":"boolean"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","credential_id","enrolled_in_mfa","verified_at","first_verified_at","latest_verified_at"],"description":"A passkey account linked to the user.","title":"LinkedAccountPasskey","x-stainless-model":"users.linked_account_passkey"},"LinkedAccountTelegram":{"type":"object","properties":{"type":{"type":"string","enum":["telegram"]},"telegram_user_id":{"type":"string"},"first_name":{"type":["string","null"]},"last_name":{"type":["string","null"]},"username":{"type":["string","null"]},"photo_url":{"type":["string","null"]},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","telegram_user_id","verified_at","first_verified_at","latest_verified_at"],"description":"A Telegram account linked to the user.","title":"LinkedAccountTelegram","x-stainless-model":"users.linked_account_telegram"},"EmbeddedWalletRecoveryMethod":{"type":"string","enum":["privy","user-passcode","google-drive","icloud","recovery-encryption-key","privy-v2"],"description":"The method used to recover an embedded wallet account.","title":"EmbeddedWalletRecoveryMethod","x-stainless-model":"users.embedded_wallet_recovery_method"},"LinkedAccountEthereumEmbeddedWallet":{"type":"object","properties":{"id":{"type":["string","null"]},"type":{"type":"string","enum":["wallet"]},"address":{"type":"string"},"imported":{"type":"boolean"},"delegated":{"type":"boolean"},"wallet_index":{"type":"number"},"chain_id":{"type":"string"},"chain_type":{"type":"string","enum":["ethereum"]},"wallet_client":{"type":"string","enum":["privy"]},"wallet_client_type":{"type":"string","enum":["privy"]},"connector_type":{"type":"string","enum":["embedded"]},"recovery_method":{"$ref":"#/components/schemas/EmbeddedWalletRecoveryMethod"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["id","type","address","imported","delegated","wallet_index","chain_id","chain_type","wallet_client","wallet_client_type","connector_type","recovery_method","verified_at","first_verified_at","latest_verified_at"],"description":"An Ethereum embedded wallet account linked to the user.","title":"LinkedAccountEthereumEmbeddedWallet","x-stainless-model":"users.linked_account_ethereum_embedded_wallet"},"LinkedAccountSolanaEmbeddedWallet":{"type":"object","properties":{"id":{"type":["string","null"]},"type":{"type":"string","enum":["wallet"]},"address":{"type":"string"},"imported":{"type":"boolean"},"delegated":{"type":"boolean"},"wallet_index":{"type":"number"},"chain_id":{"type":"string"},"chain_type":{"type":"string","enum":["solana"]},"wallet_client":{"type":"string","enum":["privy"]},"wallet_client_type":{"type":"string","enum":["privy"]},"connector_type":{"type":"string","enum":["embedded"]},"recovery_method":{"$ref":"#/components/schemas/EmbeddedWalletRecoveryMethod"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]},"public_key":{"type":"string"}},"required":["id","type","address","imported","delegated","wallet_index","chain_id","chain_type","wallet_client","wallet_client_type","connector_type","recovery_method","verified_at","first_verified_at","latest_verified_at","public_key"],"description":"A Solana embedded wallet account linked to the user.","title":"LinkedAccountSolanaEmbeddedWallet","x-stainless-model":"users.linked_account_solana_embedded_wallet"},"LinkedAccountBitcoinSegwitEmbeddedWallet":{"type":"object","properties":{"id":{"type":["string","null"]},"type":{"type":"string","enum":["wallet"]},"address":{"type":"string"},"imported":{"type":"boolean"},"delegated":{"type":"boolean"},"wallet_index":{"type":"number"},"chain_id":{"type":"string"},"chain_type":{"type":"string","enum":["bitcoin-segwit"]},"wallet_client":{"type":"string","enum":["privy"]},"wallet_client_type":{"type":"string","enum":["privy"]},"connector_type":{"type":"string","enum":["embedded"]},"recovery_method":{"$ref":"#/components/schemas/EmbeddedWalletRecoveryMethod"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]},"public_key":{"type":"string"}},"required":["id","type","address","imported","delegated","wallet_index","chain_id","chain_type","wallet_client","wallet_client_type","connector_type","recovery_method","verified_at","first_verified_at","latest_verified_at","public_key"],"description":"A Bitcoin SegWit embedded wallet account linked to the user.","title":"LinkedAccountBitcoinSegwitEmbeddedWallet","x-stainless-model":"users.linked_account_bitcoin_segwit_embedded_wallet"},"LinkedAccountBitcoinTaprootEmbeddedWallet":{"type":"object","properties":{"id":{"type":["string","null"]},"type":{"type":"string","enum":["wallet"]},"address":{"type":"string"},"imported":{"type":"boolean"},"delegated":{"type":"boolean"},"wallet_index":{"type":"number"},"chain_id":{"type":"string"},"chain_type":{"type":"string","enum":["bitcoin-taproot"]},"wallet_client":{"type":"string","enum":["privy"]},"wallet_client_type":{"type":"string","enum":["privy"]},"connector_type":{"type":"string","enum":["embedded"]},"recovery_method":{"$ref":"#/components/schemas/EmbeddedWalletRecoveryMethod"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]},"public_key":{"type":"string"}},"required":["id","type","address","imported","delegated","wallet_index","chain_id","chain_type","wallet_client","wallet_client_type","connector_type","recovery_method","verified_at","first_verified_at","latest_verified_at","public_key"],"description":"A Bitcoin Taproot embedded wallet account linked to the user.","title":"LinkedAccountBitcoinTaprootEmbeddedWallet","x-stainless-model":"users.linked_account_bitcoin_taproot_embedded_wallet"},"LinkedAccountCurveSigningEmbeddedWallet":{"type":"object","properties":{"id":{"type":["string","null"]},"type":{"type":"string","enum":["wallet"]},"address":{"type":"string"},"imported":{"type":"boolean"},"delegated":{"type":"boolean"},"wallet_index":{"type":"number"},"chain_id":{"type":"string"},"chain_type":{"$ref":"#/components/schemas/CurveSigningChainType"},"wallet_client":{"type":"string","enum":["privy"]},"wallet_client_type":{"type":"string","enum":["privy"]},"connector_type":{"type":"string","enum":["embedded"]},"recovery_method":{"$ref":"#/components/schemas/EmbeddedWalletRecoveryMethod"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]},"public_key":{"type":"string"}},"required":["id","type","address","imported","delegated","wallet_index","chain_id","chain_type","wallet_client","wallet_client_type","connector_type","recovery_method","verified_at","first_verified_at","latest_verified_at","public_key"],"description":"A curve signing embedded wallet account linked to the user.","title":"LinkedAccountCurveSigningEmbeddedWallet","x-stainless-model":"users.linked_account_curve_signing_embedded_wallet"},"LinkedAccountEmbeddedWallet":{"anyOf":[{"$ref":"#/components/schemas/LinkedAccountEthereumEmbeddedWallet"},{"$ref":"#/components/schemas/LinkedAccountSolanaEmbeddedWallet"},{"$ref":"#/components/schemas/LinkedAccountBitcoinSegwitEmbeddedWallet"},{"$ref":"#/components/schemas/LinkedAccountBitcoinTaprootEmbeddedWallet"},{"$ref":"#/components/schemas/LinkedAccountCurveSigningEmbeddedWallet"}],"description":"A linked embedded wallet account across all supported chain types.","title":"LinkedAccountEmbeddedWallet","x-stainless-model":"users.linked_account_embedded_wallet"},"LinkedAccountEmbeddedWalletWithId":{"allOf":[{"$ref":"#/components/schemas/LinkedAccountEmbeddedWallet"},{"type":"object","properties":{"id":{"type":"string"},"recovery_method":{"type":"string","enum":["privy-v2"]}},"required":["id","recovery_method"]}],"description":"An embedded wallet account with an ID.","title":"LinkedAccountEmbeddedWalletWithId","x-stainless-model":"users.linked_account_embedded_wallet_with_id"},"LinkedAccountGoogleOauth":{"type":"object","properties":{"type":{"type":"string","enum":["google_oauth"]},"subject":{"type":"string"},"email":{"type":"string"},"name":{"type":["string","null"]},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","email","name","verified_at","first_verified_at","latest_verified_at"],"description":"A Google OAuth account linked to the user.","title":"LinkedAccountGoogleOauth","x-stainless-model":"users.linked_account_google_oauth"},"LinkedAccountTwitterOauth":{"type":"object","properties":{"type":{"type":"string","enum":["twitter_oauth"]},"subject":{"type":"string"},"username":{"type":["string","null"]},"name":{"type":["string","null"]},"profile_picture_url":{"type":["string","null"]},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","username","name","profile_picture_url","verified_at","first_verified_at","latest_verified_at"],"description":"A Twitter OAuth account linked to the user.","title":"LinkedAccountTwitterOauth","x-stainless-model":"users.linked_account_twitter_oauth"},"LinkedAccountDiscordOauth":{"type":"object","properties":{"type":{"type":"string","enum":["discord_oauth"]},"subject":{"type":"string"},"username":{"type":["string","null"]},"email":{"type":["string","null"]},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","username","email","verified_at","first_verified_at","latest_verified_at"],"description":"A Discord OAuth account linked to the user.","title":"LinkedAccountDiscordOauth","x-stainless-model":"users.linked_account_discord_oauth"},"LinkedAccountGithubOauth":{"type":"object","properties":{"type":{"type":"string","enum":["github_oauth"]},"subject":{"type":"string"},"username":{"type":["string","null"]},"name":{"type":["string","null"]},"email":{"type":["string","null"]},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","username","name","email","verified_at","first_verified_at","latest_verified_at"],"description":"A GitHub OAuth account linked to the user.","title":"LinkedAccountGithubOauth","x-stainless-model":"users.linked_account_github_oauth"},"LinkedAccountLinkedInOauth":{"type":"object","properties":{"type":{"type":"string","enum":["linkedin_oauth"]},"subject":{"type":"string"},"name":{"type":"string"},"email":{"type":["string","null"]},"vanity_name":{"type":"string"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","email","verified_at","first_verified_at","latest_verified_at"],"description":"A LinkedIn OAuth account linked to the user.","title":"LinkedAccountLinkedInOauth","x-stainless-model":"users.linked_account_linked_in_oauth"},"LinkedAccountSpotifyOauth":{"type":"object","properties":{"type":{"type":"string","enum":["spotify_oauth"]},"subject":{"type":"string"},"email":{"type":["string","null"]},"name":{"type":["string","null"]},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","email","name","verified_at","first_verified_at","latest_verified_at"],"description":"A Spotify OAuth account linked to the user.","title":"LinkedAccountSpotifyOauth","x-stainless-model":"users.linked_account_spotify_oauth"},"LinkedAccountInstagramOauth":{"type":"object","properties":{"type":{"type":"string","enum":["instagram_oauth"]},"subject":{"type":"string"},"username":{"type":["string","null"]},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","username","verified_at","first_verified_at","latest_verified_at"],"description":"An Instagram OAuth account linked to the user.","title":"LinkedAccountInstagramOauth","x-stainless-model":"users.linked_account_instagram_oauth"},"LinkedAccountTiktokOauth":{"type":"object","properties":{"type":{"type":"string","enum":["tiktok_oauth"]},"subject":{"type":"string"},"username":{"type":["string","null"]},"name":{"type":["string","null"]},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","username","name","verified_at","first_verified_at","latest_verified_at"],"description":"A TikTok OAuth account linked to the user.","title":"LinkedAccountTiktokOauth","x-stainless-model":"users.linked_account_tiktok_oauth"},"LinkedAccountLineOauth":{"type":"object","properties":{"type":{"type":"string","enum":["line_oauth"]},"subject":{"type":"string"},"name":{"type":["string","null"]},"email":{"type":["string","null"]},"profile_picture_url":{"type":["string","null"]},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","name","email","profile_picture_url","verified_at","first_verified_at","latest_verified_at"],"description":"A LINE OAuth account linked to the user.","title":"LinkedAccountLineOauth","x-stainless-model":"users.linked_account_line_oauth"},"LinkedAccountTwitchOauth":{"type":"object","properties":{"type":{"type":"string","enum":["twitch_oauth"]},"subject":{"type":"string"},"username":{"type":["string","null"]},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","username","verified_at","first_verified_at","latest_verified_at"],"description":"A Twitch OAuth account linked to the user.","title":"LinkedAccountTwitchOauth","x-stainless-model":"users.linked_account_twitch_oauth"},"LinkedAccountAppleOauth":{"type":"object","properties":{"type":{"type":"string","enum":["apple_oauth"]},"subject":{"type":"string"},"email":{"type":["string","null"]},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","email","verified_at","first_verified_at","latest_verified_at"],"description":"An Apple OAuth account linked to the user.","title":"LinkedAccountAppleOauth","x-stainless-model":"users.linked_account_apple_oauth"},"LinkedAccountCustomOauth":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/CustomOAuthProviderID"},"subject":{"type":"string"},"name":{"type":"string"},"username":{"type":"string"},"email":{"type":"string"},"profile_picture_url":{"type":"string"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","verified_at","first_verified_at","latest_verified_at"],"description":"A custom OAuth account linked to the user.","title":"LinkedAccountCustomOauth","x-stainless-model":"users.linked_account_custom_oauth"},"LinkedAccountCustomJwt":{"type":"object","properties":{"type":{"type":"string","enum":["custom_auth"]},"custom_user_id":{"type":"string"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","custom_user_id","verified_at","first_verified_at","latest_verified_at"],"description":"A custom JWT account linked to the user.","title":"LinkedAccountCustomJwt","x-stainless-model":"users.linked_account_custom_jwt"},"CrossAppEmbeddedWallet":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"],"description":"An embedded wallet associated with a cross-app account.","title":"CrossAppEmbeddedWallet","x-stainless-model":"users.cross_app_embedded_wallet"},"CrossAppSmartWallet":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"],"description":"A smart wallet associated with a cross-app account.","title":"CrossAppSmartWallet","x-stainless-model":"users.cross_app_smart_wallet"},"LinkedAccountCrossApp":{"type":"object","properties":{"type":{"type":"string","enum":["cross_app"]},"subject":{"type":"string"},"provider_app_id":{"type":"string"},"embedded_wallets":{"type":"array","items":{"$ref":"#/components/schemas/CrossAppEmbeddedWallet"}},"smart_wallets":{"type":"array","items":{"$ref":"#/components/schemas/CrossAppSmartWallet"}},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","subject","provider_app_id","embedded_wallets","smart_wallets","verified_at","first_verified_at","latest_verified_at"],"description":"A cross-app account linked to the user.","title":"LinkedAccountCrossApp","x-stainless-model":"users.linked_account_cross_app"},"LinkedAccountAuthorizationKey":{"type":"object","properties":{"type":{"type":"string","enum":["authorization_key"]},"public_key":{"type":"string"},"verified_at":{"type":"number"},"first_verified_at":{"type":["number","null"]},"latest_verified_at":{"type":["number","null"]}},"required":["type","public_key","verified_at","first_verified_at","latest_verified_at"],"description":"An authorization key linked to the user.","title":"LinkedAccountAuthorizationKey","x-stainless-model":"users.linked_account_authorization_key"},"LinkedAccount":{"anyOf":[{"$ref":"#/components/schemas/LinkedAccountEmail"},{"$ref":"#/components/schemas/LinkedAccountPhone"},{"$ref":"#/components/schemas/LinkedAccountEthereum"},{"$ref":"#/components/schemas/LinkedAccountSolana"},{"$ref":"#/components/schemas/LinkedAccountSmartWallet"},{"$ref":"#/components/schemas/LinkedAccountEthereumEmbeddedWallet"},{"$ref":"#/components/schemas/LinkedAccountSolanaEmbeddedWallet"},{"$ref":"#/components/schemas/LinkedAccountBitcoinSegwitEmbeddedWallet"},{"$ref":"#/components/schemas/LinkedAccountBitcoinTaprootEmbeddedWallet"},{"$ref":"#/components/schemas/LinkedAccountCurveSigningEmbeddedWallet"},{"$ref":"#/components/schemas/LinkedAccountGoogleOauth"},{"$ref":"#/components/schemas/LinkedAccountTwitterOauth"},{"$ref":"#/components/schemas/LinkedAccountDiscordOauth"},{"$ref":"#/components/schemas/LinkedAccountGithubOauth"},{"$ref":"#/components/schemas/LinkedAccountSpotifyOauth"},{"$ref":"#/components/schemas/LinkedAccountInstagramOauth"},{"$ref":"#/components/schemas/LinkedAccountTiktokOauth"},{"$ref":"#/components/schemas/LinkedAccountLineOauth"},{"$ref":"#/components/schemas/LinkedAccountTwitchOauth"},{"$ref":"#/components/schemas/LinkedAccountLinkedInOauth"},{"$ref":"#/components/schemas/LinkedAccountAppleOauth"},{"$ref":"#/components/schemas/LinkedAccountCustomOauth"},{"$ref":"#/components/schemas/LinkedAccountCustomJwt"},{"$ref":"#/components/schemas/LinkedAccountFarcaster"},{"$ref":"#/components/schemas/LinkedAccountPasskey"},{"$ref":"#/components/schemas/LinkedAccountTelegram"},{"$ref":"#/components/schemas/LinkedAccountCrossApp"},{"$ref":"#/components/schemas/LinkedAccountAuthorizationKey"}],"description":"A linked account for the user.","title":"LinkedAccount","x-stainless-model":"users.linked_account"},"LinkedAccountType":{"anyOf":[{"type":"string","enum":["email"]},{"type":"string","enum":["phone"]},{"type":"string","enum":["wallet"]},{"type":"string","enum":["smart_wallet"]},{"type":"string","enum":["google_oauth"]},{"type":"string","enum":["twitter_oauth"]},{"type":"string","enum":["discord_oauth"]},{"type":"string","enum":["github_oauth"]},{"type":"string","enum":["spotify_oauth"]},{"type":"string","enum":["instagram_oauth"]},{"type":"string","enum":["tiktok_oauth"]},{"type":"string","enum":["line_oauth"]},{"type":"string","enum":["twitch_oauth"]},{"type":"string","enum":["linkedin_oauth"]},{"type":"string","enum":["apple_oauth"]},{"$ref":"#/components/schemas/CustomOAuthProviderID"},{"type":"string","enum":["custom_auth"]},{"type":"string","enum":["farcaster"]},{"type":"string","enum":["passkey"]},{"type":"string","enum":["telegram"]},{"type":"string","enum":["cross_app"]},{"type":"string","enum":["authorization_key"]}],"description":"The possible types of linked accounts.","title":"LinkedAccountType","x-stainless-model":"users.linked_account_type"},"SmsMfaMethod":{"type":"object","properties":{"type":{"type":"string","enum":["sms"]},"verified_at":{"type":"number"}},"required":["type","verified_at"],"description":"A SMS MFA method.","title":"SmsMfaMethod","x-stainless-model":"users.sms_mfa_method"},"TotpMfaMethod":{"type":"object","properties":{"type":{"type":"string","enum":["totp"]},"verified_at":{"type":"number"}},"required":["type","verified_at"],"description":"A TOTP MFA method.","title":"TotpMfaMethod","x-stainless-model":"users.totp_mfa_method"},"PasskeyMfaMethod":{"type":"object","properties":{"type":{"type":"string","enum":["passkey"]},"verified_at":{"type":"number"}},"required":["type","verified_at"],"description":"A Passkey MFA method.","title":"PasskeyMfaMethod","x-stainless-model":"users.passkey_mfa_method"},"LinkedMfaMethod":{"oneOf":[{"$ref":"#/components/schemas/SmsMfaMethod"},{"$ref":"#/components/schemas/TotpMfaMethod"},{"$ref":"#/components/schemas/PasskeyMfaMethod"}],"discriminator":{"propertyName":"type","mapping":{"sms":"#/components/schemas/SmsMfaMethod","totp":"#/components/schemas/TotpMfaMethod","passkey":"#/components/schemas/PasskeyMfaMethod"}},"description":"A multi-factor authentication method linked to the user.","title":"LinkedMfaMethod","x-stainless-model":"users.linked_mfa_method"},"User":{"type":"object","properties":{"id":{"type":"string"},"linked_accounts":{"type":"array","items":{"$ref":"#/components/schemas/LinkedAccount"}},"mfa_methods":{"type":"array","items":{"$ref":"#/components/schemas/LinkedMfaMethod"}},"created_at":{"type":"number","description":"Unix timestamp of when the user was created in seconds."},"has_accepted_terms":{"type":"boolean","description":"Indicates if the user has accepted the terms of service."},"is_guest":{"type":"boolean","description":"Indicates if the user is a guest account user."},"custom_metadata":{"$ref":"#/components/schemas/CustomMetadata"}},"required":["id","linked_accounts","mfa_methods","created_at","has_accepted_terms","is_guest"],"description":"A Privy user object.","title":"User","example":{"id":"did:privy:cm3np4u9j001rc8b73seqmqqk","created_at":1731974895,"linked_accounts":[{"address":"tom.bombadill@privy.io","type":"email","first_verified_at":1674788927,"latest_verified_at":1674788927,"verified_at":1674788927},{"type":"farcaster","fid":4423,"owner_address":"0xE6bFb4137F3A8C069F98cc775f324A84FE45FdFF","username":"payton","display_name":"payton ↑","bio":"engineering at /privy. building pixelpool.xyz, the first Farcaster video client. nyc. 👨‍💻🍎🏳️‍🌈  nf.td/payton","profile_picture":"https://supercast.mypinata.cloud/ipfs/QmNexfCxdnFzWdJqKVgrjd27UGLMexNaw5FXu1XKR3cQF7?filename=IMG_2799.png","profile_picture_url":"https://supercast.mypinata.cloud/ipfs/QmNexfCxdnFzWdJqKVgrjd27UGLMexNaw5FXu1XKR3cQF7?filename=IMG_2799.png","verified_at":1740678402,"first_verified_at":1740678402,"latest_verified_at":1741194370},{"type":"passkey","credential_id":"Il5vP-3Tm3hNmDVBmDlREgXzIOJnZEaiVnT-XMliXe-BufP9GL1-d3qhozk9IkZwQ_","authenticator_name":"1Password","public_key":"pQECAyYgASFYIKdGwx5XxZ/7CJJzT8d5L6jyLNQdTH7X+rSZdPJ9Ux/QIlggRm4OcJ8F3aB5zYz3T9LxLdDfGpWvYkHgS4A8tPz9CqE=","created_with_browser":"Chrome","created_with_os":"Mac OS","created_with_device":"Macintosh","enrolled_in_mfa":true,"verified_at":1741194420,"first_verified_at":1741194420,"latest_verified_at":1741194420}],"mfa_methods":[{"type":"passkey","verified_at":1741194420}],"has_accepted_terms":true,"is_guest":false},"x-stainless-model":"users.user"},"OnrampKycStatus":{"type":"string","enum":["not_found","active","awaiting_questionnaire","awaiting_ubo","incomplete","not_started","offboarded","paused","rejected","under_review"],"description":"Status of the KYC verification process.","title":"OnrampKycStatus","x-stainless-model":"fiat.onramp_kyc_status"},"FiatCurrency":{"type":"string","enum":["usd","eur"],"description":"Supported fiat currencies.","title":"FiatCurrency","x-stainless-model":"fiat.fiat_currency"},"FiatPaymentRail":{"type":"string","enum":["sepa","ach_push","wire"],"description":"Supported fiat payment rails.","title":"FiatPaymentRail","x-stainless-model":"fiat.fiat_payment_rail"},"OnrampChain":{"type":"string","enum":["ethereum","base","arbitrum","polygon","optimism"],"description":"Supported blockchain chains for onramp and offramp.","title":"OnrampChain","x-stainless-model":"fiat.onramp_chain"},"OnrampAsset":{"type":"string","enum":["usdc"],"description":"Supported crypto assets for onramp and offramp.","title":"OnrampAsset","x-stainless-model":"fiat.onramp_asset"},"OnrampTransferStatus":{"type":"string","enum":["awaiting_funds","in_review","funds_received","payment_submitted","payment_processed","canceled","error","undeliverable","returned","refunded"],"description":"Status of an onramp or offramp transfer.","title":"OnrampTransferStatus","x-stainless-model":"fiat.onramp_transfer_status"},"OnrampDepositInstructions":{"type":"object","properties":{"amount":{"type":"string"},"currency":{"$ref":"#/components/schemas/FiatCurrency"},"payment_rail":{"$ref":"#/components/schemas/FiatPaymentRail"},"deposit_message":{"type":"string"},"bank_name":{"type":"string"},"bank_account_number":{"type":"string"},"bank_routing_number":{"type":"string"},"bank_beneficiary_name":{"type":"string"},"bank_beneficiary_address":{"type":"string"},"bank_address":{"type":"string"},"iban":{"type":"string"},"bic":{"type":"string"},"account_holder_name":{"type":"string"}},"required":["amount","currency","payment_rail"],"description":"Bank deposit instructions for an onramp transfer.","title":"OnrampDepositInstructions","x-stainless-model":"fiat.onramp_deposit_instructions"},"OfframpDepositInstructions":{"type":"object","properties":{"amount":{"type":"string"},"currency":{"$ref":"#/components/schemas/OnrampAsset"},"chain":{"$ref":"#/components/schemas/OnrampChain"},"to_address":{"type":"string"},"from_address":{"type":"string"}},"required":["amount","currency","chain","to_address","from_address"],"description":"Deposit instructions for an offramp transfer.","title":"OfframpDepositInstructions","x-stainless-model":"fiat.offramp_deposit_instructions"},"OnrampKycResponse":{"type":"object","properties":{"user_id":{"type":"string"},"provider_user_id":{"type":"string"},"status":{"$ref":"#/components/schemas/OnrampKycStatus"}},"required":["user_id","status"],"description":"Response for an onramp KYC verification.","title":"OnrampKycResponse","x-stainless-model":"fiat.onramp_kyc_response"},"OnrampResponse":{"type":"object","properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/OnrampTransferStatus"},"deposit_instructions":{"$ref":"#/components/schemas/OnrampDepositInstructions"}},"required":["id","status","deposit_instructions"],"description":"Response for an onramp transfer initiation.","title":"OnrampResponse","x-stainless-model":"fiat.onramp_response"},"OfframpResponse":{"type":"object","properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/OnrampTransferStatus"},"deposit_instructions":{"$ref":"#/components/schemas/OfframpDepositInstructions"}},"required":["id","status","deposit_instructions"],"description":"Response for an offramp transfer initiation.","title":"OfframpResponse","x-stainless-model":"fiat.offramp_response"},"OAuthTokens":{"type":"object","properties":{"provider":{"type":"string"},"access_token":{"type":"string"},"access_token_expires_in_seconds":{"type":"number"},"refresh_token":{"type":"string"},"refresh_token_expires_in_seconds":{"type":"number"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["provider","access_token"],"description":"OAuth tokens associated with the user.","title":"OAuthTokens","x-stainless-model":"users.oauth_tokens"},"UserWithIdentityToken":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/User"},"identity_token":{"type":["string","null"],"minLength":1}},"required":["user","identity_token"],"description":"The user object along their identity token.","title":"UserWithIdentityToken","x-stainless-model":"users.user_with_identity_token"},"AuthenticatedUser":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/User"},"token":{"type":["string","null"],"minLength":1},"privy_access_token":{"type":["string","null"],"minLength":1},"refresh_token":{"type":["string","null"],"minLength":1},"identity_token":{"type":"string","minLength":1},"is_new_user":{"type":"boolean"},"oauth_tokens":{"$ref":"#/components/schemas/OAuthTokens"},"session_update_action":{"type":"string","enum":["set","ignore","clear"],"description":"Instructs the client on how to handle tokens received","example":"set"}},"required":["user","token","privy_access_token","refresh_token","session_update_action"],"description":"The authenticated user.","title":"AuthenticatedUser","x-stainless-model":"users.authenticated_user"},"PatchUsersCustomMetadata":{"type":"object","properties":{"custom_metadata":{"$ref":"#/components/schemas/CustomMetadata"}},"required":["custom_metadata"],"description":"The payload for partially updating custom metadata on a user.","title":"PatchUsersCustomMetadata","x-stainless-model":"users.patch_users_custom_metadata"},"DeviceVerifyAction":{"type":"string","enum":["approve","deny"],"description":"The action to take on the device authorization request.","title":"DeviceVerifyAction","x-stainless-model":"client_auth.device_verify_action"},"DeviceVerifyRequestBody":{"type":"object","properties":{"user_code":{"type":"string","description":"The user code displayed on the CLI device."},"action":{"$ref":"#/components/schemas/DeviceVerifyAction"}},"required":["user_code","action"],"description":"Request body for approving or denying a device authorization request. The user must be authenticated and belong to the target app.","title":"DeviceVerifyRequestBody","x-stainless-model":"client_auth.device_verify_request_body"},"DeviceVerifyResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the action was processed successfully."}},"required":["success"],"description":"Response indicating the device authorization action was processed.","title":"DeviceVerifyResponse","x-stainless-model":"client_auth.device_verify_response"},"OAuthTokenGrantType":{"type":"string","enum":["authorization_code","urn:ietf:params:oauth:grant-type:device_code","refresh_token"],"description":"The OAuth grant type for the token request.","title":"OAuthTokenGrantType","x-stainless-model":"client_auth.oauth_token_grant_type"},"OAuthTokenAuthorizationCodeRequestBody":{"type":"object","properties":{"grant_type":{"type":"string","enum":["authorization_code"]},"code":{"type":"string","description":"The authorization code received from the authorization endpoint."},"redirect_uri":{"type":"string","description":"The redirect URI used in the authorization request."},"client_secret":{"type":"string","description":"The client secret. Alternative to Basic auth header."},"client_id":{"type":"string","description":"The client ID. Alternative to Basic auth header."}},"required":["grant_type","code"],"description":"Request body for the authorization_code grant type.","title":"OAuthTokenAuthorizationCodeRequestBody","x-stainless-model":"client_auth.oauth_token_authorization_code_request_body"},"OAuthTokenDeviceCodeRequestBody":{"type":"object","properties":{"grant_type":{"type":"string","enum":["urn:ietf:params:oauth:grant-type:device_code"]},"device_code":{"type":"string","description":"The device code received from the device authorization endpoint."}},"required":["grant_type","device_code"],"description":"Request body for the urn:ietf:params:oauth:grant-type:device_code grant type (RFC 8628). Used by CLI clients to poll for authorization.","title":"OAuthTokenDeviceCodeRequestBody","x-stainless-model":"client_auth.oauth_token_device_code_request_body"},"OAuthTokenRefreshTokenRequestBody":{"type":"object","properties":{"grant_type":{"type":"string","enum":["refresh_token"]},"refresh_token":{"type":"string","description":"The refresh token to exchange for a new access token."}},"required":["grant_type","refresh_token"],"description":"Request body for the refresh_token grant type. Rotates the refresh token and issues a new access token.","title":"OAuthTokenRefreshTokenRequestBody","x-stainless-model":"client_auth.oauth_token_refresh_token_request_body"},"OAuthTokenRequestBody":{"oneOf":[{"$ref":"#/components/schemas/OAuthTokenAuthorizationCodeRequestBody"},{"$ref":"#/components/schemas/OAuthTokenDeviceCodeRequestBody"},{"$ref":"#/components/schemas/OAuthTokenRefreshTokenRequestBody"}],"discriminator":{"propertyName":"grant_type","mapping":{"authorization_code":"#/components/schemas/OAuthTokenAuthorizationCodeRequestBody","urn:ietf:params:oauth:grant-type:device_code":"#/components/schemas/OAuthTokenDeviceCodeRequestBody","refresh_token":"#/components/schemas/OAuthTokenRefreshTokenRequestBody"}},"description":"Request body for the OAuth token endpoint, discriminated by grant_type.","title":"OAuthTokenRequestBody","x-stainless-model":"client_auth.oauth_token_request_body"},"OAuthTokenSuccessResponse":{"type":"object","properties":{"access_token":{"type":"string","description":"The issued access token."},"token_type":{"type":"string","enum":["Bearer"],"description":"The type of token issued."},"expires_in":{"type":"number","description":"The lifetime in seconds of the access token."},"refresh_token":{"type":"string","description":"A refresh token for obtaining new access tokens. Issued for device_code and refresh_token grants."}},"required":["access_token","token_type"],"description":"Successful token response per RFC 6749 Section 5.1.","title":"OAuthTokenSuccessResponse","x-stainless-model":"client_auth.oauth_token_success_response"},"OAuthTokenDeviceCodePendingError":{"type":"object","properties":{"error":{"type":"string","enum":["authorization_pending","slow_down","access_denied","expired_token"],"description":"The error code indicating why the token request failed."},"error_description":{"type":"string","description":"Human-readable description of the error."},"interval":{"type":"number","description":"The minimum polling interval in seconds."}},"required":["error"],"description":"Error response returned while the device authorization is still pending (RFC 8628 Section 3.5).","title":"OAuthTokenDeviceCodePendingError","x-stainless-model":"client_auth.oauth_token_device_code_pending_error"},"PasskeyCredPropsResult":{"type":"object","properties":{"rk":{"type":"boolean"}},"description":"The result of the WebAuthn credProps extension.","title":"PasskeyCredPropsResult","x-stainless-model":"client_auth.passkey_cred_props_result"},"PasskeyClientExtensionResults":{"type":"object","properties":{"app_id":{"type":"boolean"},"cred_props":{"$ref":"#/components/schemas/PasskeyCredPropsResult"},"hmac_create_secret":{"type":"boolean"}},"description":"Client extension results returned by the WebAuthn authenticator.","title":"PasskeyClientExtensionResults","x-stainless-model":"client_auth.passkey_client_extension_results"},"PasskeyCredentialDescriptor":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"transports":{"type":"array","items":{"type":"string"}}},"required":["id","type"],"description":"A WebAuthn credential descriptor identifying a specific public key credential.","title":"PasskeyCredentialDescriptor","x-stainless-model":"client_auth.passkey_credential_descriptor"},"PasskeyRelyingParty":{"type":"object","properties":{"name":{"type":"string"},"id":{"type":"string"}},"required":["name"],"description":"Relying party information for a WebAuthn ceremony.","title":"PasskeyRelyingParty","x-stainless-model":"client_auth.passkey_relying_party"},"PasskeyUser":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"display_name":{"type":"string"}},"required":["id","name","display_name"],"description":"User entity for a WebAuthn registration ceremony.","title":"PasskeyUser","x-stainless-model":"client_auth.passkey_user"},"PasskeyPubKeyCredParam":{"type":"object","properties":{"alg":{"type":"number"},"type":{"type":"string","enum":["public-key"]}},"required":["alg","type"],"description":"A public key credential parameter specifying the algorithm and credential type.","title":"PasskeyPubKeyCredParam","x-stainless-model":"client_auth.passkey_pub_key_cred_param"},"PasskeyAuthenticatorSelection":{"type":"object","properties":{"authenticator_attachment":{"type":"string"},"require_resident_key":{"type":"boolean"},"resident_key":{"type":"string"},"user_verification":{"type":"string"}},"description":"Authenticator selection criteria for a WebAuthn registration ceremony.","title":"PasskeyAuthenticatorSelection","x-stainless-model":"client_auth.passkey_authenticator_selection"},"PasskeyEnrollmentExtensions":{"type":"object","properties":{"app_id":{"type":"string"},"cred_props":{"$ref":"#/components/schemas/PasskeyCredPropsResult"},"hmac_create_secret":{"type":"boolean"}},"description":"Extensions for a WebAuthn registration ceremony.","title":"PasskeyEnrollmentExtensions","x-stainless-model":"client_auth.passkey_enrollment_extensions"},"PasskeyAttestationResponse":{"type":"object","properties":{"client_data_json":{"type":"string"},"attestation_object":{"type":"string"},"authenticator_data":{"type":"string"},"transports":{"type":"array","items":{"type":"string"}},"public_key_algorithm":{"type":"number"},"public_key":{"type":"string"}},"required":["client_data_json","attestation_object"],"description":"The authenticator attestation response from a WebAuthn registration ceremony.","title":"PasskeyAttestationResponse","x-stainless-model":"client_auth.passkey_attestation_response"},"PasskeyAuthenticatorEnrollmentOptions":{"type":"object","properties":{"rp":{"$ref":"#/components/schemas/PasskeyRelyingParty"},"user":{"$ref":"#/components/schemas/PasskeyUser"},"challenge":{"type":"string"},"pub_key_cred_params":{"type":"array","items":{"$ref":"#/components/schemas/PasskeyPubKeyCredParam"}},"timeout":{"type":"number"},"exclude_credentials":{"type":"array","items":{"$ref":"#/components/schemas/PasskeyCredentialDescriptor"}},"authenticator_selection":{"$ref":"#/components/schemas/PasskeyAuthenticatorSelection"},"attestation":{"type":"string"},"extensions":{"$ref":"#/components/schemas/PasskeyEnrollmentExtensions"}},"required":["rp","user","challenge","pub_key_cred_params"],"description":"WebAuthn registration options as defined by the Web Authentication specification.","title":"PasskeyAuthenticatorEnrollmentOptions","x-stainless-model":"client_auth.passkey_authenticator_enrollment_options"},"PasskeyAuthenticatorEnrollmentResponse":{"type":"object","properties":{"id":{"type":"string"},"raw_id":{"type":"string"},"response":{"$ref":"#/components/schemas/PasskeyAttestationResponse"},"authenticator_attachment":{"type":"string"},"client_extension_results":{"$ref":"#/components/schemas/PasskeyClientExtensionResults"},"type":{"type":"string","enum":["public-key"]}},"required":["id","raw_id","response","client_extension_results","type"],"description":"WebAuthn registration response as defined by the Web Authentication specification.","title":"PasskeyAuthenticatorEnrollmentResponse","x-stainless-model":"client_auth.passkey_authenticator_enrollment_response"},"ResponsePasskeyInitLink":{"type":"object","properties":{"relying_party":{"type":"string","format":"uri"},"options":{"$ref":"#/components/schemas/PasskeyAuthenticatorEnrollmentOptions"}},"required":["options"],"additionalProperties":false,"description":"Response for initiating a passkey link ceremony.","title":"ResponsePasskeyInitLink","x-stainless-model":"client_auth.response_passkey_init_link"},"ResponsePasskeyInitRegister":{"type":"object","properties":{"relying_party":{"type":"string","format":"uri"},"options":{"$ref":"#/components/schemas/PasskeyAuthenticatorEnrollmentOptions"}},"required":["options"],"additionalProperties":false,"description":"Response for initiating a passkey registration ceremony.","title":"ResponsePasskeyInitRegister","x-stainless-model":"client_auth.response_passkey_init_register"},"PasskeyLinkInput":{"type":"object","properties":{"relying_party":{"type":"string","format":"uri"},"authenticator_response":{"$ref":"#/components/schemas/PasskeyAuthenticatorEnrollmentResponse"}},"required":["authenticator_response"],"additionalProperties":false,"description":"Input for linking a passkey credential.","title":"PasskeyLinkInput","x-stainless-model":"client_auth.passkey_link_input"},"PasskeyRegisterInput":{"type":"object","properties":{"relying_party":{"type":"string","format":"uri"},"authenticator_response":{"$ref":"#/components/schemas/PasskeyAuthenticatorEnrollmentResponse"}},"required":["authenticator_response"],"additionalProperties":false,"description":"Input for registering a passkey credential.","title":"PasskeyRegisterInput","x-stainless-model":"client_auth.passkey_register_input"},"PasskeyInitInput":{"type":"object","properties":{"relying_party":{"type":"string","format":"uri"},"token":{"type":"string"}},"additionalProperties":false,"description":"Input for initiating a passkey ceremony.","title":"PasskeyInitInput","x-stainless-model":"client_auth.passkey_init_input"},"UnlinkPasskeyInput":{"type":"object","properties":{"credential_id":{"type":"string"},"remove_as_mfa":{"type":"boolean","default":true}},"required":["credential_id"],"description":"Input for unlinking a passkey credential.","title":"UnlinkPasskeyInput","x-stainless-model":"client_auth.unlink_passkey_input"},"PasskeyVerifyExtensions":{"type":"object","properties":{"app_id":{"type":"string"},"cred_props":{"type":"boolean"},"hmac_create_secret":{"type":"boolean"}},"description":"Extensions for a WebAuthn authentication ceremony.","title":"PasskeyVerifyExtensions","x-stainless-model":"client_auth.passkey_verify_extensions"},"PasskeyAssertionResponse":{"type":"object","properties":{"client_data_json":{"type":"string"},"authenticator_data":{"type":"string"},"signature":{"type":"string"},"user_handle":{"type":"string"}},"required":["client_data_json","authenticator_data","signature"],"description":"The authenticator assertion response from a WebAuthn authentication ceremony.","title":"PasskeyAssertionResponse","x-stainless-model":"client_auth.passkey_assertion_response"},"PasskeyAuthenticatorVerifyOptions":{"type":"object","properties":{"challenge":{"type":"string"},"timeout":{"type":"number"},"rp_id":{"type":"string"},"allow_credentials":{"type":"array","items":{"$ref":"#/components/schemas/PasskeyCredentialDescriptor"}},"user_verification":{"type":"string"},"extensions":{"$ref":"#/components/schemas/PasskeyVerifyExtensions"}},"required":["challenge"],"description":"WebAuthn authentication options as defined by the Web Authentication specification.","title":"PasskeyAuthenticatorVerifyOptions","x-stainless-model":"client_auth.passkey_authenticator_verify_options"},"PasskeyAuthenticatorVerifyResponse":{"type":"object","properties":{"id":{"type":"string"},"raw_id":{"type":"string"},"response":{"$ref":"#/components/schemas/PasskeyAssertionResponse"},"authenticator_attachment":{"type":"string"},"client_extension_results":{"$ref":"#/components/schemas/PasskeyClientExtensionResults"},"type":{"type":"string","enum":["public-key"]}},"required":["id","raw_id","response","client_extension_results","type"],"description":"WebAuthn authentication response as defined by the Web Authentication specification.","title":"PasskeyAuthenticatorVerifyResponse","x-stainless-model":"client_auth.passkey_authenticator_verify_response"},"ResponsePasskeyInitAuthenticate":{"type":"object","properties":{"relying_party":{"type":"string","format":"uri"},"options":{"$ref":"#/components/schemas/PasskeyAuthenticatorVerifyOptions"}},"required":["options"],"additionalProperties":false,"description":"Response for initiating a passkey authentication ceremony.","title":"ResponsePasskeyInitAuthenticate","x-stainless-model":"client_auth.response_passkey_init_authenticate"},"PasskeyAuthenticateInput":{"type":"object","properties":{"relying_party":{"type":"string","format":"uri"},"challenge":{"type":"string"},"authenticator_response":{"$ref":"#/components/schemas/PasskeyAuthenticatorVerifyResponse"}},"required":["challenge","authenticator_response"],"additionalProperties":false,"description":"Input for authenticating with a passkey.","title":"PasskeyAuthenticateInput","x-stainless-model":"client_auth.passkey_authenticate_input"},"PasswordlessLinkRequestBody":{"type":"object","properties":{"code":{"type":"string","minLength":6,"maxLength":6},"email":{"type":"string","format":"email"}},"required":["code","email"],"description":"The request body for linking a passwordless account.","title":"PasswordlessLinkRequestBody","x-stainless-model":"client_auth.passwordless_link_request_body"},"PasswordlessInitRequestBody":{"type":"object","properties":{"email":{"type":"string","format":"email"},"token":{"type":"string"}},"required":["email"],"description":"The request body for initiating a passwordless ceremony.","title":"PasswordlessInitRequestBody","x-stainless-model":"client_auth.passwordless_init_request_body"},"PasswordlessUnlinkRequestBody":{"type":"object","properties":{"address":{"type":"string","format":"email"}},"required":["address"],"description":"The request body for unlinking a passwordless account.","title":"PasswordlessUnlinkRequestBody","x-stainless-model":"client_auth.passwordless_unlink_request_body"},"PasswordlessUpdateRequestBody":{"type":"object","properties":{"oldAddress":{"type":"string","format":"email"},"newAddress":{"type":"string","format":"email"},"code":{"type":"string","minLength":6,"maxLength":6}},"required":["oldAddress","newAddress","code"],"description":"The request body for updating a passwordless account.","title":"PasswordlessUpdateRequestBody","x-stainless-model":"client_auth.passwordless_update_request_body"},"PasswordlessAuthenticateRequestBody":{"type":"object","properties":{"code":{"type":"string","minLength":6,"maxLength":6},"email":{"type":"string","format":"email"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"required":["code","email"],"description":"The request body for authenticating a passwordless account.","title":"PasswordlessAuthenticateRequestBody","x-stainless-model":"client_auth.passwordless_authenticate_request_body"},"PasswordlessTransferRequestBody":{"type":"object","properties":{"nonce":{"type":"string"},"email":{"type":"string","format":"email"}},"required":["nonce","email"],"description":"The request body for transferring a passwordless account.","title":"PasswordlessTransferRequestBody","x-stainless-model":"client_auth.passwordless_transfer_request_body"},"PasswordlessSmsLinkRequestBody":{"type":"object","properties":{"code":{"type":"string","minLength":6,"maxLength":6},"phoneNumber":{"type":"string"}},"required":["code","phoneNumber"],"description":"The request body for linking a passwordless sms account.","title":"PasswordlessSmsLinkRequestBody","x-stainless-model":"client_auth.passwordless_sms_link_request_body"},"PasswordlessSmsInitRequestBody":{"type":"object","properties":{"phoneNumber":{"type":"string"},"token":{"type":"string"}},"required":["phoneNumber"],"description":"The request body for initiating a passwordless sms ceremony.","title":"PasswordlessSmsInitRequestBody","x-stainless-model":"client_auth.passwordless_sms_init_request_body"},"PasswordlessSmsUnlinkRequestBody":{"type":"object","properties":{"phoneNumber":{"type":"string"}},"required":["phoneNumber"],"description":"The request body for unlinking a passwordless sms account.","title":"PasswordlessSmsUnlinkRequestBody","x-stainless-model":"client_auth.passwordless_sms_unlink_request_body"},"PasswordlessSmsUpdateRequestBody":{"type":"object","properties":{"old_phone_number":{"type":"string"},"new_phone_number":{"type":"string"},"code":{"type":"string","minLength":6,"maxLength":6}},"required":["old_phone_number","new_phone_number","code"],"description":"The request body for updating a passwordless sms account.","title":"PasswordlessSmsUpdateRequestBody","x-stainless-model":"client_auth.passwordless_sms_update_request_body"},"PasswordlessSmsAuthenticateRequestBody":{"type":"object","properties":{"code":{"type":"string","minLength":6,"maxLength":6},"phoneNumber":{"type":"string"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"required":["code","phoneNumber"],"description":"The request body for authenticating a passwordless sms account.","title":"PasswordlessSmsAuthenticateRequestBody","x-stainless-model":"client_auth.passwordless_sms_authenticate_request_body"},"PasswordlessSmsTransferRequestBody":{"type":"object","properties":{"nonce":{"type":"string"},"phoneNumber":{"type":"string"}},"required":["nonce","phoneNumber"],"description":"The request body for transferring a passwordless sms account.","title":"PasswordlessSmsTransferRequestBody","x-stainless-model":"client_auth.passwordless_sms_transfer_request_body"},"AuthenticateJwtInput":{"type":"object","properties":{"token":{"type":"string"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"description":"Input for authenticating with a custom JWT.","title":"AuthenticateJwtInput","x-stainless-model":"client_auth.authenticate_jwt_input"},"LinkJwtInput":{"type":"object","properties":{"token":{"type":"string"}},"description":"Input for linking a custom JWT account.","title":"LinkJwtInput","x-stainless-model":"client_auth.link_jwt_input"},"CustomJwtAuthenticateRequestBody":{"type":"object","properties":{"token":{"type":"string"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"description":"The request body for authenticating with a custom JWT.","title":"CustomJwtAuthenticateRequestBody","x-stainless-model":"client_auth.custom_jwt_authenticate_request_body"},"CustomJwtLinkRequestBody":{"type":"object","properties":{"token":{"type":"string"}},"description":"The request body for linking a custom JWT account.","title":"CustomJwtLinkRequestBody","x-stainless-model":"client_auth.custom_jwt_link_request_body"},"GetFiatCustomerRequestInput":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/OnrampProvider"},"kyc_redirect_url":{"type":"string","maxLength":2083,"format":"uri"}},"required":["provider"],"description":"The request input for getting a native onramp provider customer.","title":"GetFiatCustomerRequestInput","example":{"provider":"bridge","kyc_redirect_url":"https://example.com"},"x-stainless-model":"onramps.get_fiat_customer_request_input"},"CreateOrUpdateFiatCustomerRequestInput":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/OnrampProvider"},"has_accepted_terms":{"type":"boolean"},"kyc_redirect_url":{"type":"string","maxLength":2083,"format":"uri"}},"required":["provider","has_accepted_terms"],"description":"The request input for creating (or updating) a native onramp provider customer.","title":"CreateOrUpdateFiatCustomerRequestInput","example":{"provider":"bridge","has_accepted_terms":false,"kyc_redirect_url":"https://example.com"},"x-stainless-model":"onramps.create_or_update_fiat_customer_request_input"},"BridgeFiatRejectionReason":{"type":"object","properties":{"reason":{"type":"string"}},"required":["reason"],"description":"A rejection reason for a customer KYC verification.","title":"BridgeFiatRejectionReason","example":{"reason":"Your identity verification was unsuccessful"},"x-stainless-model":"onramps.bridge_fiat_rejection_reason"},"BridgeFiatCustomerResponse":{"type":"object","properties":{"provider":{"type":"string","enum":["bridge"]},"status":{"$ref":"#/components/schemas/OnrampKycStatus"},"has_accepted_terms":{"type":"boolean"},"kyc_url":{"type":"string"},"rejection_reasons":{"type":"array","items":{"$ref":"#/components/schemas/BridgeFiatRejectionReason"}}},"required":["provider","status","has_accepted_terms"],"description":"The response for getting a native onramp provider customer.","title":"BridgeFiatCustomerResponse","example":{"provider":"bridge","status":"active","has_accepted_terms":true},"x-stainless-model":"onramps.bridge_fiat_customer_response"},"BridgeSandboxFiatCustomerResponse":{"type":"object","properties":{"provider":{"type":"string","enum":["bridge-sandbox"]},"status":{"$ref":"#/components/schemas/OnrampKycStatus"},"has_accepted_terms":{"type":"boolean"},"kyc_url":{"type":"string"},"rejection_reasons":{"type":"array","items":{"$ref":"#/components/schemas/BridgeFiatRejectionReason"}}},"required":["provider","status","has_accepted_terms"],"description":"The response for getting a native onramp provider customer.","title":"BridgeSandboxFiatCustomerResponse","example":{"provider":"bridge-sandbox","status":"active","has_accepted_terms":true},"x-stainless-model":"onramps.bridge_sandbox_fiat_customer_response"},"FiatCustomerResponse":{"oneOf":[{"$ref":"#/components/schemas/BridgeFiatCustomerResponse"},{"$ref":"#/components/schemas/BridgeSandboxFiatCustomerResponse"}],"discriminator":{"propertyName":"provider","mapping":{"bridge":"#/components/schemas/BridgeFiatCustomerResponse","bridge-sandbox":"#/components/schemas/BridgeSandboxFiatCustomerResponse"}},"description":"The response for getting a native onramp provider customer.","title":"FiatCustomerResponse","example":{"provider":"bridge","status":"active","has_accepted_terms":true},"x-stainless-model":"onramps.fiat_customer_response"},"FiatCurrencyCode":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 fiat currency code. Three uppercase ASCII letters.","title":"FiatCurrencyCode","example":"USD","x-stainless-model":"onramps.fiat_currency_code"},"Caip2ChainId":{"type":"string","pattern":"^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$","description":"A CAIP-2 chain identifier in namespace:reference format (e.g. \"eip155:1\" for Ethereum mainnet, \"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\" for Solana mainnet).","title":"Caip2ChainId","example":"eip155:1","x-stainless-model":"onramps.caip_2_chain_id"},"FiatAmount":{"type":"string","pattern":"^\\d+(\\.\\d+)?$","description":"A positive decimal amount as a string (e.g. \"100\", \"50.25\", \"0.001\").","title":"FiatAmount","example":"100","x-stainless-model":"onramps.fiat_amount"},"FiatOnrampSource":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/FiatCurrencyCode"},"amount":{"$ref":"#/components/schemas/FiatAmount"}},"required":["asset","amount"],"description":"Source currency details for a fiat onramp quote request.","title":"FiatOnrampSource","example":{"asset":"USD","amount":"100.03"},"x-stainless-model":"onramps.fiat_onramp_source"},"FiatOnrampDestination":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/TokenIdentifier"},"chain":{"$ref":"#/components/schemas/Caip2ChainId"},"address":{"type":"string"}},"required":["asset","chain","address"],"description":"Destination cryptocurrency details for a fiat onramp quote request.","title":"FiatOnrampDestination","example":{"asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","chain":"eip155:8453","address":"0x1234567890abcdef1234567890abcdef12345678"},"x-stainless-model":"onramps.fiat_onramp_destination"},"FiatOnrampEnvironment":{"type":"string","enum":["sandbox","production"],"description":"Whether to use the sandbox or production environment for fiat onramp.","title":"FiatOnrampEnvironment","example":"production","x-stainless-model":"onramps.fiat_onramp_environment"},"FiatOnrampProvider":{"type":"string","enum":["meld","meld-sandbox","moonpay","moonpay-sandbox","coinbase","coinbase-sandbox","stripe","stripe-sandbox"],"description":"The fiat onramp provider to use.","title":"FiatOnrampProvider","example":"meld","x-stainless-model":"onramps.fiat_onramp_provider"},"GetFiatOnrampQuotesInput":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/FiatOnrampSource"},"destination":{"$ref":"#/components/schemas/FiatOnrampDestination"},"environment":{"$ref":"#/components/schemas/FiatOnrampEnvironment"}},"required":["source","destination","environment"],"additionalProperties":false,"description":"The request input for getting fiat onramp quotes.","title":"GetFiatOnrampQuotesInput","example":{"source":{"asset":"USD","amount":"100.03"},"destination":{"asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","chain":"eip155:8453","address":"0x1234567890abcdef1234567890abcdef12345678"},"environment":"production"},"x-stainless-model":"onramps.get_fiat_onramp_quotes_input"},"FiatOnrampQuote":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/FiatOnrampProvider"},"sub_provider":{"type":["string","null"]},"payment_method":{"type":"string"},"payment_method_category":{"type":"string"},"source_currency_code":{"type":["string","null"]},"source_amount":{"type":["number","null"]},"destination_currency_code":{"type":["string","null"]},"warning":{"type":["string","null"]}},"required":["provider","payment_method"],"description":"A single fiat onramp quote from a provider.","title":"FiatOnrampQuote","example":{"provider":"meld","sub_provider":"TRANSAK","payment_method":"GLOBAL_BANK_TRANSFER","payment_method_category":"BANK","source_currency_code":"USD","source_amount":100,"destination_currency_code":"USDC"},"x-stainless-model":"onramps.fiat_onramp_quote"},"FiatOnrampProviderError":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/FiatOnrampProvider"},"error":{"type":"string"}},"required":["provider","error"],"description":"An error from a specific fiat onramp provider when fetching quotes.","title":"FiatOnrampProviderError","example":{"provider":"meld","error":"Payment provider temporarily unavailable. Try again shortly."},"x-stainless-model":"onramps.fiat_onramp_provider_error"},"GetFiatOnrampQuotesResponse":{"type":"object","properties":{"quotes":{"type":"array","items":{"$ref":"#/components/schemas/FiatOnrampQuote"}},"provider_errors":{"type":"array","items":{"$ref":"#/components/schemas/FiatOnrampProviderError"}},"destination_currency_symbol":{"type":"string"},"destination_currency_icon_url":{"type":["string","null"],"format":"uri"},"destination_network_icon_url":{"type":["string","null"],"format":"uri"}},"required":["quotes","destination_currency_symbol","destination_currency_icon_url","destination_network_icon_url"],"description":"The response containing fiat onramp quotes.","title":"GetFiatOnrampQuotesResponse","example":{"quotes":[{"provider":"meld","sub_provider":"TRANSAK","payment_method":"CREDIT_DEBIT_CARD","source_currency_code":"USD","source_amount":100,"destination_currency_code":"USDC"}],"destination_currency_symbol":"USDC","destination_currency_icon_url":"https://coin-images.coingecko.com/coins/images/6319/large/usdc.png?1696506694","destination_network_icon_url":"https://home.privy.io/chain-icons/base.png"},"x-stainless-model":"onramps.get_fiat_onramp_quotes_response"},"GetFiatOnrampUrlInput":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/FiatOnrampSource"},"destination":{"$ref":"#/components/schemas/FiatOnrampDestination"},"provider":{"$ref":"#/components/schemas/FiatOnrampProvider"},"sub_provider":{"type":"string"},"payment_method":{"type":"string"},"redirect_url":{"type":"string","format":"uri"}},"required":["source","destination","provider","payment_method"],"additionalProperties":false,"description":"The request input for getting a fiat onramp provider session URL.","title":"GetFiatOnrampUrlInput","example":{"source":{"asset":"USD","amount":"100.03"},"destination":{"asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","chain":"eip155:42161","address":"0x1234567890abcdef1234567890abcdef12345678"},"provider":"meld","sub_provider":"TRANSAK","payment_method":"CREDIT_DEBIT_CARD"},"x-stainless-model":"onramps.get_fiat_onramp_url_input"},"FiatOnrampUrlSessionResponse":{"type":"object","properties":{"type":{"type":"string","enum":["url"]},"url":{"type":"string","format":"uri"},"session_id":{"type":"string"}},"required":["type","url","session_id"],"description":"Provider session initialization for popup-based providers.","title":"FiatOnrampUrlSessionResponse","example":{"type":"url","url":"https://meld.io/widget/session/abc123","session_id":"cm8g7t2kw0001qjpfxhz6dn4r"},"x-stainless-model":"onramps.fiat_onramp_url_session_response"},"FiatOnrampStripeSdkSessionResponse":{"type":"object","properties":{"type":{"type":"string","enum":["stripe-sdk"]},"publishable_key":{"type":"string"},"network":{"type":"string"},"session_id":{"type":"string"}},"required":["type","publishable_key","network","session_id"],"description":"Provider session initialization for embedded SDK providers (Stripe).","title":"FiatOnrampStripeSdkSessionResponse","example":{"type":"stripe-sdk","publishable_key":"pk_live_...","network":"ethereum","session_id":"cm8g7t2kw0001qjpfxhz6dn4r"},"x-stainless-model":"onramps.fiat_onramp_stripe_sdk_session_response"},"GetFiatOnrampUrlResponse":{"oneOf":[{"$ref":"#/components/schemas/FiatOnrampUrlSessionResponse"},{"$ref":"#/components/schemas/FiatOnrampStripeSdkSessionResponse"}],"discriminator":{"propertyName":"type","mapping":{"url":"#/components/schemas/FiatOnrampUrlSessionResponse","stripe-sdk":"#/components/schemas/FiatOnrampStripeSdkSessionResponse"}},"description":"Provider session initialization — either a hosted URL or embedded SDK config.","title":"GetFiatOnrampUrlResponse","x-stainless-model":"onramps.get_fiat_onramp_url_response"},"FiatOnrampTransactionStatus":{"type":"string","enum":["pending","processing","completed","failed","cancelled","refunded","unknown"],"description":"Normalized fiat onramp transaction status.","title":"FiatOnrampTransactionStatus","example":"pending","x-stainless-model":"onramps.fiat_onramp_transaction_status"},"GetFiatOnrampTransactionStatusInput":{"type":"object","properties":{"session_id":{"type":"string"},"provider":{"$ref":"#/components/schemas/FiatOnrampProvider"}},"required":["session_id","provider"],"additionalProperties":false,"description":"The request input for checking a fiat onramp session status.","title":"GetFiatOnrampTransactionStatusInput","example":{"session_id":"cm8g7t2kw0001qjpfxhz6dn4r","provider":"meld"},"x-stainless-model":"onramps.get_fiat_onramp_transaction_status_input"},"GetFiatOnrampTransactionStatusResponse":{"type":"object","properties":{"session_id":{"type":"string"},"transaction_id":{"type":"string"},"status":{"$ref":"#/components/schemas/FiatOnrampTransactionStatus"},"raw_status":{"type":"string"}},"required":["session_id","status","raw_status"],"description":"The response containing the fiat onramp session status.","title":"GetFiatOnrampTransactionStatusResponse","example":{"session_id":"cm8g7t2kw0001qjpfxhz6dn4r","status":"pending","raw_status":"PENDING_CREATED"},"x-stainless-model":"onramps.get_fiat_onramp_transaction_status_response"},"BridgeDestinationAsset":{"type":"string","enum":["usdb","usdc","usdt","dai","pyusd","eurc"],"description":"Supported destination stablecoin assets for fiat-to-crypto transfers.","title":"BridgeDestinationAsset","x-stainless-model":"client_auth.bridge_destination_asset"},"BridgeSourceAsset":{"type":"string","enum":["usd","eur","mxn","brl","gbp"],"description":"Supported source fiat currencies for virtual account deposits.","title":"BridgeSourceAsset","x-stainless-model":"client_auth.bridge_source_asset"},"BridgeFiatVirtualAccountSource":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/BridgeSourceAsset"}},"required":["asset"],"description":"The source fiat currency configuration for a virtual account.","title":"BridgeFiatVirtualAccountSource","x-stainless-model":"client_auth.bridge_fiat_virtual_account_source"},"BridgeFiatVirtualAccountDestination":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/BridgeDestinationAsset"},"chain":{"type":"string"},"address":{"type":"string"}},"required":["asset","chain","address"],"description":"The destination chain, asset, and address for a virtual account transfer.","title":"BridgeFiatVirtualAccountDestination","x-stainless-model":"client_auth.bridge_fiat_virtual_account_destination"},"BridgeFiatVirtualAccountRequest":{"type":"object","properties":{"provider":{"type":"string","enum":["bridge"]},"source":{"$ref":"#/components/schemas/BridgeFiatVirtualAccountSource"},"destination":{"$ref":"#/components/schemas/BridgeFiatVirtualAccountDestination"}},"required":["provider","source","destination"],"description":"The request input for creating virtual account.","title":"BridgeFiatVirtualAccountRequest","x-stainless-model":"client_auth.bridge_fiat_virtual_account_request"},"BridgeSandboxFiatVirtualAccountRequest":{"type":"object","properties":{"provider":{"type":"string","enum":["bridge-sandbox"]},"source":{"$ref":"#/components/schemas/BridgeFiatVirtualAccountSource"},"destination":{"$ref":"#/components/schemas/BridgeFiatVirtualAccountDestination"}},"required":["provider","source","destination"],"description":"The request input for creating virtual account.","title":"BridgeSandboxFiatVirtualAccountRequest","x-stainless-model":"client_auth.bridge_sandbox_fiat_virtual_account_request"},"FiatVirtualAccountRequest":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/BridgeFiatVirtualAccountRequest"},{"additionalProperties":false}]},{"allOf":[{"$ref":"#/components/schemas/BridgeSandboxFiatVirtualAccountRequest"},{"additionalProperties":false}]}],"discriminator":{"propertyName":"provider","mapping":{"bridge":"#/components/schemas/BridgeFiatVirtualAccountRequest","bridge-sandbox":"#/components/schemas/BridgeSandboxFiatVirtualAccountRequest"}},"description":"The request input for creating virtual account.","title":"FiatVirtualAccountRequest","example":{"provider":"bridge","source":{"asset":"eur"},"destination":{"chain":"arbitrum","asset":"usdc","address":"0xdeadbeef"}},"x-stainless-model":"client_auth.fiat_virtual_account_request"},"BridgeUsdFiatVirtualAccountDepositInstructions":{"type":"object","properties":{"asset":{"type":"string","enum":["usd"]},"payment_rails":{"type":"array","items":{"type":"string","enum":["ach_push","wire"]}},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"bank_routing_number":{"type":"string"},"bank_account_number":{"type":"string"},"bank_beneficiary_name":{"type":"string"},"bank_beneficiary_address":{"type":"string"}},"required":["asset","payment_rails","bank_name","bank_address","bank_routing_number","bank_account_number","bank_beneficiary_name","bank_beneficiary_address"],"description":"The deposit instructions for a virtual account.","title":"BridgeUsdFiatVirtualAccountDepositInstructions","x-stainless-model":"client_auth.bridge_usd_fiat_virtual_account_deposit_instructions"},"BridgeEurFiatVirtualAccountDepositInstructions":{"type":"object","properties":{"asset":{"type":"string","enum":["eur"]},"payment_rails":{"type":"array","items":{"type":"string","enum":["sepa"]}},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"iban":{"type":"string"},"bic":{"type":"string"},"account_holder_name":{"type":"string"}},"required":["asset","payment_rails","bank_name","bank_address","iban","bic","account_holder_name"],"description":"The deposit instructions for a virtual account.","title":"BridgeEurFiatVirtualAccountDepositInstructions","x-stainless-model":"client_auth.bridge_eur_fiat_virtual_account_deposit_instructions"},"BridgeMxnFiatVirtualAccountDepositInstructions":{"type":"object","properties":{"asset":{"type":"string","enum":["mxn"]},"payment_rails":{"type":"array","items":{"type":"string","enum":["spei"]}},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"clabe":{"type":"string"},"account_holder_name":{"type":"string"}},"required":["asset","payment_rails","bank_name","bank_address","clabe","account_holder_name"],"description":"The deposit instructions for a virtual account.","title":"BridgeMxnFiatVirtualAccountDepositInstructions","x-stainless-model":"client_auth.bridge_mxn_fiat_virtual_account_deposit_instructions"},"BridgeBrlFiatVirtualAccountDepositInstructions":{"type":"object","properties":{"asset":{"type":"string","enum":["brl"]},"payment_rails":{"type":"array","items":{"type":"string","enum":["pix"]}},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"br_code":{"type":"string"},"account_holder_name":{"type":"string"}},"required":["asset","payment_rails","bank_name","bank_address","br_code","account_holder_name"],"description":"The deposit instructions for a virtual account.","title":"BridgeBrlFiatVirtualAccountDepositInstructions","x-stainless-model":"client_auth.bridge_brl_fiat_virtual_account_deposit_instructions"},"BridgeGbpFiatVirtualAccountDepositInstructions":{"type":"object","properties":{"asset":{"type":"string","enum":["gbp"]},"payment_rails":{"type":"array","items":{"type":"string","enum":["faster_payments"]}},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_number":{"type":"string"},"sort_code":{"type":"string"},"account_holder_name":{"type":"string"}},"required":["asset","payment_rails","bank_name","bank_address","account_number","sort_code","account_holder_name"],"description":"The deposit instructions for a virtual account.","title":"BridgeGbpFiatVirtualAccountDepositInstructions","x-stainless-model":"client_auth.bridge_gbp_fiat_virtual_account_deposit_instructions"},"BridgeFiatVirtualAccountDepositInstructions":{"oneOf":[{"$ref":"#/components/schemas/BridgeUsdFiatVirtualAccountDepositInstructions"},{"$ref":"#/components/schemas/BridgeEurFiatVirtualAccountDepositInstructions"},{"$ref":"#/components/schemas/BridgeMxnFiatVirtualAccountDepositInstructions"},{"$ref":"#/components/schemas/BridgeBrlFiatVirtualAccountDepositInstructions"},{"$ref":"#/components/schemas/BridgeGbpFiatVirtualAccountDepositInstructions"}],"discriminator":{"propertyName":"asset","mapping":{"usd":"#/components/schemas/BridgeUsdFiatVirtualAccountDepositInstructions","eur":"#/components/schemas/BridgeEurFiatVirtualAccountDepositInstructions","mxn":"#/components/schemas/BridgeMxnFiatVirtualAccountDepositInstructions","brl":"#/components/schemas/BridgeBrlFiatVirtualAccountDepositInstructions","gbp":"#/components/schemas/BridgeGbpFiatVirtualAccountDepositInstructions"}},"description":"The deposit instructions for a virtual account.","title":"BridgeFiatVirtualAccountDepositInstructions","x-stainless-model":"client_auth.bridge_fiat_virtual_account_deposit_instructions"},"BridgeFiatVirtualAccountResponse":{"type":"object","properties":{"provider":{"type":"string","enum":["bridge"]},"status":{"type":"string"},"deposit_instructions":{"$ref":"#/components/schemas/BridgeFiatVirtualAccountDepositInstructions"},"destination":{"$ref":"#/components/schemas/BridgeFiatVirtualAccountDestination"}},"required":["provider","status","deposit_instructions","destination"],"description":"The response for creating virtual account.","title":"BridgeFiatVirtualAccountResponse","x-stainless-model":"client_auth.bridge_fiat_virtual_account_response"},"BridgeSandboxFiatVirtualAccountResponse":{"type":"object","properties":{"provider":{"type":"string","enum":["bridge-sandbox"]},"status":{"type":"string"},"deposit_instructions":{"$ref":"#/components/schemas/BridgeFiatVirtualAccountDepositInstructions"},"destination":{"$ref":"#/components/schemas/BridgeFiatVirtualAccountDestination"}},"required":["provider","status","deposit_instructions","destination"],"description":"The response for creating virtual account.","title":"BridgeSandboxFiatVirtualAccountResponse","x-stainless-model":"client_auth.bridge_sandbox_fiat_virtual_account_response"},"FiatVirtualAccountResponse":{"oneOf":[{"$ref":"#/components/schemas/BridgeFiatVirtualAccountResponse"},{"$ref":"#/components/schemas/BridgeSandboxFiatVirtualAccountResponse"}],"discriminator":{"propertyName":"provider","mapping":{"bridge":"#/components/schemas/BridgeFiatVirtualAccountResponse","bridge-sandbox":"#/components/schemas/BridgeSandboxFiatVirtualAccountResponse"}},"description":"The response for creating virtual account.","title":"FiatVirtualAccountResponse","example":{"provider":"bridge","status":"activated","deposit_instructions":{"payment_rails":["ach_push","wire"],"asset":"usd","bank_name":"Lead Bank","bank_address":"1801 Main St., Kansas City, MO 64108","bank_beneficiary_name":"Customer Name","bank_beneficiary_address":"1234 Main St., Kansas City, MO 64108","bank_account_number":"123456789","bank_routing_number":"87654321"},"destination":{"chain":"arbitrum","asset":"usdc","address":"0xdeadbeef"}},"x-stainless-model":"client_auth.fiat_virtual_account_response"},"GuestAuthenticateRequestBody":{"type":"object","properties":{"guest_credential":{"type":"string","minLength":43,"maxLength":43}},"required":["guest_credential"],"additionalProperties":false,"description":"The request body for authenticating a guest.","title":"GuestAuthenticateRequestBody","x-stainless-model":"client_auth.guest_authenticate_request_body"},"OAuthCodeType":{"type":"string","enum":["raw"],"description":"The type of OAuth authorization code.","title":"OAuthCodeType","x-stainless-model":"client_auth.oauth_code_type"},"OAuthInitRequestBody":{"type":"object","properties":{"redirect_to":{"type":"string"},"provider":{"$ref":"#/components/schemas/OAuthProviderID"},"token":{"type":"string"},"state_code":{"type":"string"},"code_challenge":{"type":"string"}},"required":["redirect_to","provider"],"description":"The request body for initiating an OAuth ceremony.","title":"OAuthInitRequestBody","x-stainless-model":"client_auth.oauth_init_request_body"},"OAuthInitResponseBody":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"description":"The response for initiating an OAuth ceremony.","title":"OAuthInitResponseBody","x-stainless-model":"client_auth.oauth_init_response_body"},"OAuthAuthenticateRequestBody":{"type":"object","properties":{"authorization_code":{"type":"string"},"state_code":{"type":"string"},"code_verifier":{"type":"string","minLength":43,"maxLength":128},"code_type":{"$ref":"#/components/schemas/OAuthCodeType"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"required":["authorization_code","state_code"],"description":"The request body for authenticating an OAuth account.","title":"OAuthAuthenticateRequestBody","x-stainless-model":"client_auth.oauth_authenticate_request_body"},"OAuthLinkRequestBody":{"type":"object","properties":{"authorization_code":{"type":"string"},"state_code":{"type":"string"},"code_verifier":{"type":"string","minLength":43,"maxLength":128},"code_type":{"$ref":"#/components/schemas/OAuthCodeType"}},"required":["authorization_code","state_code"],"description":"The request body for linking an OAuth account.","title":"OAuthLinkRequestBody","x-stainless-model":"client_auth.oauth_link_request_body"},"OAuthUnlinkRequestBody":{"type":"object","properties":{"subject":{"type":"string"},"provider":{"$ref":"#/components/schemas/OAuthProviderID"}},"required":["subject","provider"],"description":"The request body for unlinking an OAuth account.","title":"OAuthUnlinkRequestBody","x-stainless-model":"client_auth.oauth_unlink_request_body"},"OAuthLinkResponseBody":{"allOf":[{"$ref":"#/components/schemas/User"},{"type":"object","properties":{"oauth_tokens":{"$ref":"#/components/schemas/OAuthTokens"}}}],"description":"The response for linking an OAuth account.","title":"OAuthLinkResponseBody","x-stainless-model":"client_auth.oauth_link_response_body"},"OAuthTransferUserInfoMeta":{"type":"object","properties":{"providerAppId":{"type":"string"}},"description":"Metadata for an OAuth transfer user info.","title":"OAuthTransferUserInfoMeta","x-stainless-model":"client_auth.oauth_transfer_user_info_meta"},"OAuthTransferUserInfo":{"type":"object","properties":{"subject":{"type":"string"},"name":{"type":"string"},"username":{"type":"string"},"profilePictureUrl":{"type":"string"},"email":{"type":["string","null"]},"vanityName":{"type":"string"},"meta":{"$ref":"#/components/schemas/OAuthTransferUserInfoMeta"},"embeddedWalletAddresses":{"type":"array","items":{"type":"string"}},"smartWalletAddresses":{"type":"array","items":{"type":"string"}}},"required":["subject"],"description":"User info for an OAuth transfer.","title":"OAuthTransferUserInfo","x-stainless-model":"client_auth.oauth_transfer_user_info"},"OAuthTransferRequestBody":{"type":"object","properties":{"nonce":{"type":"string"},"userInfo":{"$ref":"#/components/schemas/OAuthTransferUserInfo"}},"required":["nonce","userInfo"],"description":"The request body for transferring an OAuth account.","title":"OAuthTransferRequestBody","x-stainless-model":"client_auth.oauth_transfer_request_body"},"OAuthAuthorizationCodeRequestBody":{"type":"object","properties":{"redirect_to":{"type":"string"},"state":{"type":"string"},"code_challenge":{"type":"string"}},"required":["redirect_to","state","code_challenge"],"description":"The request body for getting an OAuth authorization code.","title":"OAuthAuthorizationCodeRequestBody","x-stainless-model":"client_auth.oauth_authorization_code_request_body"},"OAuthVerifyRequestBody":{"type":"object","properties":{"prat":{"type":"string"}},"required":["prat"],"description":"The request body for verifying a PRAT.","title":"OAuthVerifyRequestBody","x-stainless-model":"client_auth.oauth_verify_request_body"},"OAuthVerifyResponseBody":{"type":"object","properties":{"verified":{"type":"boolean"}},"required":["verified"],"description":"The response body when verifying a PRAT.","title":"OAuthVerifyResponseBody","x-stainless-model":"client_auth.oauth_verify_response_body"},"SiweInput":{"type":"object","properties":{"message":{"type":"string"},"signature":{"type":"string"},"chainId":{"type":["string","null"],"maxLength":41,"default":null},"walletClientType":{"type":["string","null"],"maxLength":64,"default":null},"connectorType":{"type":["string","null"],"maxLength":64,"default":null}},"required":["message","signature"],"description":"Input for a SIWE signing ceremony.","title":"SiweInput","x-stainless-model":"client_auth.siwe_input"},"SmartWalletSiweInput":{"type":"object","properties":{"message":{"type":"string"},"signature":{"type":"string"},"smart_wallet_type":{"$ref":"#/components/schemas/SmartWalletType"},"smart_wallet_version":{"type":"string"}},"required":["message","signature","smart_wallet_type"],"description":"Input for a smart wallet SIWE signing ceremony.","title":"SmartWalletSiweInput","x-stainless-model":"client_auth.smart_wallet_siwe_input"},"AuthenticateSiweInput":{"type":"object","properties":{"message":{"type":"string"},"signature":{"type":"string"},"chainId":{"type":["string","null"],"maxLength":41,"default":null},"walletClientType":{"type":["string","null"],"maxLength":64,"default":null},"connectorType":{"type":["string","null"],"maxLength":64,"default":null},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"required":["message","signature"],"description":"Input for authenticating a SIWE ceremony.","title":"AuthenticateSiweInput","x-stainless-model":"client_auth.authenticate_siwe_input"},"SiweAddressInput":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"],"description":"Input containing a SIWE wallet address.","title":"SiweAddressInput","x-stainless-model":"client_auth.siwe_address_input"},"SiweInitInput":{"type":"object","properties":{"address":{"type":"string"},"token":{"type":"string"}},"description":"Input for initiating a SIWE ceremony.","title":"SiweInitInput","x-stainless-model":"client_auth.siwe_init_input"},"SiweNonce":{"type":"object","properties":{"nonce":{"type":"string"},"address":{"type":"string"},"expires_at":{"type":"string"}},"required":["nonce","address","expires_at"],"description":"A SIWE nonce response.","title":"SiweNonce","x-stainless-model":"client_auth.siwe_nonce"},"TransferSiweInput":{"type":"object","properties":{"nonce":{"type":"string"},"address":{"type":"string"},"chainId":{"type":["string","null"],"maxLength":41,"default":null},"walletClientType":{"type":["string","null"],"maxLength":64,"default":null},"connectorType":{"type":["string","null"],"maxLength":64,"default":null}},"required":["nonce","address"],"description":"Input for transferring a SIWE account.","title":"TransferSiweInput","x-stainless-model":"client_auth.transfer_siwe_input"},"SiweInitRequestBody":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"],"description":"The request body for initiating a SIWE ceremony.","title":"SiweInitRequestBody","x-stainless-model":"client_auth.siwe_init_request_body"},"SiweInitResponseBody":{"type":"object","properties":{"nonce":{"type":"string"},"address":{"type":"string"},"expires_at":{"type":"string"}},"required":["nonce","address","expires_at"],"description":"The response body for initiating a SIWE ceremony.","title":"SiweInitResponseBody","x-stainless-model":"client_auth.siwe_init_response_body"},"SiweAuthenticateRequestBody":{"type":"object","properties":{"message":{"type":"string"},"signature":{"type":"string"},"chainId":{"type":["string","null"],"maxLength":41,"default":null},"walletClientType":{"type":["string","null"],"maxLength":64,"default":null},"connectorType":{"type":["string","null"],"maxLength":64,"default":null},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"required":["message","signature"],"description":"The request body for authenticating a SIWE ceremony.","title":"SiweAuthenticateRequestBody","x-stainless-model":"client_auth.siwe_authenticate_request_body"},"SiweLinkRequestBody":{"type":"object","properties":{"message":{"type":"string"},"signature":{"type":"string"},"chainId":{"type":["string","null"],"maxLength":41,"default":null},"walletClientType":{"type":["string","null"],"maxLength":64,"default":null},"connectorType":{"type":["string","null"],"maxLength":64,"default":null}},"required":["message","signature"],"description":"The request body for linking a SIWE ceremony.","title":"SiweLinkRequestBody","x-stainless-model":"client_auth.siwe_link_request_body"},"SiweLinkSmartWalletRequestBody":{"type":"object","properties":{"message":{"type":"string"},"signature":{"type":"string"},"smart_wallet_type":{"$ref":"#/components/schemas/SmartWalletType"},"smart_wallet_version":{"type":"string"}},"required":["message","signature","smart_wallet_type"],"description":"The request body for linking a SIWE ceremony to a smart wallet.","title":"SiweLinkSmartWalletRequestBody","x-stainless-model":"client_auth.siwe_link_smart_wallet_request_body"},"SiweUnlinkRequestBody":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"],"description":"The request body for unlinking a SIWE ceremony.","title":"SiweUnlinkRequestBody","x-stainless-model":"client_auth.siwe_unlink_request_body"},"SiwsMessageType":{"type":"string","enum":["transaction","plain","offchain-message"],"description":"The type of SIWS message being signed.","title":"SiwsMessageType","x-stainless-model":"client_auth.siws_message_type"},"SiwsInput":{"type":"object","properties":{"message":{"type":"string"},"signature":{"type":"string"},"walletClientType":{"type":["string","null"],"maxLength":64,"default":null},"connectorType":{"type":["string","null"],"maxLength":64,"default":null},"message_type":{"$ref":"#/components/schemas/SiwsMessageType"}},"required":["message","signature"],"description":"Input for a SIWS signing ceremony.","title":"SiwsInput","x-stainless-model":"client_auth.siws_input"},"AuthenticateSiwsInput":{"type":"object","properties":{"message":{"type":"string"},"signature":{"type":"string"},"walletClientType":{"type":["string","null"],"maxLength":64,"default":null},"connectorType":{"type":["string","null"],"maxLength":64,"default":null},"message_type":{"$ref":"#/components/schemas/SiwsMessageType"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"required":["message","signature"],"description":"Input for authenticating a SIWS ceremony.","title":"AuthenticateSiwsInput","x-stainless-model":"client_auth.authenticate_siws_input"},"SiwsAddressInput":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"],"description":"Input containing a SIWS wallet address.","title":"SiwsAddressInput","x-stainless-model":"client_auth.siws_address_input"},"SiwsInitInput":{"type":"object","properties":{"address":{"type":"string"},"token":{"type":"string"}},"required":["address"],"description":"Input for initiating a SIWS ceremony.","title":"SiwsInitInput","x-stainless-model":"client_auth.siws_init_input"},"SiwsNonce":{"type":"object","properties":{"nonce":{"type":"string"},"address":{"type":"string"},"expires_at":{"type":"string"}},"required":["nonce","address","expires_at"],"description":"A SIWS nonce response.","title":"SiwsNonce","x-stainless-model":"client_auth.siws_nonce"},"TransferSiwsInput":{"type":"object","properties":{"nonce":{"type":"string"},"address":{"type":"string"},"walletClientType":{"type":["string","null"],"maxLength":64,"default":null},"connectorType":{"type":["string","null"],"maxLength":64,"default":null}},"required":["nonce","address"],"description":"Input for transferring a SIWS account.","title":"TransferSiwsInput","x-stainless-model":"client_auth.transfer_siws_input"},"SiwsInitRequestBody":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"],"description":"The request body for initiating a SIWS ceremony.","title":"SiwsInitRequestBody","x-stainless-model":"client_auth.siws_init_request_body"},"SiwsInitResponseBody":{"type":"object","properties":{"nonce":{"type":"string"},"address":{"type":"string"},"expires_at":{"type":"string"}},"required":["nonce","address","expires_at"],"description":"The response body for initiating a SIWS ceremony.","title":"SiwsInitResponseBody","x-stainless-model":"client_auth.siws_init_response_body"},"SiwsAuthenticateRequestBody":{"type":"object","properties":{"message":{"type":"string"},"signature":{"type":"string"},"walletClientType":{"type":["string","null"],"maxLength":64,"default":null},"connectorType":{"type":["string","null"],"maxLength":64,"default":null},"message_type":{"$ref":"#/components/schemas/SiwsMessageType"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"required":["message","signature"],"description":"The request body for authenticating a SIWS ceremony.","title":"SiwsAuthenticateRequestBody","x-stainless-model":"client_auth.siws_authenticate_request_body"},"SiwsLinkRequestBody":{"type":"object","properties":{"message":{"type":"string"},"signature":{"type":"string"},"walletClientType":{"type":["string","null"],"maxLength":64,"default":null},"connectorType":{"type":["string","null"],"maxLength":64,"default":null},"message_type":{"$ref":"#/components/schemas/SiwsMessageType"}},"required":["message","signature"],"description":"The request body for linking a SIWS ceremony.","title":"SiwsLinkRequestBody","x-stainless-model":"client_auth.siws_link_request_body"},"SiwsUnlinkRequestBody":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"],"description":"The request body for unlinking a SIWS ceremony.","title":"SiwsUnlinkRequestBody","x-stainless-model":"client_auth.siws_unlink_request_body"},"CreateLinkAuthIntentInput":{"type":"object","properties":{"email":{"type":"string","format":"email"},"environment":{"allOf":[{"$ref":"#/components/schemas/FiatOnrampEnvironment"},{"default":"production"}]}},"description":"Input for creating a Link auth intent to initiate Stripe onramp authentication.","title":"CreateLinkAuthIntentInput","x-stainless-model":"onramps.create_link_auth_intent_input"},"LinkAuthIntentCreated":{"type":"object","properties":{"status":{"type":"string","enum":["created"]},"id":{"type":"string","description":"The Link auth intent ID."}},"required":["status","id"],"description":"Auth intent created. Pass id to authenticate().","title":"LinkAuthIntentCreated","x-stainless-model":"onramps.link_auth_intent_created"},"LinkAuthIntentNoAccount":{"type":"object","properties":{"status":{"type":"string","enum":["no_account"]}},"required":["status"],"description":"No Link account for this email. Call registerLinkUser() then retry.","title":"LinkAuthIntentNoAccount","x-stainless-model":"onramps.link_auth_intent_no_account"},"CreateLinkAuthIntentResponse":{"type":"object","properties":{"data":{"oneOf":[{"$ref":"#/components/schemas/LinkAuthIntentCreated"},{"$ref":"#/components/schemas/LinkAuthIntentNoAccount"}],"discriminator":{"propertyName":"status","mapping":{"created":"#/components/schemas/LinkAuthIntentCreated","no_account":"#/components/schemas/LinkAuthIntentNoAccount"}}}},"required":["data"],"description":"The created Link auth intent.","title":"CreateLinkAuthIntentResponse","x-stainless-model":"onramps.create_link_auth_intent_response"},"StripeVerification":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string"}},"required":["name","status"],"description":"A verification entry on a CryptoCustomer.","title":"StripeVerification","x-stainless-model":"onramps.stripe_verification"},"StripeOnrampSessionStatus":{"type":"string","enum":["active","expired","none"],"description":"The state of the user's Stripe onramp session.","title":"StripeOnrampSessionStatus","x-stainless-model":"onramps.stripe_onramp_session_status"},"StripeKycTier":{"type":"object","properties":{"tier":{"type":"string"},"verification_status":{"type":"string"},"verification_errors":{"type":"array","items":{"type":"string"}}},"required":["tier","verification_status"],"description":"A KYC tier with its verification status.","title":"StripeKycTier","x-stainless-model":"onramps.stripe_kyc_tier"},"StripeKycRegion":{"type":"string","enum":["us","eu"],"description":"Region derived from a Stripe user's country of residence.","title":"StripeKycRegion","x-stainless-model":"onramps.stripe_kyc_region"},"StripeCryptoCustomerActive":{"type":"object","properties":{"status":{"type":"string","enum":["active"]},"crypto_customer_id":{"type":"string"},"verifications":{"type":"array","items":{"$ref":"#/components/schemas/StripeVerification"}},"kyc_tiers":{"type":"array","items":{"$ref":"#/components/schemas/StripeKycTier"}},"provided_fields":{"type":"array","items":{"type":"string"}},"kyc_region":{"anyOf":[{"$ref":"#/components/schemas/StripeKycRegion"},{"type":"null"}]}},"required":["status","crypto_customer_id","verifications","kyc_tiers","provided_fields","kyc_region"],"description":"Active onramp session with customer verifications.","title":"StripeCryptoCustomerActive","x-stainless-model":"onramps.stripe_crypto_customer_active"},"StripeCryptoCustomerExpired":{"type":"object","properties":{"status":{"type":"string","enum":["expired"]},"crypto_customer_id":{"type":"string"}},"required":["status","crypto_customer_id"],"description":"Expired onramp session. Token refresh failed, re-authentication required.","title":"StripeCryptoCustomerExpired","x-stainless-model":"onramps.stripe_crypto_customer_expired"},"StripeCryptoCustomerNone":{"type":"object","properties":{"status":{"type":"string","enum":["none"]}},"required":["status"],"description":"No onramp session. User must authenticate via Link.","title":"StripeCryptoCustomerNone","x-stainless-model":"onramps.stripe_crypto_customer_none"},"GetStripeCryptoCustomerResponse":{"type":"object","properties":{"data":{"oneOf":[{"$ref":"#/components/schemas/StripeCryptoCustomerActive"},{"$ref":"#/components/schemas/StripeCryptoCustomerExpired"},{"$ref":"#/components/schemas/StripeCryptoCustomerNone"}],"discriminator":{"propertyName":"status","mapping":{"active":"#/components/schemas/StripeCryptoCustomerActive","expired":"#/components/schemas/StripeCryptoCustomerExpired","none":"#/components/schemas/StripeCryptoCustomerNone"}}}},"required":["data"],"description":"Stripe onramp session status and customer verification info.","title":"GetStripeCryptoCustomerResponse","x-stainless-model":"onramps.get_stripe_crypto_customer_response"},"ExchangeStripeTokensInput":{"type":"object","properties":{"auth_intent_id":{"type":"string","minLength":1},"crypto_customer_id":{"type":"string","minLength":1},"environment":{"allOf":[{"$ref":"#/components/schemas/FiatOnrampEnvironment"},{"default":"production"}]}},"required":["auth_intent_id","crypto_customer_id"],"description":"Input for exchanging a Link auth intent for OAuth tokens.","title":"ExchangeStripeTokensInput","x-stainless-model":"onramps.exchange_stripe_tokens_input"},"ExchangeStripeTokensResponse":{"type":"object","properties":{"crypto_customer_id":{"type":"string"}},"required":["crypto_customer_id"],"description":"Confirmation that tokens were exchanged and stored.","title":"ExchangeStripeTokensResponse","x-stainless-model":"onramps.exchange_stripe_tokens_response"},"StripeConsumerWallet":{"type":"object","properties":{"id":{"type":"string"},"wallet_address":{"type":"string"},"network":{"type":"string"}},"required":["id","wallet_address","network"],"description":"A registered consumer wallet.","title":"StripeConsumerWallet","x-stainless-model":"onramps.stripe_consumer_wallet"},"ListStripeConsumerWalletsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/StripeConsumerWallet"}}},"required":["data"],"description":"List of registered wallets for a crypto customer.","title":"ListStripeConsumerWalletsResponse","x-stainless-model":"onramps.list_stripe_consumer_wallets_response"},"StripePaymentToken":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"description":"A saved payment token.","title":"StripePaymentToken","x-stainless-model":"onramps.stripe_payment_token"},"ListStripePaymentTokensResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/StripePaymentToken"}}},"required":["data"],"description":"List of payment tokens for a crypto customer.","title":"ListStripePaymentTokensResponse","x-stainless-model":"onramps.list_stripe_payment_tokens_response"},"OnrampSessionParams":{"type":"object","properties":{"crypto_customer_id":{"type":"string","minLength":1},"payment_token":{"type":"string","minLength":1},"source_amount":{"type":"string","minLength":1},"source_currency":{"$ref":"#/components/schemas/FiatCurrencyCode"},"destination_currency":{"$ref":"#/components/schemas/TokenIdentifier"},"destination_network":{"type":"string","minLength":1},"wallet_address":{"type":"string","minLength":32,"maxLength":44,"pattern":"^[0-9a-zA-Zx]+$"}},"required":["crypto_customer_id","payment_token","source_amount","source_currency","destination_currency","destination_network","wallet_address"],"description":"Parameters for creating a Stripe onramp session.","title":"OnrampSessionParams","x-stainless-model":"onramps.onramp_session_params"},"CreateStripeOnrampSessionInput":{"type":"object","properties":{"session_id":{"type":"string","minLength":1},"environment":{"$ref":"#/components/schemas/FiatOnrampEnvironment"},"session":{"$ref":"#/components/schemas/OnrampSessionParams"}},"required":["session_id","environment","session"],"description":"Input for creating a Stripe onramp session.","title":"CreateStripeOnrampSessionInput","x-stainless-model":"onramps.create_stripe_onramp_session_input"},"OnrampSessionTransactionDetails":{"type":"object","properties":{"destination_amount":{"type":["string","null"]},"destination_currency":{"type":["string","null"]},"destination_network":{"type":["string","null"]},"fee":{"type":["string","null"]},"source_total_amount":{"type":["string","null"]},"source_currency":{"type":["string","null"]},"quote_expiration":{"type":["number","null"]}},"required":["destination_amount","destination_currency","destination_network","fee","source_total_amount","source_currency"],"description":"Transaction details returned from a Stripe onramp session.","title":"OnrampSessionTransactionDetails","example":{"destination_amount":"100","destination_currency":"usdc","destination_network":"base","fee":"4.21","source_total_amount":"104.21","source_currency":"usd"},"x-stainless-model":"onramps.onramp_session_transaction_details"},"CreateStripeOnrampSessionResponse":{"type":"object","properties":{"id":{"type":"string"},"session_id":{"type":"string"},"transaction_details":{"anyOf":[{"$ref":"#/components/schemas/OnrampSessionTransactionDetails"},{"type":"null"}]}},"required":["id","session_id"],"description":"The created onramp session.","title":"CreateStripeOnrampSessionResponse","example":{"id":"cos_1NamBL2eZvKYlo2CP38sZVEW","session_id":"sess_abc123","transaction_details":{"destination_amount":"100","destination_currency":"usdc","destination_network":"base","fee":"4.21","source_total_amount":"104.21","source_currency":"usd"}},"x-stainless-model":"onramps.create_stripe_onramp_session_response"},"RefreshStripeQuoteResponse":{"type":"object","properties":{"source_total_amount":{"type":["string","null"]},"fee":{"type":["string","null"]},"destination_amount":{"type":["string","null"]},"quote_expiration":{"type":["number","null"]}},"required":["source_total_amount","fee","destination_amount","quote_expiration"],"description":"Refreshed quote with amounts, fee, and expiry.","title":"RefreshStripeQuoteResponse","x-stainless-model":"onramps.refresh_stripe_quote_response"},"StripeTransactionDetails":{"type":"object","properties":{"last_error":{"type":["string","null"]}},"description":"Transaction details from checkout.","title":"StripeTransactionDetails","x-stainless-model":"onramps.stripe_transaction_details"},"StripeOnrampCheckoutResponse":{"type":"object","properties":{"client_secret":{"type":"string"},"transaction_details":{"$ref":"#/components/schemas/StripeTransactionDetails"}},"required":["client_secret"],"description":"Checkout confirmation with client secret.","title":"StripeOnrampCheckoutResponse","x-stainless-model":"onramps.stripe_onramp_checkout_response"},"TelegramAuthResult":{"type":"object","properties":{"id":{"type":["number","null"]},"first_name":{"type":"string"},"auth_date":{"type":["number","null"]},"hash":{"type":"string"},"username":{"type":"string"},"last_name":{"type":"string"},"photo_url":{"type":"string"}},"required":["id","first_name","auth_date","hash"],"description":"Auth result object returned by Telegram when a user authenticates using the login widget.","title":"TelegramAuthResult","x-stainless-model":"client_auth.telegram_auth_result"},"TelegramWebAppData":{"type":"object","properties":{"query_id":{"type":"string"},"auth_date":{"type":["number","null"]},"hash":{"type":"string"},"user":{"type":"string"},"chat_instance":{"type":"string"},"chat_type":{"type":"string"},"start_param":{"type":"string"},"signature":{"type":"string"}},"required":["auth_date","hash","user"],"description":"Auth result object returned by Telegram when a user authenticates using a mini app.","title":"TelegramWebAppData","x-stainless-model":"client_auth.telegram_web_app_data"},"TelegramAuthenticateInput":{"type":"object","properties":{"captcha_token":{"type":"string"},"telegram_auth_result":{"$ref":"#/components/schemas/TelegramAuthResult"},"telegram_web_app_data":{"$ref":"#/components/schemas/TelegramWebAppData"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"description":"Input for authenticating with Telegram.","title":"TelegramAuthenticateInput","x-stainless-model":"client_auth.telegram_authenticate_input"},"TelegramUnlinkInput":{"type":"object","properties":{"telegram_user_id":{"type":"string"}},"required":["telegram_user_id"],"description":"Input for unlinking a Telegram account.","title":"TelegramUnlinkInput","x-stainless-model":"client_auth.telegram_unlink_input"},"TransferTelegramInput":{"type":"object","properties":{"nonce":{"type":"string"},"telegram_auth_result":{"$ref":"#/components/schemas/TelegramAuthResult"},"telegram_web_app_data":{"$ref":"#/components/schemas/TelegramWebAppData"}},"required":["nonce"],"description":"Input for transferring a Telegram account.","title":"TransferTelegramInput","x-stainless-model":"client_auth.transfer_telegram_input"},"TelegramAuthenticateRequestBody":{"type":"object","properties":{"captcha_token":{"type":"string"},"telegram_auth_result":{"$ref":"#/components/schemas/TelegramAuthResult"},"telegram_web_app_data":{"$ref":"#/components/schemas/TelegramWebAppData"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"description":"The request body for authenticating with Telegram.","title":"TelegramAuthenticateRequestBody","x-stainless-model":"client_auth.telegram_authenticate_request_body"},"TelegramLinkRequestBody":{"type":"object","properties":{"captcha_token":{"type":"string"},"telegram_auth_result":{"$ref":"#/components/schemas/TelegramAuthResult"},"telegram_web_app_data":{"$ref":"#/components/schemas/TelegramWebAppData"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"description":"The request body for linking a Telegram account.","title":"TelegramLinkRequestBody","x-stainless-model":"client_auth.telegram_link_request_body"},"TelegramUnlinkRequestBody":{"type":"object","properties":{"telegram_user_id":{"type":"string"}},"required":["telegram_user_id"],"description":"The request body for unlinking a Telegram account.","title":"TelegramUnlinkRequestBody","x-stainless-model":"client_auth.telegram_unlink_request_body"},"FarcasterConnectInitResponse":{"type":"object","properties":{"channel_token":{"type":"string"},"connect_uri":{"type":"string"}},"required":["channel_token","connect_uri"],"description":"Proxy for the Farcaster Connect init response as defined in FIP-11.","title":"FarcasterConnectInitResponse","x-stainless-model":"client_auth.farcaster_connect_init_response"},"FarcasterConnectStatusCompletedResponse":{"type":"object","properties":{"state":{"type":"string","enum":["completed"]},"nonce":{"type":"string"},"message":{"type":"string"},"signature":{"type":"string"},"fid":{"type":"number"},"username":{"type":"string"},"display_name":{"type":"string"},"bio":{"type":"string"},"pfp_url":{"type":"string"}},"required":["state","nonce","message","signature","fid","username","display_name","bio","pfp_url"],"description":"Proxy for the Farcaster Connect completed status response as defined in FIP-11.","title":"FarcasterConnectStatusCompletedResponse","x-stainless-model":"client_auth.farcaster_connect_status_completed_response"},"FarcasterConnectStatusPendingResponse":{"type":"object","properties":{"state":{"type":"string","enum":["pending"]},"nonce":{"type":"string"}},"required":["state","nonce"],"description":"Proxy for the Farcaster Connect pending status response as defined in FIP-11.","title":"FarcasterConnectStatusPendingResponse","x-stainless-model":"client_auth.farcaster_connect_status_pending_response"},"FarcasterAuthenticateInput":{"type":"object","properties":{"channel_token":{"type":"string"},"message":{"type":"string"},"signature":{"type":"string"},"fid":{"type":"number"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"required":["channel_token","message","signature","fid"],"description":"Input for authenticating with Farcaster.","title":"FarcasterAuthenticateInput","x-stainless-model":"client_auth.farcaster_authenticate_input"},"FarcasterLinkInput":{"type":"object","properties":{"channel_token":{"type":"string"},"message":{"type":"string"},"signature":{"type":"string"},"fid":{"type":"number"}},"required":["channel_token","message","signature","fid"],"description":"Input for linking a Farcaster account.","title":"FarcasterLinkInput","x-stainless-model":"client_auth.farcaster_link_input"},"FarcasterInitInput":{"type":"object","properties":{"token":{"type":"string"},"redirect_url":{"type":"string","format":"uri"},"relying_party":{"type":"string"}},"description":"Input for initiating a Farcaster connection.","title":"FarcasterInitInput","x-stainless-model":"client_auth.farcaster_init_input"},"FarcasterUnlinkInput":{"type":"object","properties":{"fid":{"type":"number"}},"required":["fid"],"description":"Input for unlinking a Farcaster account.","title":"FarcasterUnlinkInput","x-stainless-model":"client_auth.farcaster_unlink_input"},"TransferFarcasterInput":{"type":"object","properties":{"nonce":{"type":"string"},"farcaster_id":{"type":"string"},"farcaster_embedded_address":{"type":"string"}},"required":["nonce","farcaster_id","farcaster_embedded_address"],"description":"Input for transferring a Farcaster account.","title":"TransferFarcasterInput","x-stainless-model":"client_auth.transfer_farcaster_input"},"FarcasterV2InitInput":{"type":"object","properties":{},"description":"Input for initiating a Farcaster V2 connection.","x-stainless-empty-object":true,"title":"FarcasterV2InitInput","x-stainless-model":"client_auth.farcaster_v_2_init_input"},"FarcasterV2InitResponse":{"type":"object","properties":{"nonce":{"type":"string"},"expires_at":{"type":"string"}},"required":["nonce","expires_at"],"description":"Response for initiating a Farcaster V2 connection.","title":"FarcasterV2InitResponse","x-stainless-model":"client_auth.farcaster_v_2_init_response"},"FarcasterV2AuthenticateInput":{"type":"object","properties":{"fid":{"type":"number"},"message":{"type":"string"},"signature":{"type":"string"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"required":["fid","message","signature"],"description":"Input for authenticating a Farcaster V2 account.","title":"FarcasterV2AuthenticateInput","x-stainless-model":"client_auth.farcaster_v_2_authenticate_input"},"FarcasterAuthenticateRequestBody":{"type":"object","properties":{"channel_token":{"type":"string"},"message":{"type":"string"},"signature":{"type":"string"},"fid":{"type":"number"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"required":["channel_token","message","signature","fid"],"description":"The request body for authenticating with Farcaster.","title":"FarcasterAuthenticateRequestBody","x-stainless-model":"client_auth.farcaster_authenticate_request_body"},"FarcasterConnectStatusCompletedResponseBody":{"type":"object","properties":{"state":{"type":"string","enum":["completed"]},"nonce":{"type":"string"},"message":{"type":"string"},"signature":{"type":"string"},"fid":{"type":"number"},"username":{"type":"string"},"display_name":{"type":"string"},"bio":{"type":"string"},"pfp_url":{"type":"string"}},"required":["state","nonce","message","signature","fid","username","display_name","bio","pfp_url"],"description":"The response body for completing a Farcaster connection.","title":"FarcasterConnectStatusCompletedResponseBody","x-stainless-model":"client_auth.farcaster_connect_status_completed_response_body"},"FarcasterConnectStatusPendingResponseBody":{"type":"object","properties":{"state":{"type":"string","enum":["pending"]},"nonce":{"type":"string"}},"required":["state","nonce"],"description":"The response body for pending a Farcaster connection.","title":"FarcasterConnectStatusPendingResponseBody","x-stainless-model":"client_auth.farcaster_connect_status_pending_response_body"},"FarcasterUnlinkRequestBody":{"type":"object","properties":{"fid":{"type":"number"}},"required":["fid"],"description":"The request body for unlinking a Farcaster account.","title":"FarcasterUnlinkRequestBody","x-stainless-model":"client_auth.farcaster_unlink_request_body"},"FarcasterInitRequestBody":{"type":"object","properties":{"token":{"type":"string"},"redirect_url":{"type":"string","format":"uri"},"relying_party":{"type":"string"}},"description":"The request body for initiating a Farcaster connection.","title":"FarcasterInitRequestBody","x-stainless-model":"client_auth.farcaster_init_request_body"},"FarcasterConnectInitResponseBody":{"type":"object","properties":{"channel_token":{"type":"string"},"connect_uri":{"type":"string"}},"required":["channel_token","connect_uri"],"description":"The response body for initiating a Farcaster connection.","title":"FarcasterConnectInitResponseBody","x-stainless-model":"client_auth.farcaster_connect_init_response_body"},"FarcasterLinkRequestBody":{"type":"object","properties":{"channel_token":{"type":"string"},"message":{"type":"string"},"signature":{"type":"string"},"fid":{"type":"number"}},"required":["channel_token","message","signature","fid"],"description":"The request body for linking a Farcaster account.","title":"FarcasterLinkRequestBody","x-stainless-model":"client_auth.farcaster_link_request_body"},"FarcasterV2InitRequestBody":{"type":"object","properties":{},"description":"The request body for initiating a Farcaster V2 connection.","x-stainless-empty-object":true,"title":"FarcasterV2InitRequestBody","x-stainless-model":"client_auth.farcaster_v_2_init_request_body"},"FarcasterV2InitResponseBody":{"type":"object","properties":{"nonce":{"type":"string"},"expires_at":{"type":"string"}},"required":["nonce","expires_at"],"description":"The response body for initiating a Farcaster V2 connection.","title":"FarcasterV2InitResponseBody","x-stainless-model":"client_auth.farcaster_v_2_init_response_body"},"FarcasterV2AuthenticateRequestBody":{"type":"object","properties":{"fid":{"type":"number"},"message":{"type":"string"},"signature":{"type":"string"},"mode":{"$ref":"#/components/schemas/AuthenticateModeOption"}},"required":["fid","message","signature"],"description":"The request body for authenticating a Farcaster V2 account.","title":"FarcasterV2AuthenticateRequestBody","x-stainless-model":"client_auth.farcaster_v_2_authenticate_request_body"},"FarcasterSignerInitRequestBody":{"type":"object","properties":{"ed25519_public_key":{"type":"string"},"deadline":{"type":"string"}},"required":["ed25519_public_key"],"description":"The request body for initiating a Farcaster signer connection.","title":"FarcasterSignerInitRequestBody","x-stainless-model":"client_auth.farcaster_signer_init_request_body"},"FarcasterSignerInitPendingApproval":{"type":"object","properties":{"public_key":{"type":"string"},"status":{"type":"string","enum":["pending_approval"]},"signer_approval_url":{"type":"string"}},"required":["public_key","status","signer_approval_url"],"description":"A Farcaster signer init response when the signer is pending approval.","title":"FarcasterSignerInitPendingApproval","x-stainless-model":"client_auth.farcaster_signer_init_pending_approval"},"FarcasterSignerApproved":{"type":"object","properties":{"public_key":{"type":"string"},"status":{"type":"string","enum":["approved"]},"fid":{"type":"string"}},"required":["public_key","status","fid"],"description":"A Farcaster signer response when the signer has been approved.","title":"FarcasterSignerApproved","x-stainless-model":"client_auth.farcaster_signer_approved"},"FarcasterSignerRevoked":{"type":"object","properties":{"public_key":{"type":"string"},"status":{"type":"string","enum":["revoked"]},"fid":{"type":"string"}},"required":["public_key","status","fid"],"description":"A Farcaster signer response when the signer has been revoked.","title":"FarcasterSignerRevoked","x-stainless-model":"client_auth.farcaster_signer_revoked"},"FarcasterSignerStatusPendingApproval":{"type":"object","properties":{"public_key":{"type":"string"},"status":{"type":"string","enum":["pending_approval"]}},"required":["public_key","status"],"description":"A Farcaster signer status response when the signer is pending approval.","title":"FarcasterSignerStatusPendingApproval","x-stainless-model":"client_auth.farcaster_signer_status_pending_approval"},"FarcasterSignerInitResponseBody":{"oneOf":[{"$ref":"#/components/schemas/FarcasterSignerInitPendingApproval"},{"$ref":"#/components/schemas/FarcasterSignerApproved"},{"$ref":"#/components/schemas/FarcasterSignerRevoked"}],"discriminator":{"propertyName":"status","mapping":{"pending_approval":"#/components/schemas/FarcasterSignerInitPendingApproval","approved":"#/components/schemas/FarcasterSignerApproved","revoked":"#/components/schemas/FarcasterSignerRevoked"}},"description":"The response body from initiating a Farcaster signer connection.","title":"FarcasterSignerInitResponseBody","x-stainless-model":"client_auth.farcaster_signer_init_response_body"},"FarcasterSignerStatusResponseBody":{"oneOf":[{"$ref":"#/components/schemas/FarcasterSignerStatusPendingApproval"},{"$ref":"#/components/schemas/FarcasterSignerApproved"},{"$ref":"#/components/schemas/FarcasterSignerRevoked"}],"discriminator":{"propertyName":"status","mapping":{"pending_approval":"#/components/schemas/FarcasterSignerStatusPendingApproval","approved":"#/components/schemas/FarcasterSignerApproved","revoked":"#/components/schemas/FarcasterSignerRevoked"}},"description":"The response body from checking the status of a Farcaster signer connection.","title":"FarcasterSignerStatusResponseBody","x-stainless-model":"client_auth.farcaster_signer_status_response_body"},"OptionalRefreshTokenInput":{"type":"object","properties":{"refresh_token":{"type":"string"}},"description":"The input for refreshing a session or logging out.","title":"OptionalRefreshTokenInput","x-stainless-model":"client_auth.optional_refresh_token_input"},"MfaVerifyResponseBody":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"],"additionalProperties":false,"description":"The response body for verifying a MFA code.","title":"MfaVerifyResponseBody","x-stainless-model":"client_auth.mfa_verify_response_body"},"MfaSmsInitVerifyInput":{"type":"object","properties":{"action":{"type":"string","enum":["verify"]}},"required":["action"],"additionalProperties":false,"description":"Input for verifying SMS MFA.","title":"MfaSmsInitVerifyInput","x-stainless-model":"client_auth.mfa_sms_init_verify_input"},"MfaSmsInitEnrollInput":{"type":"object","properties":{"action":{"type":"string","enum":["enroll"]},"phoneNumber":{"type":"string"}},"required":["action","phoneNumber"],"additionalProperties":false,"description":"Input for enrolling SMS MFA.","title":"MfaSmsInitEnrollInput","x-stainless-model":"client_auth.mfa_sms_init_enroll_input"},"MfaSmsInitRequestBody":{"anyOf":[{"$ref":"#/components/schemas/MfaSmsInitVerifyInput"},{"$ref":"#/components/schemas/MfaSmsInitEnrollInput"}],"description":"The request body for initiating a SMS MFA flow.","title":"MfaSmsInitRequestBody","x-stainless-model":"client_auth.mfa_sms_init_request_body"},"MfaSmsEnrollRequestBody":{"type":"object","properties":{"code":{"type":"string","minLength":6,"maxLength":6},"phoneNumber":{"type":"string"}},"required":["code","phoneNumber"],"additionalProperties":false,"description":"The request body for enrolling a SMS MFA code.","title":"MfaSmsEnrollRequestBody","x-stainless-model":"client_auth.mfa_sms_enroll_request_body"},"MfaSmsVerifyRequestBody":{"type":"object","properties":{"code":{"type":"string","minLength":6,"maxLength":6}},"required":["code"],"additionalProperties":false,"description":"The request body for verifying a SMS MFA code.","title":"MfaSmsVerifyRequestBody","x-stainless-model":"client_auth.mfa_sms_verify_request_body"},"MfaTotpInput":{"type":"object","properties":{"code":{"type":"string","minLength":6,"maxLength":6}},"required":["code"],"additionalProperties":false,"description":"The input for verifying a TOTP MFA code.","title":"MfaTotpInput","x-stainless-model":"client_auth.mfa_totp_input"},"MfaTotpInitResponseBody":{"type":"object","properties":{"totpSecret":{"type":"string"},"totpAuthUrl":{"type":"string"}},"required":["totpSecret","totpAuthUrl"],"additionalProperties":false,"description":"The response body for initializing a TOTP MFA code.","title":"MfaTotpInitResponseBody","x-stainless-model":"client_auth.mfa_totp_init_response_body"},"MfaPasskeyInitRequestBody":{"type":"object","properties":{"relying_party":{"type":"string","format":"uri"}},"additionalProperties":false,"description":"The request body for initiating a passkey MFA flow.","title":"MfaPasskeyInitRequestBody","x-stainless-model":"client_auth.mfa_passkey_init_request_body"},"MfaPasskeyInitResponseBody":{"type":"object","properties":{"relying_party":{"type":"string","format":"uri"},"options":{"$ref":"#/components/schemas/PasskeyAuthenticatorVerifyOptions"}},"required":["options"],"additionalProperties":false,"description":"The response body for initializing a passkey MFA flow.","title":"MfaPasskeyInitResponseBody","x-stainless-model":"client_auth.mfa_passkey_init_response_body"},"MfaPasskeyVerifyRequestBody":{"type":"object","properties":{"authenticator_response":{"$ref":"#/components/schemas/PasskeyAuthenticatorVerifyResponse"},"relying_party":{"type":"string","format":"uri"}},"required":["authenticator_response"],"additionalProperties":false,"description":"The request body for verifying a passkey MFA flow.","title":"MfaPasskeyVerifyRequestBody","x-stainless-model":"client_auth.mfa_passkey_verify_request_body"},"MfaPasskeyEnrollmentRequestBody":{"type":"object","properties":{"credential_ids":{"type":"array","items":{"type":"string"}},"remove_for_login":{"type":"boolean","default":true}},"required":["credential_ids"],"description":"The request body for enrolling a passkey MFA flow.","title":"MfaPasskeyEnrollmentRequestBody","x-stainless-model":"client_auth.mfa_passkey_enrollment_request_body"},"CoinbaseBlockchain":{"type":"string","enum":["ethereum","bitcoin","base","avacchain","optimism","solana","polygon","arbitrum","stellar","monad"],"description":"A blockchain supported by Coinbase on-ramp.","title":"CoinbaseBlockchain","x-stainless-model":"funding.coinbase_blockchain"},"CoinbaseEthereumAsset":{"type":"string","enum":["eth","ETH","USDC","POL","MON"],"description":"An Ethereum asset supported by Coinbase on-ramp.","title":"CoinbaseEthereumAsset","x-stainless-model":"funding.coinbase_ethereum_asset"},"CoinbaseSolanaAsset":{"type":"string","enum":["SOL","USDC"],"description":"A Solana asset supported by Coinbase on-ramp.","title":"CoinbaseSolanaAsset","x-stainless-model":"funding.coinbase_solana_asset"},"CoinbaseOnRampEthereumAddress":{"type":"object","properties":{"address":{"type":"string"},"blockchains":{"type":"array","items":{"$ref":"#/components/schemas/CoinbaseBlockchain"}}},"required":["address","blockchains"],"description":"An Ethereum address with supported blockchains for Coinbase on-ramp.","title":"CoinbaseOnRampEthereumAddress","x-stainless-model":"funding.coinbase_on_ramp_ethereum_address"},"CoinbaseOnRampSolanaAddress":{"type":"object","properties":{"address":{"type":"string"},"blockchains":{"type":"array","items":{"$ref":"#/components/schemas/CoinbaseBlockchain"}}},"required":["address","blockchains"],"description":"A Solana address with supported blockchains for Coinbase on-ramp.","title":"CoinbaseOnRampSolanaAddress","x-stainless-model":"funding.coinbase_on_ramp_solana_address"},"CoinbaseOnRampInitEthereumInput":{"type":"object","properties":{"addresses":{"type":"array","items":{"$ref":"#/components/schemas/CoinbaseOnRampEthereumAddress"},"minItems":1,"maxItems":1},"assets":{"type":"array","items":{"$ref":"#/components/schemas/CoinbaseEthereumAsset"}}},"required":["addresses"],"description":"Input for initializing a Coinbase on-ramp session for Ethereum.","title":"CoinbaseOnRampInitEthereumInput","x-stainless-model":"funding.coinbase_on_ramp_init_ethereum_input"},"CoinbaseOnRampInitSolanaInput":{"type":"object","properties":{"addresses":{"type":"array","items":{"$ref":"#/components/schemas/CoinbaseOnRampSolanaAddress"},"minItems":1,"maxItems":1},"assets":{"type":"array","items":{"$ref":"#/components/schemas/CoinbaseSolanaAsset"}}},"required":["addresses"],"description":"Input for initializing a Coinbase on-ramp session for Solana.","title":"CoinbaseOnRampInitSolanaInput","x-stainless-model":"funding.coinbase_on_ramp_init_solana_input"},"CoinbaseOnRampInitInput":{"anyOf":[{"$ref":"#/components/schemas/CoinbaseOnRampInitEthereumInput"},{"$ref":"#/components/schemas/CoinbaseOnRampInitSolanaInput"}],"description":"The input for initializing a Coinbase on-ramp session.","title":"CoinbaseOnRampInitInput","x-stainless-model":"funding.coinbase_on_ramp_init_input"},"CoinbaseOnRampInitResponse":{"type":"object","properties":{"app_id":{"type":"string"},"session_token":{"type":"string"},"channel_id":{"type":"string"},"partner_user_id":{"type":"string"}},"required":["app_id","session_token","channel_id","partner_user_id"],"description":"The response from initializing a Coinbase on-ramp session.","title":"CoinbaseOnRampInitResponse","x-stainless-model":"funding.coinbase_on_ramp_init_response"},"CoinbaseOnRampStatus":{"type":"string","enum":["pending","success","failure"],"description":"Status of a Coinbase on-ramp session.","title":"CoinbaseOnRampStatus","x-stainless-model":"funding.coinbase_on_ramp_status"},"CoinbaseOnRampStatusResponse":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/CoinbaseOnRampStatus"}},"required":["status"],"description":"The response for getting the status of a Coinbase on-ramp session.","title":"CoinbaseOnRampStatusResponse","x-stainless-model":"funding.coinbase_on_ramp_status_response"},"MoonpayPaymentMethod":{"type":"string","enum":["ach_bank_transfer","credit_debit_card","gbp_bank_transfer","gbp_open_banking_payment","mobile_wallet","sepa_bank_transfer","sepa_open_banking_payment","pix_instant_payment","yellow_card_bank_transfer"],"description":"A payment method supported by Moonpay on-ramp.","title":"MoonpayPaymentMethod","x-stainless-model":"funding.moonpay_payment_method"},"MoonpayCurrencyCode":{"type":"string","enum":["AVAX_CCHAIN","CELO_CELO","CUSD_CELO","DAI_ETHEREUM","ETH_ETHEREUM","ETH_ARBITRUM","ETH_OPTIMISM","ETH_POLYGON","ETH_BASE","FIL_FVM","MATIC_ETHEREUM","MATIC_POLYGON","POL_POLYGON","POL_ETHEREUM","USDC_ETHEREUM","USDC_ARBITRUM","USDC_OPTIMISM","USDC_POLYGON","USDC_BASE","USDC_CCHAIN","USDC_SOL","USDT_ETHEREUM","USDT_POLYGON","WETH_POLYGON","WBTC_ETHEREUM","BNB_BNB","BNB_BSC","MON_MON","CELO","CUSD","DAI","ETH","FIL","MATIC","USDC","USDT","WETH","WBTC"],"description":"A Moonpay currency code for an Ethereum-compatible chain asset.","title":"MoonpayCurrencyCode","x-stainless-model":"funding.moonpay_currency_code"},"MoonpayUiTheme":{"type":"string","enum":["light","dark"],"description":"The theme for the Moonpay on-ramp widget.","title":"MoonpayUiTheme","x-stainless-model":"funding.moonpay_ui_theme"},"MoonpayUiConfig":{"type":"object","properties":{"accentColor":{"type":"string"},"theme":{"$ref":"#/components/schemas/MoonpayUiTheme"}},"description":"UI configuration for the Moonpay on-ramp widget.","title":"MoonpayUiConfig","x-stainless-model":"funding.moonpay_ui_config"},"MoonpaySolanaCurrencyCode":{"type":"string","enum":["SOL","USDC_SOL"],"description":"A Moonpay currency code for a Solana asset.","title":"MoonpaySolanaCurrencyCode","x-stainless-model":"funding.moonpay_solana_currency_code"},"MoonpayFiatOnRampEthereumConfig":{"type":"object","properties":{"quoteCurrencyAmount":{"type":"number"},"email":{"type":"string","format":"email"},"paymentMethod":{"$ref":"#/components/schemas/MoonpayPaymentMethod"},"uiConfig":{"$ref":"#/components/schemas/MoonpayUiConfig"},"currencyCode":{"$ref":"#/components/schemas/MoonpayCurrencyCode"}},"description":"Configuration for a Moonpay fiat on-ramp for an Ethereum-compatible chain.","title":"MoonpayFiatOnRampEthereumConfig","x-stainless-model":"funding.moonpay_fiat_on_ramp_ethereum_config"},"MoonpayFiatOnRampSolanaConfig":{"type":"object","properties":{"quoteCurrencyAmount":{"type":"number"},"email":{"type":"string","format":"email"},"paymentMethod":{"$ref":"#/components/schemas/MoonpayPaymentMethod"},"uiConfig":{"$ref":"#/components/schemas/MoonpayUiConfig"},"currencyCode":{"$ref":"#/components/schemas/MoonpaySolanaCurrencyCode"}},"description":"Configuration for a Moonpay fiat on-ramp for Solana.","title":"MoonpayFiatOnRampSolanaConfig","x-stainless-model":"funding.moonpay_fiat_on_ramp_solana_config"},"MoonpayFiatOnRampEthereumInput":{"type":"object","properties":{"address":{"type":"string"},"config":{"$ref":"#/components/schemas/MoonpayFiatOnRampEthereumConfig"}},"required":["address","config"],"description":"Input for a Moonpay fiat on-ramp for an Ethereum-compatible chain.","title":"MoonpayFiatOnRampEthereumInput","x-stainless-model":"funding.moonpay_fiat_on_ramp_ethereum_input"},"MoonpayFiatOnRampSolanaInput":{"type":"object","properties":{"address":{"type":"string"},"config":{"$ref":"#/components/schemas/MoonpayFiatOnRampSolanaConfig"}},"required":["address","config"],"description":"Input for a Moonpay fiat on-ramp for Solana.","title":"MoonpayFiatOnRampSolanaInput","x-stainless-model":"funding.moonpay_fiat_on_ramp_solana_input"},"MoonpayOnRampSandboxConfig":{"type":"object","properties":{"useSandbox":{"type":"boolean","default":false}},"description":"Sandbox configuration for a Moonpay on-ramp.","title":"MoonpayOnRampSandboxConfig","x-stainless-model":"funding.moonpay_on_ramp_sandbox_config"},"MoonpayOnRampSignInput":{"allOf":[{"anyOf":[{"$ref":"#/components/schemas/MoonpayFiatOnRampEthereumInput"},{"$ref":"#/components/schemas/MoonpayFiatOnRampSolanaInput"}]},{"$ref":"#/components/schemas/MoonpayOnRampSandboxConfig"}],"description":"The input for signing a Moonpay on-ramp.","title":"MoonpayOnRampSignInput","x-stainless-model":"funding.moonpay_on_ramp_sign_input"},"MoonpayOnRampSignResponse":{"type":"object","properties":{"signedUrl":{"type":"string"},"externalTransactionId":{"type":"string"}},"required":["signedUrl","externalTransactionId"],"description":"The response from signing a Moonpay on-ramp.","title":"MoonpayOnRampSignResponse","x-stainless-model":"funding.moonpay_on_ramp_sign_response"},"PolicyAction":{"type":"string","enum":["ALLOW","DENY"],"description":"The action to take when a policy rule matches.","title":"PolicyAction","x-stainless-model":"policies.policy_action"},"SuiCommandName":{"type":"string","enum":["TransferObjects","SplitCoins","MergeCoins"],"description":"SUI transaction commands allowlist for raw_sign endpoint policy evaluation","title":"SuiCommandName","x-stainless-model":"wallets.sui_command_name"},"AbiParameter":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"components":{"type":"array","items":{"type":"object","description":"Nested recursive array of AbiParameter objects.","additionalProperties":true}},"indexed":{"type":"boolean"},"internalType":{"type":"string"}},"required":["type"],"description":"A parameter in a Solidity ABI function or event definition.","title":"AbiParameter","x-stainless-model":"policies.abi_parameter"},"AbiSchema":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["function","constructor","event","fallback","receive"]},"name":{"type":"string"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/AbiParameter"}},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/AbiParameter"}},"stateMutability":{"type":"string","enum":["pure","view","nonpayable","payable"]},"anonymous":{"type":"boolean"}},"required":["type"]},"maxItems":200,"description":"A Solidity ABI definition for decoding smart contract calldata.","title":"AbiSchema","x-stainless-model":"policies.abi_schema"},"ConditionOperator":{"type":"string","enum":["eq","gt","gte","lt","lte","in","in_condition_set","contains","starts_with","ends_with"],"description":"Operator to use for policy conditions.","title":"ConditionOperator","x-stainless-model":"policies.condition_operator"},"ConditionValue":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Value to compare against in a policy condition. Can be a single string or an array of strings.","title":"ConditionValue","x-stainless-model":"policies.condition_value"},"SuiTransactionCommandOperator":{"anyOf":[{"type":"string","enum":["eq"]},{"type":"string","enum":["in"]}],"description":"Operator to use for SUI transaction command conditions. Only 'eq' and 'in' are supported for command names.","title":"SuiTransactionCommandOperator","x-stainless-model":"policies.sui_transaction_command_operator"},"SuiTransferObjectsCommandField":{"type":"string","enum":["recipient","amount"],"description":"Supported fields for SUI TransferObjects command conditions. Only 'recipient' and 'amount' are supported.","title":"SuiTransferObjectsCommandField","x-stainless-model":"policies.sui_transfer_objects_command_field"},"EthereumTransactionCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["ethereum_transaction"]},"field":{"type":"string","enum":["to","value","chain_id"],"title":"EthereumTransactionConditionField"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"The verbatim Ethereum transaction object in an eth_signTransaction or eth_sendTransaction request.","title":"EthereumTransactionCondition","x-stainless-model":"policies.ethereum_transaction_condition"},"TempoTransactionConditionField":{"type":"string","enum":["fee_token","fee_payer_signature","nonce_key","valid_before","valid_after"],"description":"Tempo (type 118) transaction-level fields that can be referenced in a policy condition.","title":"TempoTransactionConditionField","x-stainless-model":"policies.tempo_transaction_condition_field"},"TempoTransactionCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["tempo_transaction"]},"field":{"$ref":"#/components/schemas/TempoTransactionConditionField"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"A Tempo (type 118) transaction-level field. Evaluated once per transaction (not per call).","title":"TempoTransactionCondition","x-stainless-model":"policies.tempo_transaction_condition"},"EthereumCalldataCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["ethereum_calldata"]},"field":{"type":"string","title":"EthereumCalldataConditionField"},"abi":{"$ref":"#/components/schemas/AbiSchema"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","abi","operator","value"],"description":"The decoded calldata in a smart contract interaction as the smart contract method's parameters. Note that 'ethereum_calldata' conditions must contain an abi parameter with the JSON ABI of the smart contract.","title":"EthereumCalldataCondition","x-stainless-model":"policies.ethereum_calldata_condition"},"EthereumTypedDataDomainCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["ethereum_typed_data_domain"]},"field":{"type":"string","enum":["chainId","verifyingContract","chain_id","verifying_contract"],"title":"EthereumTypedDataDomainConditionField"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"Attributes from the signing domain that will verify the signature.","title":"EthereumTypedDataDomainCondition","x-stainless-model":"policies.ethereum_typed_data_domain_condition"},"TypedDataInput":{"type":"object","properties":{"types":{"$ref":"#/components/schemas/TypedDataTypesInputParams"},"primary_type":{"type":"string"}},"required":["types","primary_type"],"description":"The typed data structure containing EIP-712 types and the primary type for typed data message policy conditions.","title":"TypedDataInput","x-stainless-model":"policies.typed_data_input"},"EthereumTypedDataMessageCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["ethereum_typed_data_message"]},"field":{"type":"string","title":"EthereumTypedDataMessageConditionField"},"typed_data":{"$ref":"#/components/schemas/TypedDataInput"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","typed_data","operator","value"],"description":"'types' and 'primary_type' attributes of the TypedData JSON object defined in EIP-712.","title":"EthereumTypedDataMessageCondition","x-stainless-model":"policies.ethereum_typed_data_message_condition"},"Ethereum7702AuthorizationCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["ethereum_7702_authorization"]},"field":{"type":"string","enum":["contract"],"title":"Ethereum7702AuthorizationConditionField"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"Allowed contract addresses for eth_sign7702Authorization requests.","title":"Ethereum7702AuthorizationCondition","x-stainless-model":"policies.ethereum_7702_authorization_condition"},"SolanaProgramInstructionCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["solana_program_instruction"]},"field":{"type":"string","enum":["programId"],"title":"SolanaProgramInstructionConditionField"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"Solana Program attributes, enables allowlisting Solana Programs.","title":"SolanaProgramInstructionCondition","x-stainless-model":"policies.solana_program_instruction_condition"},"SolanaSystemProgramInstructionCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["solana_system_program_instruction"]},"field":{"type":"string","enum":["instructionName","Transfer.from","Transfer.to","Transfer.lamports"],"title":"SolanaSystemProgramInstructionConditionField"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"Solana System Program attributes, including more granular Transfer instruction fields.","title":"SolanaSystemProgramInstructionCondition","x-stainless-model":"policies.solana_system_program_instruction_condition"},"SolanaTokenProgramInstructionCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["solana_token_program_instruction"]},"field":{"type":"string","enum":["instructionName","Transfer.source","Transfer.destination","Transfer.authority","Transfer.amount","TransferChecked.source","TransferChecked.destination","TransferChecked.authority","TransferChecked.amount","TransferChecked.mint","Burn.account","Burn.mint","Burn.authority","Burn.amount","MintTo.mint","MintTo.account","MintTo.authority","MintTo.amount","CloseAccount.account","CloseAccount.destination","CloseAccount.authority","InitializeAccount3.account","InitializeAccount3.mint","InitializeAccount3.owner"],"title":"SolanaTokenProgramInstructionConditionField"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"Solana Token Program attributes, including more granular TransferChecked instruction fields.","title":"SolanaTokenProgramInstructionCondition","x-stainless-model":"policies.solana_token_program_instruction_condition"},"SystemCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["system"]},"field":{"type":"string","enum":["current_unix_timestamp"]},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"System attributes, including current unix timestamp (in seconds).","title":"SystemCondition","x-stainless-model":"policies.system_condition"},"TronTransactionCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["tron_transaction"]},"field":{"type":"string","enum":["TransferContract.to_address","TransferContract.amount","TriggerSmartContract.contract_address","TriggerSmartContract.call_value","TriggerSmartContract.token_id","TriggerSmartContract.call_token_value"],"description":"Supported TRON transaction fields in format \"TransactionType.field_name\"","title":"TronTransactionConditionField"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"TRON transaction fields for TransferContract and TriggerSmartContract transaction types.","title":"TronTransactionCondition","x-stainless-model":"policies.tron_transaction_condition"},"TronCalldataCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["tron_trigger_smart_contract_data"]},"field":{"type":"string","title":"TronCalldataConditionField"},"abi":{"$ref":"#/components/schemas/AbiSchema"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","abi","operator","value"],"description":"Decoded calldata from a TRON TriggerSmartContract interaction.","title":"TronCalldataCondition","x-stainless-model":"policies.tron_calldata_condition"},"SuiTransactionCommandCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["sui_transaction_command"]},"field":{"type":"string","enum":["commandName"],"title":"SuiTransactionCommandConditionField"},"operator":{"$ref":"#/components/schemas/SuiTransactionCommandOperator"},"value":{"anyOf":[{"$ref":"#/components/schemas/SuiCommandName"},{"type":"array","items":{"$ref":"#/components/schemas/SuiCommandName"}}],"description":"Command name(s) to match. Must be one of: 'TransferObjects', 'SplitCoins', 'MergeCoins'"}},"required":["field_source","field","operator","value"],"additionalProperties":false,"description":"SUI transaction command attributes, enables allowlisting specific command types. Allowed commands: 'TransferObjects', 'SplitCoins', 'MergeCoins'. Only 'eq' and 'in' operators are supported.","title":"SuiTransactionCommandCondition","x-stainless-model":"policies.sui_transaction_command_condition"},"SuiTransferObjectsCommandCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["sui_transfer_objects_command"]},"field":{"$ref":"#/components/schemas/SuiTransferObjectsCommandField"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"SUI TransferObjects command attributes, including recipient and amount fields.","title":"SuiTransferObjectsCommandCondition","x-stainless-model":"policies.sui_transfer_objects_command_condition"},"MessageSigningField":{"type":"string","enum":["content","byte_length"],"description":"Supported fields for message signing conditions.","title":"MessageSigningField","example":"content","x-stainless-model":"policies.message_signing_field"},"MessageSigningCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["message"]},"field":{"$ref":"#/components/schemas/MessageSigningField"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"Condition on the message being signed (e.g. in personal_sign).","title":"MessageSigningCondition","x-stainless-model":"policies.message_signing_condition"},"ActionRequestBodyCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["action_request_body"]},"field":{"type":"string","title":"ActionRequestBodyConditionField"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"Condition on the original wallet action API request body fields.","title":"ActionRequestBodyCondition","x-stainless-model":"policies.action_request_body_condition"},"AggregationCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["reference"]},"field":{"type":"string","pattern":"^aggregation\\.","title":"AggregationConditionField"},"operator":{"$ref":"#/components/schemas/ConditionOperator"},"value":{"$ref":"#/components/schemas/ConditionValue"}},"required":["field_source","field","operator","value"],"description":"Condition referencing an aggregation value. The field must start with \"aggregation.\" followed by the aggregation ID.","title":"AggregationCondition","x-stainless-model":"policies.aggregation_condition"},"PolicyCondition":{"oneOf":[{"$ref":"#/components/schemas/EthereumTransactionCondition"},{"$ref":"#/components/schemas/EthereumCalldataCondition"},{"$ref":"#/components/schemas/EthereumTypedDataDomainCondition"},{"$ref":"#/components/schemas/EthereumTypedDataMessageCondition"},{"$ref":"#/components/schemas/Ethereum7702AuthorizationCondition"},{"$ref":"#/components/schemas/TempoTransactionCondition"},{"$ref":"#/components/schemas/SolanaProgramInstructionCondition"},{"$ref":"#/components/schemas/SolanaSystemProgramInstructionCondition"},{"$ref":"#/components/schemas/SolanaTokenProgramInstructionCondition"},{"$ref":"#/components/schemas/SystemCondition"},{"$ref":"#/components/schemas/TronTransactionCondition"},{"$ref":"#/components/schemas/TronCalldataCondition"},{"$ref":"#/components/schemas/SuiTransactionCommandCondition"},{"$ref":"#/components/schemas/SuiTransferObjectsCommandCondition"},{"$ref":"#/components/schemas/ActionRequestBodyCondition"},{"$ref":"#/components/schemas/AggregationCondition"},{"$ref":"#/components/schemas/MessageSigningCondition"}],"discriminator":{"propertyName":"field_source","mapping":{"ethereum_transaction":"#/components/schemas/EthereumTransactionCondition","ethereum_calldata":"#/components/schemas/EthereumCalldataCondition","ethereum_typed_data_domain":"#/components/schemas/EthereumTypedDataDomainCondition","ethereum_typed_data_message":"#/components/schemas/EthereumTypedDataMessageCondition","ethereum_7702_authorization":"#/components/schemas/Ethereum7702AuthorizationCondition","tempo_transaction":"#/components/schemas/TempoTransactionCondition","solana_program_instruction":"#/components/schemas/SolanaProgramInstructionCondition","solana_system_program_instruction":"#/components/schemas/SolanaSystemProgramInstructionCondition","solana_token_program_instruction":"#/components/schemas/SolanaTokenProgramInstructionCondition","system":"#/components/schemas/SystemCondition","tron_transaction":"#/components/schemas/TronTransactionCondition","tron_trigger_smart_contract_data":"#/components/schemas/TronCalldataCondition","sui_transaction_command":"#/components/schemas/SuiTransactionCommandCondition","sui_transfer_objects_command":"#/components/schemas/SuiTransferObjectsCommandCondition","action_request_body":"#/components/schemas/ActionRequestBodyCondition","reference":"#/components/schemas/AggregationCondition","message":"#/components/schemas/MessageSigningCondition"}},"description":"A condition that must be true for the rule action to be applied.","title":"PolicyCondition","x-stainless-model":"policies.policy_condition"},"PolicyMethod":{"type":"string","enum":["eth_sendTransaction","eth_signTransaction","eth_signUserOperation","eth_signTypedData_v4","personal_sign","eth_sign7702Authorization","wallet_sendCalls","signTransaction","signAndSendTransaction","signMessage","exportPrivateKey","exportSeedPhrase","signTransactionBytes","signRawMessageBytes","earn_deposit","earn_withdraw","transfer","*"],"description":"Method the rule applies to.","title":"PolicyMethod","x-stainless-model":"policies.policy_method"},"PolicyRuleRequestBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"method":{"$ref":"#/components/schemas/PolicyMethod"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/PolicyCondition"}},"action":{"$ref":"#/components/schemas/PolicyAction"}},"required":["name","method","conditions","action"],"additionalProperties":false,"description":"The rules that apply to each method the policy covers.","title":"PolicyRuleRequestBody","x-stainless-model":"policies.policy_rule_request_body"},"PolicyRuleResponse":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"method":{"$ref":"#/components/schemas/PolicyMethod"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/PolicyCondition"}},"action":{"$ref":"#/components/schemas/PolicyAction"},"id":{"type":"string"}},"required":["name","method","conditions","action","id"],"additionalProperties":false,"description":"A rule that defines the conditions and action to take if the conditions are true.","title":"PolicyRuleResponse","example":{"id":"rule_123","name":"Allowlist USDC contract on Base","method":"eth_sendTransaction","conditions":[{"field_source":"ethereum_transaction","field":"to","operator":"eq","value":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"action":"ALLOW"},"x-stainless-model":"policies.policy_rule_response"},"Policy":{"type":"object","properties":{"version":{"type":"string","enum":["1.0"],"description":"Version of the policy. Currently, 1.0 is the only version."},"name":{"type":"string","minLength":1,"maxLength":50,"description":"Name to assign to policy."},"chain_type":{"$ref":"#/components/schemas/WalletChainType"},"id":{"type":"string","minLength":24,"maxLength":24,"description":"Unique ID of the created policy. This will be the primary identifier when using the policy in the future."},"owner_id":{"description":"The key quorum ID of the owner of the policy.","anyOf":[{"$ref":"#/components/schemas/KeyQuorumId"},{"type":"null"}]},"created_at":{"type":"number","description":"Unix timestamp of when the policy was created in milliseconds."},"rules":{"type":"array","items":{"$ref":"#/components/schemas/PolicyRuleResponse"}}},"required":["version","name","chain_type","id","owner_id","created_at","rules"],"additionalProperties":false,"description":"A policy for controlling wallet operations.","title":"Policy","example":{"id":"tb54eps4z44ed0jepousxi4n","name":"Allowlisted stablecoins","chain_type":"ethereum","rules":[{"id":"bdyfoa65pro1eez6iwtzanol","name":"Allowlist USDC contract on Base","method":"eth_sendTransaction","conditions":[{"field_source":"ethereum_transaction","field":"to","operator":"eq","value":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"action":"ALLOW"}],"owner_id":null,"version":"1.0","created_at":1741833088894},"x-stainless-model":"policies.policy"},"PolicyRequestBody":{"type":"object","properties":{"policy_id":{"type":"string","minLength":24,"maxLength":24}},"required":["policy_id"],"description":"Unique ID of the policy to take actions on.","title":"PolicyRequestBody","x-stainless-model":"policies.policy_request_body"},"PolicyRuleRequestParams":{"type":"object","properties":{"policy_id":{"type":"string","minLength":24,"maxLength":24},"rule_id":{"type":"string","minLength":24,"maxLength":24}},"required":["policy_id","rule_id"],"description":"Unique IDs of the policy and the rule within the policy to take actions on.","title":"PolicyRuleRequestParams","x-stainless-model":"policies.policy_rule_request_params"},"AggregationMethod":{"type":"string","enum":["eth_signTransaction","eth_signUserOperation"],"description":"The RPC method this aggregation applies to.","title":"AggregationMethod","x-stainless-model":"aggregations.aggregation_method"},"AggregationMetric":{"type":"object","properties":{"field":{"type":"string"},"field_source":{"type":"string"},"abi":{"$ref":"#/components/schemas/AbiSchema"},"function":{"type":"string","enum":["sum"],"description":"The aggregation function to apply."}},"required":["field","field_source","function"],"additionalProperties":false,"description":"The metric configuration for an aggregation, defining what field/field_source to measure and the aggregation function to apply.","title":"AggregationMetric","x-stainless-model":"aggregations.aggregation_metric"},"RollingAggregationWindow":{"type":"object","properties":{"type":{"type":"string","enum":["rolling"]},"seconds":{"type":"integer","minimum":3600,"maximum":259200,"description":"Duration of the rolling window in seconds (1-72 hours)."}},"required":["type","seconds"],"additionalProperties":false,"description":"A rolling time window defined by a duration in seconds.","title":"RollingAggregationWindow","x-stainless-model":"aggregations.rolling_aggregation_window"},"AggregationWindow":{"oneOf":[{"$ref":"#/components/schemas/RollingAggregationWindow"}],"discriminator":{"propertyName":"type","mapping":{"rolling":"#/components/schemas/RollingAggregationWindow"}},"description":"The time window configuration for an aggregation.","title":"AggregationWindow","x-stainless-model":"aggregations.aggregation_window"},"AggregationGroupBy":{"type":"object","properties":{"field":{"type":"string"},"field_source":{"type":"string"},"abi":{"$ref":"#/components/schemas/AbiSchema"}},"required":["field","field_source"],"additionalProperties":false,"description":"A grouping configuration for an aggregation. Maximum of 2 group_by fields allowed.","title":"AggregationGroupBy","x-stainless-model":"aggregations.aggregation_group_by"},"Aggregation":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"The name of the aggregation."},"method":{"$ref":"#/components/schemas/AggregationMethod"},"metric":{"$ref":"#/components/schemas/AggregationMetric"},"window":{"$ref":"#/components/schemas/AggregationWindow"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/PolicyCondition"},"maxItems":100,"default":[],"description":"Optional conditions to filter events before aggregation."},"group_by":{"type":"array","items":{"$ref":"#/components/schemas/AggregationGroupBy"},"maxItems":2,"default":[],"description":"Optional grouping configuration for bucketing metrics."},"id":{"type":"string","description":"Unique ID of the aggregation."},"created_at":{"type":"number","description":"Unix timestamp of when the aggregation was created in milliseconds."},"owner_id":{"type":["string","null"],"description":"The key quorum ID of the owner of the aggregation."}},"required":["name","method","metric","window","id","created_at","owner_id"],"additionalProperties":false,"description":"An aggregation that measures and tracks metrics over a period of time.","title":"Aggregation","x-stainless-model":"aggregations.aggregation"},"AggregationInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"The name of the aggregation."},"method":{"$ref":"#/components/schemas/AggregationMethod"},"metric":{"$ref":"#/components/schemas/AggregationMetric"},"window":{"$ref":"#/components/schemas/AggregationWindow"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/PolicyCondition"},"maxItems":100,"default":[],"description":"Optional conditions to filter events before aggregation."},"group_by":{"type":"array","items":{"$ref":"#/components/schemas/AggregationGroupBy"},"maxItems":2,"default":[],"description":"Optional grouping configuration for bucketing metrics."},"owner":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"}},"required":["name","method","metric","window"],"additionalProperties":false,"description":"Input for creating an aggregation.","title":"AggregationInput","x-stainless-model":"aggregations.aggregation_input"},"IntentType":{"type":"string","enum":["KEY_QUORUM","POLICY","RULE","RPC","TRANSFER","WALLET"],"description":"Type of intent.","title":"IntentType","x-stainless-model":"intents.intent_type"},"IntentStatus":{"type":"string","enum":["pending","processing","executed","failed","expired","rejected","dismissed"],"description":"Current status of an intent.","title":"IntentStatus","x-stainless-model":"intents.intent_status"},"RpcIntentRequestDetails":{"type":"object","properties":{"method":{"type":"string","enum":["POST"]},"url":{"type":"string","pattern":"(?:https:\\/\\/(?:[^/]+\\.privy\\.io|privy\\.io|[^/]+\\.privy-preview\\.app|privy-preview\\.app)(?:\\/api)?|http:\\/\\/localhost(?::\\d+)?(?:\\/api)?)\\/v1\\/wallets\\/[0-9a-z]{24,32}\\/rpc$"},"body":{"$ref":"#/components/schemas/WalletRpcRequestBody"}},"required":["method","url","body"],"additionalProperties":false,"description":"Request details for an RPC intent.","title":"RpcIntentRequestDetails","x-stainless-model":"intents.rpc_intent_request_details"},"TransferIntentRequestDetails":{"type":"object","properties":{"method":{"type":"string","enum":["POST"]},"url":{"type":"string","pattern":"(?:https:\\/\\/(?:[^/]+\\.privy\\.io|privy\\.io|[^/]+\\.privy-preview\\.app|privy-preview\\.app)(?:\\/api)?|http:\\/\\/localhost(?::\\d+)?(?:\\/api)?)\\/v1\\/wallets\\/[0-9a-z]{24,32}\\/transfer$"},"body":{"$ref":"#/components/schemas/TransferRequestBody"}},"required":["method","url","body"],"additionalProperties":false,"description":"Request details for a transfer intent.","title":"TransferIntentRequestDetails","x-stainless-model":"intents.transfer_intent_request_details"},"PolicyIntentRequestDetails":{"type":"object","properties":{"method":{"type":"string","enum":["PATCH"]},"url":{"type":"string","pattern":"(?:https:\\/\\/(?:[^/]+\\.privy\\.io|privy\\.io|[^/]+\\.privy-preview\\.app|privy-preview\\.app)(?:\\/api)?|http:\\/\\/localhost(?::\\d+)?(?:\\/api)?)\\/v1\\/policies\\/[0-9a-z]{24,32}$"},"body":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50,"description":"Name to assign to policy."},"rules":{"type":"array","items":{"$ref":"#/components/schemas/PolicyRuleRequestBody"}},"owner":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"}},"additionalProperties":false}},"required":["method","url","body"],"additionalProperties":false,"description":"Request details for a policy intent.","title":"PolicyIntentRequestDetails","x-stainless-model":"intents.policy_intent_request_details"},"RuleIntentCreateRequestDetails":{"type":"object","properties":{"method":{"type":"string","enum":["POST"]},"url":{"type":"string","pattern":"(?:https:\\/\\/(?:[^/]+\\.privy\\.io|privy\\.io|[^/]+\\.privy-preview\\.app|privy-preview\\.app)(?:\\/api)?|http:\\/\\/localhost(?::\\d+)?(?:\\/api)?)\\/v1\\/policies\\/[0-9a-z]{24,32}\\/rules$"},"body":{"$ref":"#/components/schemas/PolicyRuleRequestBody"}},"required":["method","url","body"],"additionalProperties":false,"description":"Request details for creating a rule via intent.","title":"RuleIntentCreateRequestDetails","x-stainless-model":"intents.rule_intent_create_request_details"},"RuleIntentUpdateRequestDetails":{"type":"object","properties":{"method":{"type":"string","enum":["PATCH"]},"url":{"type":"string","pattern":"(?:https:\\/\\/(?:[^/]+\\.privy\\.io|privy\\.io|[^/]+\\.privy-preview\\.app|privy-preview\\.app)(?:\\/api)?|http:\\/\\/localhost(?::\\d+)?(?:\\/api)?)\\/v1\\/policies\\/[0-9a-z]{24,32}\\/rules\\/[0-9a-z]{24,32}$"},"body":{"$ref":"#/components/schemas/PolicyRuleRequestBody"}},"required":["method","url","body"],"additionalProperties":false,"description":"Request details for updating a rule via intent.","title":"RuleIntentUpdateRequestDetails","x-stainless-model":"intents.rule_intent_update_request_details"},"RuleIntentDeleteRequestBody":{"type":"object","properties":{},"description":"Empty request body for a rule delete intent.","x-stainless-empty-object":true,"title":"RuleIntentDeleteRequestBody","x-stainless-model":"intents.rule_intent_delete_request_body"},"RuleIntentDeleteRequestDetails":{"type":"object","properties":{"method":{"type":"string","enum":["DELETE"]},"url":{"type":"string","pattern":"(?:https:\\/\\/(?:[^/]+\\.privy\\.io|privy\\.io|[^/]+\\.privy-preview\\.app|privy-preview\\.app)(?:\\/api)?|http:\\/\\/localhost(?::\\d+)?(?:\\/api)?)\\/v1\\/policies\\/[0-9a-z]{24,32}\\/rules\\/[0-9a-z]{24,32}$"},"body":{"allOf":[{"$ref":"#/components/schemas/RuleIntentDeleteRequestBody"},{"default":{}}]}},"required":["method","url"],"additionalProperties":false,"description":"Request details for deleting a rule via intent.","title":"RuleIntentDeleteRequestDetails","x-stainless-model":"intents.rule_intent_delete_request_details"},"RuleIntentRequestDetails":{"oneOf":[{"$ref":"#/components/schemas/RuleIntentCreateRequestDetails"},{"$ref":"#/components/schemas/RuleIntentUpdateRequestDetails"},{"$ref":"#/components/schemas/RuleIntentDeleteRequestDetails"}],"discriminator":{"propertyName":"method","mapping":{"POST":"#/components/schemas/RuleIntentCreateRequestDetails","PATCH":"#/components/schemas/RuleIntentUpdateRequestDetails","DELETE":"#/components/schemas/RuleIntentDeleteRequestDetails"}},"description":"The original rule request. Method is POST (create), PATCH (update), or DELETE (delete)","title":"RuleIntentRequestDetails","x-stainless-model":"intents.rule_intent_request_details"},"IntentAuthorizeInput":{"type":"object","properties":{"signature":{"type":"string","description":"Signature authorizing the intent."},"timestamp":{"type":"number","description":"Unix timestamp (in milliseconds) when the signature was created. Used to verify the signature was created when the signing key was valid."}},"required":["signature","timestamp"],"additionalProperties":false,"description":"Request body for authorizing an intent.","title":"IntentAuthorizeInput","x-stainless-model":"intents.intent_authorize_input"},"IntentAuthorizationUserMember":{"type":"object","properties":{"type":{"type":"string","enum":["user"]},"user_id":{"type":"string","description":"User ID of the key quorum member"},"signed_at":{"type":["number","null"],"description":"Unix timestamp when this member signed, or null if not yet signed."}},"required":["type","user_id","signed_at"],"description":"A user member of an intent authorization quorum.","title":"IntentAuthorizationUserMember","x-stainless-model":"intents.intent_authorization_user_member"},"IntentAuthorizationKeyMember":{"type":"object","properties":{"type":{"type":"string","enum":["key"]},"public_key":{"type":"string","description":"Public key of the key quorum member"},"signed_at":{"type":["number","null"],"description":"Unix timestamp when this member signed, or null if not yet signed."}},"required":["type","public_key","signed_at"],"description":"A key member of an intent authorization quorum.","title":"IntentAuthorizationKeyMember","x-stainless-model":"intents.intent_authorization_key_member"},"IntentAuthorizationKeyQuorumMember":{"oneOf":[{"$ref":"#/components/schemas/IntentAuthorizationUserMember"},{"$ref":"#/components/schemas/IntentAuthorizationKeyMember"}],"discriminator":{"propertyName":"type","mapping":{"user":"#/components/schemas/IntentAuthorizationUserMember","key":"#/components/schemas/IntentAuthorizationKeyMember"}},"description":"A leaf member (user or key) of a nested key quorum in an intent authorization.","title":"IntentAuthorizationKeyQuorumMember","x-stainless-model":"intents.intent_authorization_key_quorum_member"},"IntentAuthorizationKeyQuorum":{"type":"object","properties":{"type":{"type":"string","enum":["key_quorum"]},"key_quorum_id":{"type":"string","description":"ID of the child key quorum member"},"display_name":{"type":"string","description":"Display name for the child key quorum (if any)"},"threshold_met":{"type":"boolean","description":"Whether this child key quorum has met its signature threshold"},"threshold":{"type":"number","description":"Number of signatures required from this child quorum"},"members":{"type":"array","items":{"$ref":"#/components/schemas/IntentAuthorizationKeyQuorumMember"},"description":"Members of this child quorum"}},"required":["type","key_quorum_id","threshold_met","threshold","members"],"description":"A nested key quorum member of an intent authorization quorum.","title":"IntentAuthorizationKeyQuorum","x-stainless-model":"intents.intent_authorization_key_quorum"},"IntentAuthorizationMember":{"oneOf":[{"$ref":"#/components/schemas/IntentAuthorizationUserMember"},{"$ref":"#/components/schemas/IntentAuthorizationKeyMember"},{"$ref":"#/components/schemas/IntentAuthorizationKeyQuorum"}],"discriminator":{"propertyName":"type","mapping":{"user":"#/components/schemas/IntentAuthorizationUserMember","key":"#/components/schemas/IntentAuthorizationKeyMember","key_quorum":"#/components/schemas/IntentAuthorizationKeyQuorum"}},"description":"A member of an intent authorization quorum. Can be a user, key, or nested key quorum.","title":"IntentAuthorizationMember","x-stainless-model":"intents.intent_authorization_member"},"IntentAuthorization":{"type":"object","properties":{"members":{"type":"array","items":{"$ref":"#/components/schemas/IntentAuthorizationMember"},"description":"Members in this authorization quorum"},"threshold":{"type":"number","description":"Number of signatures required to satisfy this quorum"},"display_name":{"type":"string","description":"Display name of the key quorum"}},"required":["members","threshold"],"description":"Authorization quorum for an intent","title":"IntentAuthorization","x-stainless-model":"intents.intent_authorization"},"BaseIntentResponse":{"type":"object","properties":{"intent_id":{"type":"string","description":"Unique ID for the intent"},"created_by_display_name":{"type":"string","description":"Display name of the user who created the intent"},"created_by_id":{"type":"string","description":"ID of the user who created the intent. If undefined, the intent was created using the app secret"},"created_at":{"type":"number","description":"Unix timestamp when the intent was created"},"resource_id":{"type":"string","description":"ID of the resource being modified (wallet_id, policy_id, etc)"},"authorization_details":{"type":"array","items":{"$ref":"#/components/schemas/IntentAuthorization"},"description":"Detailed authorization information including key quorum members, thresholds, and signature status"},"status":{"$ref":"#/components/schemas/IntentStatus"},"custom_expiry":{"type":"boolean","description":"Whether this intent has a custom expiry time set by the client. If false, the intent expires after a default duration."},"expires_at":{"type":"number","description":"Unix timestamp when the intent expires"},"rejected_at":{"type":"number","description":"Unix timestamp when the intent was rejected, present when status is 'rejected'"},"dismissed_at":{"type":"number","description":"Unix timestamp when the intent was dismissed, present when status is 'dismissed'"},"dismissal_reason":{"type":"string","description":"Human-readable reason for dismissal, present when status is 'dismissed'"}},"required":["intent_id","created_by_display_name","created_at","resource_id","authorization_details","status","custom_expiry","expires_at"],"description":"Common fields shared by all intent response types.","title":"BaseIntentResponse","x-stainless-model":"intents.base_intent_response"},"BaseActionResult":{"type":"object","properties":{"status_code":{"type":"number","description":"HTTP status code from the action execution"},"executed_at":{"type":"number","description":"Unix timestamp when the action was executed"},"authorized_by_display_name":{"type":"string","description":"Display name of the key quorum that authorized execution"},"authorized_by_id":{"type":"string","description":"ID of the key quorum that authorized execution"}},"required":["status_code","executed_at"],"description":"Common fields for intent action execution results.","title":"BaseActionResult","x-stainless-model":"intents.base_action_result"},"RpcIntentResponse":{"allOf":[{"$ref":"#/components/schemas/BaseIntentResponse"},{"type":"object","properties":{"intent_type":{"type":"string","enum":["RPC"]},"request_details":{"type":"object","properties":{"method":{"type":"string","enum":["POST"]},"url":{"type":"string"},"body":{"$ref":"#/components/schemas/WalletRpcRequestBody"}},"required":["method","url","body"],"description":"The original RPC request that would be sent to the wallet endpoint"},"current_resource_data":{"allOf":[{"$ref":"#/components/schemas/Wallet"},{"description":"Current state of the wallet before any changes. If undefined, the resource was deleted and no longer exists"}]},"action_result":{"allOf":[{"$ref":"#/components/schemas/BaseActionResult"},{"type":"object","properties":{"response_body":{"$ref":"#/components/schemas/WalletRpcResponse"}},"required":["response_body"]}],"description":"Result of RPC execution (only present if status is 'executed' or 'failed')","title":"BaseActionResult","x-stainless-model":"intents.base_action_result"}},"required":["intent_type","request_details"]}],"description":"Response for an RPC intent","title":"RpcIntentResponse","example":{"intent_id":"clpq1234567890abcdefghij","intent_type":"RPC","created_by_display_name":"developer@example.com","created_by_id":"did:privy:clabcd123","created_at":1741834854578,"resource_id":"xs76o3pi0v5syd62ui1wmijw","authorization_details":[{"members":[{"type":"user","user_id":"did:privy:clabcd123","signed_at":null}],"threshold":1,"display_name":"Admin Key Quorum"}],"status":"pending","custom_expiry":false,"expires_at":1741921254578,"request_details":{"method":"POST","url":"https://api.privy.io/v1/wallets/xs76o3pi0v5syd62ui1wmijw/rpc","body":{"method":"eth_sendTransaction","caip2":"eip155:8453","chain_type":"ethereum","params":{"transaction":{"to":"0x0000000000000000000000000000000000000000","value":1}}}}},"x-stainless-model":"intents.rpc_intent_response"},"TransferIntentResponse":{"allOf":[{"$ref":"#/components/schemas/BaseIntentResponse"},{"type":"object","properties":{"intent_type":{"type":"string","enum":["TRANSFER"]},"request_details":{"type":"object","properties":{"method":{"type":"string","enum":["POST"]},"url":{"type":"string"},"body":{"$ref":"#/components/schemas/TransferRequestBody"}},"required":["method","url","body"],"description":"The original transfer request that would be sent to the wallet transfer endpoint"},"current_resource_data":{"allOf":[{"$ref":"#/components/schemas/Wallet"},{"description":"Current state of the wallet before any changes. If undefined, the resource was deleted and no longer exists"}]},"action_result":{"allOf":[{"$ref":"#/components/schemas/BaseActionResult"},{"type":"object","properties":{"response_body":{"$ref":"#/components/schemas/TransferActionResponse"}},"required":["response_body"]}],"description":"Result of transfer execution (only present if intent status is 'executed' or 'failed')","title":"BaseActionResult","x-stainless-model":"intents.base_action_result"}},"required":["intent_type","request_details"]}],"description":"Response for a transfer intent","title":"TransferIntentResponse","x-stainless-model":"intents.transfer_intent_response"},"WalletIntentResponse":{"allOf":[{"$ref":"#/components/schemas/BaseIntentResponse"},{"type":"object","properties":{"intent_type":{"type":"string","enum":["WALLET"]},"request_details":{"type":"object","properties":{"method":{"type":"string","enum":["PATCH"]},"url":{"type":"string"},"body":{"type":"object","properties":{"display_name":{"type":["string","null"],"maxLength":100},"policy_ids":{"$ref":"#/components/schemas/PolicyInput"},"authorization_key_ids":{"type":"array","items":{"type":"string"}},"authorization_threshold":{"type":"number"},"additional_signers":{"$ref":"#/components/schemas/AdditionalSignerInput"},"owner":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"}},"additionalProperties":false}},"required":["method","url","body"],"description":"The original wallet update request that would be sent to the wallet endpoint"},"current_resource_data":{"allOf":[{"$ref":"#/components/schemas/Wallet"},{"description":"Current state of the wallet before any changes. If undefined, the resource was deleted and no longer exists"}]},"action_result":{"allOf":[{"$ref":"#/components/schemas/BaseActionResult"},{"type":"object","properties":{"response_body":{"$ref":"#/components/schemas/Wallet"},"prior_state":{"allOf":[{"$ref":"#/components/schemas/Wallet"},{"description":"State of the wallet immediately before execution"}]}},"required":["response_body","prior_state"]}],"description":"Result of wallet update execution (only present if status is 'executed' or 'failed')","title":"BaseActionResult","x-stainless-model":"intents.base_action_result"}},"required":["intent_type","request_details"]}],"description":"Response for a wallet intent","title":"WalletIntentResponse","x-stainless-model":"intents.wallet_intent_response"},"PolicyIntentResponse":{"allOf":[{"$ref":"#/components/schemas/BaseIntentResponse"},{"type":"object","properties":{"intent_type":{"type":"string","enum":["POLICY"]},"request_details":{"type":"object","properties":{"method":{"type":"string","enum":["PATCH"]},"url":{"type":"string"},"body":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50,"description":"Name to assign to policy."},"rules":{"type":"array","items":{"$ref":"#/components/schemas/PolicyRuleRequestBody"}},"owner":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"}},"additionalProperties":false}},"required":["method","url","body"],"description":"The original policy update request that would be sent to the policy endpoint"},"current_resource_data":{"allOf":[{"$ref":"#/components/schemas/Policy"},{"description":"Current state of the policy before any changes. If undefined, the resource was deleted and no longer exists"}]},"action_result":{"allOf":[{"$ref":"#/components/schemas/BaseActionResult"},{"type":"object","properties":{"response_body":{"$ref":"#/components/schemas/Policy"},"prior_state":{"allOf":[{"$ref":"#/components/schemas/Policy"},{"description":"State of the policy immediately before execution"}]}},"required":["response_body","prior_state"]}],"description":"Result of policy update execution (only present if status is 'executed' or 'failed')","title":"BaseActionResult","x-stainless-model":"intents.base_action_result"}},"required":["intent_type","request_details"]}],"description":"Response for a policy intent","title":"PolicyIntentResponse","x-stainless-model":"intents.policy_intent_response"},"KeyQuorumIntentResponse":{"allOf":[{"$ref":"#/components/schemas/BaseIntentResponse"},{"type":"object","properties":{"intent_type":{"type":"string","enum":["KEY_QUORUM"]},"request_details":{"type":"object","properties":{"method":{"type":"string","enum":["PATCH"]},"url":{"type":"string"},"body":{"allOf":[{"$ref":"#/components/schemas/KeyQuorumUpdateRequestBody"},{"additionalProperties":false}]}},"required":["method","url","body"],"description":"The original key quorum update request that would be sent to the key quorum endpoint"},"current_resource_data":{"allOf":[{"$ref":"#/components/schemas/KeyQuorum"},{"description":"Current state of the key quorum before any changes. If undefined, the resource was deleted and no longer exists"}]},"action_result":{"allOf":[{"$ref":"#/components/schemas/BaseActionResult"},{"type":"object","properties":{"response_body":{"$ref":"#/components/schemas/KeyQuorum"},"prior_state":{"allOf":[{"$ref":"#/components/schemas/KeyQuorum"},{"description":"State of the key quorum immediately before execution"}]}},"required":["response_body","prior_state"]}],"description":"Result of key quorum update execution (only present if status is 'executed' or 'failed')","title":"BaseActionResult","x-stainless-model":"intents.base_action_result"}},"required":["intent_type","request_details"]}],"description":"Response for a key quorum intent","title":"KeyQuorumIntentResponse","x-stainless-model":"intents.key_quorum_intent_response"},"RuleMutateIntentResponse":{"allOf":[{"$ref":"#/components/schemas/BaseIntentResponse"},{"type":"object","properties":{"intent_type":{"type":"string","enum":["RULE"]},"current_resource_data":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleResponse"},{"description":"Current state of the rule before any changes. Undefined for create intents or if the rule was deleted"}]},"policy":{"allOf":[{"$ref":"#/components/schemas/Policy"},{"description":"Parent policy containing this rule, including sibling rules for contextual display"}]},"request_details":{"$ref":"#/components/schemas/RuleIntentRequestDetails"},"action_result":{"allOf":[{"$ref":"#/components/schemas/BaseActionResult"},{"type":"object","properties":{"response_body":{"$ref":"#/components/schemas/PolicyRuleResponse"},"prior_state":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleResponse"},{"description":"State of the rule immediately before execution. Undefined for create intents"}]}}}],"description":"Result of rule execution (only present if status is 'executed' or 'failed')","title":"BaseActionResult","x-stainless-model":"intents.base_action_result"}},"required":["intent_type","request_details"]}],"description":"Response for a create or update rule intent","title":"RuleMutateIntentResponse","x-stainless-model":"intents.rule_mutate_intent_response"},"RuleDeleteIntentResponse":{"allOf":[{"$ref":"#/components/schemas/BaseIntentResponse"},{"type":"object","properties":{"intent_type":{"type":"string","enum":["RULE"]},"current_resource_data":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleResponse"},{"description":"Current state of the rule before any changes. Undefined for create intents or if the rule was deleted"}]},"policy":{"allOf":[{"$ref":"#/components/schemas/Policy"},{"description":"Parent policy containing this rule, including sibling rules for contextual display"}]},"request_details":{"$ref":"#/components/schemas/RuleIntentDeleteRequestDetails"},"action_result":{"allOf":[{"$ref":"#/components/schemas/BaseActionResult"},{"type":"object","properties":{"response_body":{"$ref":"#/components/schemas/SuccessResponse"},"prior_state":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleResponse"},{"description":"State of the rule immediately before execution. Undefined for create intents"}]}},"required":["prior_state"]}],"description":"Result of rule execution (only present if status is 'executed' or 'failed')","title":"BaseActionResult","x-stainless-model":"intents.base_action_result"}},"required":["intent_type","request_details"]}],"description":"Response for a delete rule intent","title":"RuleDeleteIntentResponse","x-stainless-model":"intents.rule_delete_intent_response"},"RuleIntentResponse":{"allOf":[{"$ref":"#/components/schemas/BaseIntentResponse"},{"type":"object","properties":{"intent_type":{"type":"string","enum":["RULE"]},"current_resource_data":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleResponse"},{"description":"Current state of the rule before any changes. Undefined for create intents or if the rule was deleted"}]},"policy":{"allOf":[{"$ref":"#/components/schemas/Policy"},{"description":"Parent policy containing this rule, including sibling rules for contextual display"}]},"request_details":{"$ref":"#/components/schemas/RuleIntentRequestDetails"},"action_result":{"allOf":[{"$ref":"#/components/schemas/BaseActionResult"},{"type":"object","properties":{"response_body":{"anyOf":[{"$ref":"#/components/schemas/PolicyRuleResponse"},{"$ref":"#/components/schemas/SuccessResponse"}]},"prior_state":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleResponse"},{"description":"State of the rule immediately before execution. Undefined for create intents"}]}}}],"description":"Result of rule execution (only present if status is 'executed' or 'failed')","title":"BaseActionResult","x-stainless-model":"intents.base_action_result"}},"required":["intent_type","request_details"]}],"description":"Response for a rule intent","title":"RuleIntentResponse","x-stainless-model":"intents.rule_intent_response"},"IntentResponse":{"oneOf":[{"$ref":"#/components/schemas/RpcIntentResponse"},{"$ref":"#/components/schemas/TransferIntentResponse"},{"$ref":"#/components/schemas/WalletIntentResponse"},{"$ref":"#/components/schemas/PolicyIntentResponse"},{"$ref":"#/components/schemas/RuleIntentResponse"},{"$ref":"#/components/schemas/KeyQuorumIntentResponse"}],"discriminator":{"propertyName":"intent_type","mapping":{"RPC":"#/components/schemas/RpcIntentResponse","TRANSFER":"#/components/schemas/TransferIntentResponse","WALLET":"#/components/schemas/WalletIntentResponse","POLICY":"#/components/schemas/PolicyIntentResponse","RULE":"#/components/schemas/RuleIntentResponse","KEY_QUORUM":"#/components/schemas/KeyQuorumIntentResponse"}},"description":"Response for an intent object","title":"IntentResponse","x-stainless-model":"intents.intent_response"},"IntentCreatedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["intent.created"],"description":"The type of webhook event."},"intent_id":{"type":"string","description":"The unique ID of the intent."},"intent_type":{"$ref":"#/components/schemas/IntentType"},"status":{"type":"string","description":"The current status of the intent."},"created_by_id":{"type":"string","description":"The ID of the user who created the intent."},"created_by_display_name":{"type":"string","description":"Display name of the user who created the intent."},"created_at":{"type":"number","description":"Unix timestamp when the intent was created."},"expires_at":{"type":"number","description":"Unix timestamp when the intent expires."},"authorization_details":{"type":"array","items":{"$ref":"#/components/schemas/IntentAuthorization"},"description":"Key quorums that can authorize this intent."}},"required":["type","intent_id","intent_type","status","created_at","expires_at"],"description":"Payload for the intent.created webhook event.","title":"IntentCreatedWebhookPayload","x-stainless-model":"webhooks.intent_created_webhook_payload"},"IntentAuthorizedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["intent.authorized"],"description":"The type of webhook event."},"intent_id":{"type":"string","description":"The unique ID of the intent."},"intent_type":{"$ref":"#/components/schemas/IntentType"},"status":{"type":"string","description":"The current status of the intent."},"created_by_id":{"type":"string","description":"The ID of the user who created the intent."},"created_by_display_name":{"type":"string","description":"Display name of the user who created the intent."},"created_at":{"type":"number","description":"Unix timestamp when the intent was created."},"expires_at":{"type":"number","description":"Unix timestamp when the intent expires."},"authorized_at":{"type":"number","description":"Unix timestamp when the authorization was recorded."},"member":{"allOf":[{"$ref":"#/components/schemas/IntentAuthorizationKeyQuorumMember"},{"description":"The team member who provided this authorization signature."}]}},"required":["type","intent_id","intent_type","status","created_at","expires_at","authorized_at","member"],"description":"Payload for the intent.authorized webhook event.","title":"IntentAuthorizedWebhookPayload","x-stainless-model":"webhooks.intent_authorized_webhook_payload"},"IntentRejectedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["intent.rejected"],"description":"The type of webhook event."},"intent_id":{"type":"string","description":"The unique ID of the intent."},"intent_type":{"$ref":"#/components/schemas/IntentType"},"status":{"type":"string","description":"The current status of the intent."},"created_by_id":{"type":"string","description":"The ID of the user who created the intent."},"created_by_display_name":{"type":"string","description":"Display name of the user who created the intent."},"created_at":{"type":"number","description":"Unix timestamp when the intent was created."},"expires_at":{"type":"number","description":"Unix timestamp when the intent expires."},"rejected_at":{"type":"number","description":"Unix timestamp when the intent was rejected."}},"required":["type","intent_id","intent_type","status","created_at","expires_at","rejected_at"],"description":"Payload for the intent.rejected webhook event.","title":"IntentRejectedWebhookPayload","x-stainless-model":"webhooks.intent_rejected_webhook_payload"},"IntentExecutedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["intent.executed"],"description":"The type of webhook event."},"intent_id":{"type":"string","description":"The unique ID of the intent."},"intent_type":{"$ref":"#/components/schemas/IntentType"},"status":{"type":"string","description":"The current status of the intent."},"created_by_id":{"type":"string","description":"The ID of the user who created the intent."},"created_by_display_name":{"type":"string","description":"Display name of the user who created the intent."},"created_at":{"type":"number","description":"Unix timestamp when the intent was created."},"expires_at":{"type":"number","description":"Unix timestamp when the intent expires."},"action_result":{"allOf":[{"$ref":"#/components/schemas/BaseActionResult"},{"type":"object","properties":{"response_body":{"description":"Response from the execution."}}}],"description":"Result of the successful intent execution.","title":"BaseActionResult","x-stainless-model":"intents.base_action_result"}},"required":["type","intent_id","intent_type","status","created_at","expires_at","action_result"],"description":"Payload for the intent.executed webhook event.","title":"IntentExecutedWebhookPayload","x-stainless-model":"webhooks.intent_executed_webhook_payload"},"IntentFailedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["intent.failed"],"description":"The type of webhook event."},"intent_id":{"type":"string","description":"The unique ID of the intent."},"intent_type":{"$ref":"#/components/schemas/IntentType"},"status":{"type":"string","description":"The current status of the intent."},"created_by_id":{"type":"string","description":"The ID of the user who created the intent."},"created_by_display_name":{"type":"string","description":"Display name of the user who created the intent."},"created_at":{"type":"number","description":"Unix timestamp when the intent was created."},"expires_at":{"type":"number","description":"Unix timestamp when the intent expires."},"action_result":{"allOf":[{"$ref":"#/components/schemas/BaseActionResult"},{"type":"object","properties":{"response_body":{"description":"Response from the execution."}}}],"description":"Result of the failed intent execution.","title":"BaseActionResult","x-stainless-model":"intents.base_action_result"}},"required":["type","intent_id","intent_type","status","created_at","expires_at","action_result"],"description":"Payload for the intent.failed webhook event.","title":"IntentFailedWebhookPayload","x-stainless-model":"webhooks.intent_failed_webhook_payload"},"MfaEnabledWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["mfa.enabled"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user who enabled MFA."},"method":{"allOf":[{"$ref":"#/components/schemas/MfaMethod"},{"description":"The MFA method that was enabled."}]}},"required":["type","user_id","method"],"description":"Payload for the mfa.enabled webhook event.","title":"MfaEnabledWebhookPayload","x-stainless-model":"webhooks.mfa_enabled_webhook_payload"},"MfaDisabledWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["mfa.disabled"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user who disabled MFA."},"method":{"allOf":[{"$ref":"#/components/schemas/MfaMethod"},{"description":"The MFA method that was disabled."}]}},"required":["type","user_id","method"],"description":"Payload for the mfa.disabled webhook event.","title":"MfaDisabledWebhookPayload","x-stainless-model":"webhooks.mfa_disabled_webhook_payload"},"TransactionBroadcastedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["transaction.broadcasted"],"description":"The type of webhook event."},"wallet_id":{"type":"string","description":"The ID of the wallet that initiated the transaction."},"transaction_id":{"type":"string","description":"The Privy-assigned ID for this transaction."},"caip2":{"type":"string","description":"The CAIP-2 chain identifier (e.g., eip155:1 for Ethereum mainnet)."},"transaction_hash":{"type":"string","description":"The blockchain transaction hash."},"reference_id":{"type":["string","null"],"default":null,"description":"Developer-provided reference ID for transaction reconciliation, if one was provided."}},"required":["type","wallet_id","transaction_id","caip2","transaction_hash"],"description":"Payload for the transaction.broadcasted webhook event.","title":"TransactionBroadcastedWebhookPayload","x-stainless-model":"webhooks.transaction_broadcasted_webhook_payload"},"TransactionConfirmedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["transaction.confirmed"],"description":"The type of webhook event."},"wallet_id":{"type":"string","description":"The ID of the wallet that initiated the transaction."},"transaction_id":{"type":"string","description":"The Privy-assigned ID for this transaction."},"caip2":{"type":"string","description":"The CAIP-2 chain identifier (e.g., eip155:1 for Ethereum mainnet)."},"transaction_hash":{"type":"string","description":"The blockchain transaction hash."},"reference_id":{"type":["string","null"],"default":null,"description":"Developer-provided reference ID for transaction reconciliation, if one was provided."}},"required":["type","wallet_id","transaction_id","caip2","transaction_hash"],"description":"Payload for the transaction.confirmed webhook event.","title":"TransactionConfirmedWebhookPayload","x-stainless-model":"webhooks.transaction_confirmed_webhook_payload"},"TransactionExecutionRevertedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["transaction.execution_reverted"],"description":"The type of webhook event."},"wallet_id":{"type":"string","description":"The ID of the wallet that initiated the transaction."},"transaction_id":{"type":"string","description":"The Privy-assigned ID for this transaction."},"caip2":{"type":"string","description":"The CAIP-2 chain identifier (e.g., eip155:1 for Ethereum mainnet)."},"transaction_hash":{"type":"string","description":"The blockchain transaction hash."},"reference_id":{"type":["string","null"],"default":null,"description":"Developer-provided reference ID for transaction reconciliation, if one was provided."}},"required":["type","wallet_id","transaction_id","caip2","transaction_hash"],"description":"Payload for the transaction.execution_reverted webhook event.","title":"TransactionExecutionRevertedWebhookPayload","x-stainless-model":"webhooks.transaction_execution_reverted_webhook_payload"},"TransactionStillPendingWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["transaction.still_pending"],"description":"The type of webhook event."},"wallet_id":{"type":"string","description":"The ID of the wallet that initiated the transaction."},"transaction_id":{"type":"string","description":"The Privy-assigned ID for this transaction."},"caip2":{"type":"string","description":"The CAIP-2 chain identifier (e.g., eip155:1 for Ethereum mainnet)."},"transaction_hash":{"type":"string","description":"The blockchain transaction hash."},"reference_id":{"type":["string","null"],"default":null,"description":"Developer-provided reference ID for transaction reconciliation, if one was provided."},"transaction_request":{"allOf":[{"$ref":"#/components/schemas/UnsignedStandardEthereumTransaction"},{"description":"The original transaction request that is still pending."}]}},"required":["type","wallet_id","transaction_id","caip2","transaction_hash","transaction_request"],"description":"Payload for the transaction.still_pending webhook event.","title":"TransactionStillPendingWebhookPayload","x-stainless-model":"webhooks.transaction_still_pending_webhook_payload"},"TransactionFailedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["transaction.failed"],"description":"The type of webhook event."},"wallet_id":{"type":"string","description":"The ID of the wallet that initiated the transaction."},"transaction_id":{"type":"string","description":"The Privy-assigned ID for this transaction."},"caip2":{"type":"string","description":"The CAIP-2 chain identifier (e.g., eip155:1 for Ethereum mainnet)."},"transaction_hash":{"type":"string","description":"The blockchain transaction hash."},"reference_id":{"type":["string","null"],"default":null,"description":"Developer-provided reference ID for transaction reconciliation, if one was provided."}},"required":["type","wallet_id","transaction_id","caip2","transaction_hash"],"description":"Payload for the transaction.failed webhook event.","title":"TransactionFailedWebhookPayload","x-stainless-model":"webhooks.transaction_failed_webhook_payload"},"TransactionReplacedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["transaction.replaced"],"description":"The type of webhook event."},"wallet_id":{"type":"string","description":"The ID of the wallet that initiated the transaction."},"transaction_id":{"type":"string","description":"The Privy-assigned ID for this transaction."},"caip2":{"type":"string","description":"The CAIP-2 chain identifier (e.g., eip155:1 for Ethereum mainnet)."},"transaction_hash":{"type":"string","description":"The blockchain transaction hash."},"reference_id":{"type":["string","null"],"default":null,"description":"Developer-provided reference ID for transaction reconciliation, if one was provided."}},"required":["type","wallet_id","transaction_id","caip2","transaction_hash"],"description":"Payload for the transaction.replaced webhook event.","title":"TransactionReplacedWebhookPayload","x-stainless-model":"webhooks.transaction_replaced_webhook_payload"},"TransactionProviderErrorWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["transaction.provider_error"],"description":"The type of webhook event."},"wallet_id":{"type":"string","description":"The ID of the wallet that initiated the transaction."},"transaction_id":{"type":"string","description":"The Privy-assigned ID for this transaction."},"caip2":{"type":"string","description":"The CAIP-2 chain identifier (e.g., eip155:1 for Ethereum mainnet)."},"transaction_hash":{"type":"string","description":"The blockchain transaction hash."},"reference_id":{"type":["string","null"],"default":null,"description":"Developer-provided reference ID for transaction reconciliation, if one was provided."}},"required":["type","wallet_id","transaction_id","caip2","transaction_hash"],"description":"Payload for the transaction.provider_error webhook event.","title":"TransactionProviderErrorWebhookPayload","x-stainless-model":"webhooks.transaction_provider_error_webhook_payload"},"UserOperationCompletedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["user_operation.completed"],"description":"The type of webhook event."},"user_op_hash":{"type":"string"},"sender":{"type":"string"},"paymaster":{"type":["string","null"]},"nonce":{"type":"string"},"success":{"type":"boolean"},"actual_gas_cost":{"type":"string"},"actual_gas_used":{"type":"string"},"caip2":{"type":"string"},"transaction_hash":{"type":"string"},"block_number":{"type":"number"},"log_index":{"type":"number"}},"required":["type","user_op_hash","sender","paymaster","nonce","success","actual_gas_cost","actual_gas_used","caip2","transaction_hash","block_number","log_index"],"description":"Payload for the user_operation.completed webhook event.","title":"UserOperationCompletedWebhookPayload","x-stainless-model":"webhooks.user_operation_completed_webhook_payload"},"UserCreatedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["user.created"],"description":"The type of webhook event."},"user":{"$ref":"#/components/schemas/User"}},"required":["type","user"],"description":"Payload for the user.created webhook event.","title":"UserCreatedWebhookPayload","x-stainless-model":"webhooks.user_created_webhook_payload"},"UserAuthenticatedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["user.authenticated"],"description":"The type of webhook event."},"user":{"$ref":"#/components/schemas/User"},"account":{"$ref":"#/components/schemas/LinkedAccount"}},"required":["type","user","account"],"description":"Payload for the user.authenticated webhook event.","title":"UserAuthenticatedWebhookPayload","x-stainless-model":"webhooks.user_authenticated_webhook_payload"},"UserLinkedAccountWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["user.linked_account"],"description":"The type of webhook event."},"user":{"$ref":"#/components/schemas/User"},"account":{"$ref":"#/components/schemas/LinkedAccount"}},"required":["type","user","account"],"description":"Payload for the user.linked_account webhook event.","title":"UserLinkedAccountWebhookPayload","x-stainless-model":"webhooks.user_linked_account_webhook_payload"},"UserUnlinkedAccountWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["user.unlinked_account"],"description":"The type of webhook event."},"user":{"$ref":"#/components/schemas/User"},"account":{"$ref":"#/components/schemas/LinkedAccount"}},"required":["type","user","account"],"description":"Payload for the user.unlinked_account webhook event.","title":"UserUnlinkedAccountWebhookPayload","x-stainless-model":"webhooks.user_unlinked_account_webhook_payload"},"UserUpdatedAccountWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["user.updated_account"],"description":"The type of webhook event."},"user":{"$ref":"#/components/schemas/User"},"account":{"$ref":"#/components/schemas/LinkedAccount"}},"required":["type","user","account"],"description":"Payload for the user.updated_account webhook event.","title":"UserUpdatedAccountWebhookPayload","x-stainless-model":"webhooks.user_updated_account_webhook_payload"},"UserReference":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false,"description":"A reference to a user by their unique identifier.","title":"UserReference","x-stainless-model":"webhooks.user_reference"},"UserTransferredAccountWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["user.transferred_account"],"description":"The type of webhook event."},"fromUser":{"$ref":"#/components/schemas/UserReference"},"toUser":{"$ref":"#/components/schemas/User"},"account":{"$ref":"#/components/schemas/LinkedAccount"},"deletedUser":{"type":"boolean","enum":[true]}},"required":["type","fromUser","toUser","account","deletedUser"],"description":"Payload for the user.transferred_account webhook event.","title":"UserTransferredAccountWebhookPayload","x-stainless-model":"webhooks.user_transferred_account_webhook_payload"},"UserWalletCreatedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["user.wallet_created"],"description":"The type of webhook event."},"user":{"$ref":"#/components/schemas/User"},"wallet":{"$ref":"#/components/schemas/LinkedAccountBaseWallet"}},"required":["type","user","wallet"],"description":"Payload for the user.wallet_created webhook event.","title":"UserWalletCreatedWebhookPayload","x-stainless-model":"webhooks.user_wallet_created_webhook_payload"},"WalletActionSwapCreatedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.swap.created"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"caip2":{"type":"string","description":"Chain identifier."},"input_token":{"type":"string","description":"Token address being sold."},"output_token":{"type":"string","description":"Token address being bought."},"input_amount":{"type":["string","null"],"description":"Amount of input token in base units. Populated after onchain confirmation."},"status":{"type":"string","enum":["pending"],"description":"The status of the wallet action."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","caip2","input_token","output_token","input_amount","status"],"description":"Payload for the wallet_action.swap.created webhook event.","title":"WalletActionSwapCreatedWebhookPayload","x-stainless-model":"webhooks.wallet_action_swap_created_webhook_payload"},"WalletActionSwapSucceededWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.swap.succeeded"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"caip2":{"type":"string","description":"Chain identifier."},"input_token":{"type":"string","description":"Token address being sold."},"output_token":{"type":"string","description":"Token address being bought."},"input_amount":{"type":["string","null"],"description":"Amount of input token in base units. Populated after onchain confirmation."},"output_amount":{"type":["string","null"],"description":"Amount of output token received, in base units. Populated after onchain confirmation."},"status":{"type":"string","enum":["succeeded"],"description":"The status of the wallet action."},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action, including transaction hashes."},"completed_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action completed successfully."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","caip2","input_token","output_token","input_amount","output_amount","status","steps","completed_at"],"description":"Payload for the wallet_action.swap.succeeded webhook event.","title":"WalletActionSwapSucceededWebhookPayload","x-stainless-model":"webhooks.wallet_action_swap_succeeded_webhook_payload"},"WalletActionSwapRejectedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.swap.rejected"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"caip2":{"type":"string","description":"Chain identifier."},"input_token":{"type":"string","description":"Token address being sold."},"output_token":{"type":"string","description":"Token address being bought."},"input_amount":{"type":["string","null"],"description":"Amount of input token in base units. Populated after onchain confirmation."},"status":{"type":"string","enum":["rejected"],"description":"The status of the wallet action."},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action at the time of rejection."},"rejected_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was rejected."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","caip2","input_token","output_token","input_amount","status","failure_reason","steps","rejected_at"],"description":"Payload for the wallet_action.swap.rejected webhook event.","title":"WalletActionSwapRejectedWebhookPayload","x-stainless-model":"webhooks.wallet_action_swap_rejected_webhook_payload"},"WalletActionSwapFailedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.swap.failed"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"caip2":{"type":"string","description":"Chain identifier."},"input_token":{"type":"string","description":"Token address being sold."},"output_token":{"type":"string","description":"Token address being bought."},"input_amount":{"type":["string","null"],"description":"Amount of input token in base units. Populated after onchain confirmation."},"status":{"type":"string","enum":["failed"],"description":"The status of the wallet action."},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action. Completed steps will have transaction hashes; the failing step will have a failure_reason."},"failed_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action failed."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","caip2","input_token","output_token","input_amount","status","failure_reason","steps","failed_at"],"description":"Payload for the wallet_action.swap.failed webhook event.","title":"WalletActionSwapFailedWebhookPayload","x-stainless-model":"webhooks.wallet_action_swap_failed_webhook_payload"},"WalletActionTransferCreatedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.transfer.created"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"source_asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Present when the transfer was initiated with a named asset; omitted for custom-token transfers."},"source_asset_address":{"type":"string","description":"Token contract address (EVM) or mint address (Solana). Present when the transfer was initiated with `asset_address`."},"source_asset_decimals":{"type":"integer","description":"Number of decimals for the transferred token. Present when the transfer was initiated with `asset_address` and the decimals were resolved onchain."},"source_amount":{"type":"string","description":"Decimal amount sent on the source chain (e.g. \"1.5\"). Omitted for exact_output cross-chain transfers until the source amount is determined."},"source_chain":{"type":"string","description":"Chain name (e.g. \"base\", \"ethereum\")."},"destination_address":{"type":"string","description":"Recipient address."},"status":{"type":"string","enum":["pending"],"description":"The status of the wallet action."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","source_chain","destination_address","status"],"description":"Payload for the wallet_action.transfer.created webhook event.","title":"WalletActionTransferCreatedWebhookPayload","x-stainless-model":"webhooks.wallet_action_transfer_created_webhook_payload"},"WalletActionTransferSucceededWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.transfer.succeeded"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"source_asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Present when the transfer was initiated with a named asset; omitted for custom-token transfers."},"source_asset_address":{"type":"string","description":"Token contract address (EVM) or mint address (Solana). Present when the transfer was initiated with `asset_address`."},"source_asset_decimals":{"type":"integer","description":"Number of decimals for the transferred token. Present when the transfer was initiated with `asset_address` and the decimals were resolved onchain."},"source_amount":{"type":"string","description":"Decimal amount sent on the source chain (e.g. \"1.5\"). Omitted for exact_output cross-chain transfers until the source amount is determined."},"source_chain":{"type":"string","description":"Chain name (e.g. \"base\", \"ethereum\")."},"destination_address":{"type":"string","description":"Recipient address."},"status":{"type":"string","enum":["succeeded"],"description":"The status of the wallet action."},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action, including transaction hashes."},"completed_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action completed successfully."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","source_chain","destination_address","status","steps","completed_at"],"description":"Payload for the wallet_action.transfer.succeeded webhook event.","title":"WalletActionTransferSucceededWebhookPayload","x-stainless-model":"webhooks.wallet_action_transfer_succeeded_webhook_payload"},"WalletActionTransferRejectedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.transfer.rejected"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"source_asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Present when the transfer was initiated with a named asset; omitted for custom-token transfers."},"source_asset_address":{"type":"string","description":"Token contract address (EVM) or mint address (Solana). Present when the transfer was initiated with `asset_address`."},"source_asset_decimals":{"type":"integer","description":"Number of decimals for the transferred token. Present when the transfer was initiated with `asset_address` and the decimals were resolved onchain."},"source_amount":{"type":"string","description":"Decimal amount sent on the source chain (e.g. \"1.5\"). Omitted for exact_output cross-chain transfers until the source amount is determined."},"source_chain":{"type":"string","description":"Chain name (e.g. \"base\", \"ethereum\")."},"destination_address":{"type":"string","description":"Recipient address."},"status":{"type":"string","enum":["rejected"],"description":"The status of the wallet action."},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action at the time of rejection."},"rejected_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was rejected."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","source_chain","destination_address","status","failure_reason","steps","rejected_at"],"description":"Payload for the wallet_action.transfer.rejected webhook event.","title":"WalletActionTransferRejectedWebhookPayload","x-stainless-model":"webhooks.wallet_action_transfer_rejected_webhook_payload"},"WalletActionTransferFailedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.transfer.failed"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"source_asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Present when the transfer was initiated with a named asset; omitted for custom-token transfers."},"source_asset_address":{"type":"string","description":"Token contract address (EVM) or mint address (Solana). Present when the transfer was initiated with `asset_address`."},"source_asset_decimals":{"type":"integer","description":"Number of decimals for the transferred token. Present when the transfer was initiated with `asset_address` and the decimals were resolved onchain."},"source_amount":{"type":"string","description":"Decimal amount sent on the source chain (e.g. \"1.5\"). Omitted for exact_output cross-chain transfers until the source amount is determined."},"source_chain":{"type":"string","description":"Chain name (e.g. \"base\", \"ethereum\")."},"destination_address":{"type":"string","description":"Recipient address."},"status":{"type":"string","enum":["failed"],"description":"The status of the wallet action."},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action. Completed steps will have transaction hashes; the failing step will have a failure_reason."},"failed_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action failed."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","source_chain","destination_address","status","failure_reason","steps","failed_at"],"description":"Payload for the wallet_action.transfer.failed webhook event.","title":"WalletActionTransferFailedWebhookPayload","x-stainless-model":"webhooks.wallet_action_transfer_failed_webhook_payload"},"WalletActionEarnDepositCreatedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.earn_deposit.created"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"caip2":{"type":"string","description":"CAIP-2 chain identifier."},"vault_id":{"type":"string","description":"The vault ID."},"vault_address":{"type":"string","description":"ERC-4626 vault contract address."},"asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Only present when the token is known in the asset registry."},"asset_address":{"type":"string","description":"Underlying asset token address."},"decimals":{"type":"integer","description":"Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry."},"amount":{"type":"string","description":"Human-readable decimal amount of asset deposited (e.g. \"1.5\"). Only present when the token is known in the asset registry."},"raw_amount":{"type":"string","description":"Base-unit amount of asset deposited (e.g. \"1500000\")."},"status":{"type":"string","enum":["pending"],"description":"The status of the wallet action."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","caip2","vault_id","vault_address","asset_address","raw_amount","status"],"description":"Payload for the wallet_action.earn_deposit.created webhook event.","title":"WalletActionEarnDepositCreatedWebhookPayload","x-stainless-model":"webhooks.wallet_action_earn_deposit_created_webhook_payload"},"WalletActionEarnDepositSucceededWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.earn_deposit.succeeded"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"caip2":{"type":"string","description":"CAIP-2 chain identifier."},"vault_id":{"type":"string","description":"The vault ID."},"vault_address":{"type":"string","description":"ERC-4626 vault contract address."},"asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Only present when the token is known in the asset registry."},"asset_address":{"type":"string","description":"Underlying asset token address."},"decimals":{"type":"integer","description":"Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry."},"amount":{"type":"string","description":"Human-readable decimal amount of asset deposited (e.g. \"1.5\"). Only present when the token is known in the asset registry."},"raw_amount":{"type":"string","description":"Base-unit amount of asset deposited (e.g. \"1500000\")."},"share_amount":{"type":"string","description":"Vault shares received in base units."},"status":{"type":"string","enum":["succeeded"],"description":"The status of the wallet action."},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action, including transaction hashes."},"completed_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action completed successfully."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","caip2","vault_id","vault_address","asset_address","raw_amount","share_amount","status","steps","completed_at"],"description":"Payload for the wallet_action.earn_deposit.succeeded webhook event.","title":"WalletActionEarnDepositSucceededWebhookPayload","x-stainless-model":"webhooks.wallet_action_earn_deposit_succeeded_webhook_payload"},"WalletActionEarnDepositRejectedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.earn_deposit.rejected"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"caip2":{"type":"string","description":"CAIP-2 chain identifier."},"vault_id":{"type":"string","description":"The vault ID."},"vault_address":{"type":"string","description":"ERC-4626 vault contract address."},"asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Only present when the token is known in the asset registry."},"asset_address":{"type":"string","description":"Underlying asset token address."},"decimals":{"type":"integer","description":"Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry."},"amount":{"type":"string","description":"Human-readable decimal amount of asset deposited (e.g. \"1.5\"). Only present when the token is known in the asset registry."},"raw_amount":{"type":"string","description":"Base-unit amount of asset deposited (e.g. \"1500000\")."},"status":{"type":"string","enum":["rejected"],"description":"The status of the wallet action."},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action at the time of rejection."},"rejected_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was rejected."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","caip2","vault_id","vault_address","asset_address","raw_amount","status","failure_reason","steps","rejected_at"],"description":"Payload for the wallet_action.earn_deposit.rejected webhook event.","title":"WalletActionEarnDepositRejectedWebhookPayload","x-stainless-model":"webhooks.wallet_action_earn_deposit_rejected_webhook_payload"},"WalletActionEarnDepositFailedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.earn_deposit.failed"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"caip2":{"type":"string","description":"CAIP-2 chain identifier."},"vault_id":{"type":"string","description":"The vault ID."},"vault_address":{"type":"string","description":"ERC-4626 vault contract address."},"asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Only present when the token is known in the asset registry."},"asset_address":{"type":"string","description":"Underlying asset token address."},"decimals":{"type":"integer","description":"Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry."},"amount":{"type":"string","description":"Human-readable decimal amount of asset deposited (e.g. \"1.5\"). Only present when the token is known in the asset registry."},"raw_amount":{"type":"string","description":"Base-unit amount of asset deposited (e.g. \"1500000\")."},"status":{"type":"string","enum":["failed"],"description":"The status of the wallet action."},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action. Completed steps will have transaction hashes; the failing step will have a failure_reason."},"failed_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action failed."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","caip2","vault_id","vault_address","asset_address","raw_amount","status","failure_reason","steps","failed_at"],"description":"Payload for the wallet_action.earn_deposit.failed webhook event.","title":"WalletActionEarnDepositFailedWebhookPayload","x-stainless-model":"webhooks.wallet_action_earn_deposit_failed_webhook_payload"},"WalletActionEarnWithdrawCreatedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.earn_withdraw.created"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"caip2":{"type":"string","description":"CAIP-2 chain identifier."},"vault_id":{"type":"string","description":"The vault ID."},"vault_address":{"type":"string","description":"ERC-4626 vault contract address."},"asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Only present when the token is known in the asset registry."},"asset_address":{"type":"string","description":"Underlying asset token address."},"decimals":{"type":"integer","description":"Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry."},"amount":{"type":"string","description":"Human-readable decimal amount of asset withdrawn (e.g. \"1.5\"). Only present when the token is known in the asset registry."},"raw_amount":{"type":"string","description":"Base-unit amount of asset withdrawn (e.g. \"1500000\")."},"status":{"type":"string","enum":["pending"],"description":"The status of the wallet action."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","caip2","vault_id","vault_address","asset_address","raw_amount","status"],"description":"Payload for the wallet_action.earn_withdraw.created webhook event.","title":"WalletActionEarnWithdrawCreatedWebhookPayload","x-stainless-model":"webhooks.wallet_action_earn_withdraw_created_webhook_payload"},"WalletActionEarnWithdrawSucceededWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.earn_withdraw.succeeded"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"caip2":{"type":"string","description":"CAIP-2 chain identifier."},"vault_id":{"type":"string","description":"The vault ID."},"vault_address":{"type":"string","description":"ERC-4626 vault contract address."},"asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Only present when the token is known in the asset registry."},"asset_address":{"type":"string","description":"Underlying asset token address."},"decimals":{"type":"integer","description":"Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry."},"amount":{"type":"string","description":"Human-readable decimal amount of asset withdrawn (e.g. \"1.5\"). Only present when the token is known in the asset registry."},"raw_amount":{"type":"string","description":"Base-unit amount of asset withdrawn (e.g. \"1500000\")."},"share_amount":{"type":"string","description":"Vault shares burned in base units."},"status":{"type":"string","enum":["succeeded"],"description":"The status of the wallet action."},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action, including transaction hashes."},"completed_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action completed successfully."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","caip2","vault_id","vault_address","asset_address","raw_amount","share_amount","status","steps","completed_at"],"description":"Payload for the wallet_action.earn_withdraw.succeeded webhook event.","title":"WalletActionEarnWithdrawSucceededWebhookPayload","x-stainless-model":"webhooks.wallet_action_earn_withdraw_succeeded_webhook_payload"},"WalletActionEarnWithdrawRejectedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.earn_withdraw.rejected"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"caip2":{"type":"string","description":"CAIP-2 chain identifier."},"vault_id":{"type":"string","description":"The vault ID."},"vault_address":{"type":"string","description":"ERC-4626 vault contract address."},"asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Only present when the token is known in the asset registry."},"asset_address":{"type":"string","description":"Underlying asset token address."},"decimals":{"type":"integer","description":"Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry."},"amount":{"type":"string","description":"Human-readable decimal amount of asset withdrawn (e.g. \"1.5\"). Only present when the token is known in the asset registry."},"raw_amount":{"type":"string","description":"Base-unit amount of asset withdrawn (e.g. \"1500000\")."},"status":{"type":"string","enum":["rejected"],"description":"The status of the wallet action."},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action at the time of rejection."},"rejected_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was rejected."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","caip2","vault_id","vault_address","asset_address","raw_amount","status","failure_reason","steps","rejected_at"],"description":"Payload for the wallet_action.earn_withdraw.rejected webhook event.","title":"WalletActionEarnWithdrawRejectedWebhookPayload","x-stainless-model":"webhooks.wallet_action_earn_withdraw_rejected_webhook_payload"},"WalletActionEarnWithdrawFailedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.earn_withdraw.failed"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"caip2":{"type":"string","description":"CAIP-2 chain identifier."},"vault_id":{"type":"string","description":"The vault ID."},"vault_address":{"type":"string","description":"ERC-4626 vault contract address."},"asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\"). Only present when the token is known in the asset registry."},"asset_address":{"type":"string","description":"Underlying asset token address."},"decimals":{"type":"integer","description":"Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only present when the token is known in the asset registry."},"amount":{"type":"string","description":"Human-readable decimal amount of asset withdrawn (e.g. \"1.5\"). Only present when the token is known in the asset registry."},"raw_amount":{"type":"string","description":"Base-unit amount of asset withdrawn (e.g. \"1500000\")."},"status":{"type":"string","enum":["failed"],"description":"The status of the wallet action."},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action. Completed steps will have transaction hashes; the failing step will have a failure_reason."},"failed_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action failed."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","caip2","vault_id","vault_address","asset_address","raw_amount","status","failure_reason","steps","failed_at"],"description":"Payload for the wallet_action.earn_withdraw.failed webhook event.","title":"WalletActionEarnWithdrawFailedWebhookPayload","x-stainless-model":"webhooks.wallet_action_earn_withdraw_failed_webhook_payload"},"WalletActionEarnIncentiveClaimCreatedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.earn_incentive_claim.created"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"chain":{"type":"string","description":"EVM chain name (e.g. \"base\", \"ethereum\")."},"rewards":{"type":["array","null"],"items":{"$ref":"#/components/schemas/EarnIncetiveClaimRewardEntry"},"description":"Claimed reward tokens. Populated after the preparation step fetches from Merkl."},"status":{"type":"string","enum":["pending"],"description":"The status of the wallet action."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","chain","rewards","status"],"description":"Payload for the wallet_action.earn_incentive_claim.created webhook event.","title":"WalletActionEarnIncentiveClaimCreatedWebhookPayload","x-stainless-model":"webhooks.wallet_action_earn_incentive_claim_created_webhook_payload"},"WalletActionEarnIncentiveClaimSucceededWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.earn_incentive_claim.succeeded"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"chain":{"type":"string","description":"EVM chain name (e.g. \"base\", \"ethereum\")."},"rewards":{"type":["array","null"],"items":{"$ref":"#/components/schemas/EarnIncetiveClaimRewardEntry"},"description":"Claimed reward tokens. Populated after the preparation step fetches from Merkl."},"status":{"type":"string","enum":["succeeded"],"description":"The status of the wallet action."},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action, including transaction hashes."},"completed_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action completed successfully."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","chain","rewards","status","steps","completed_at"],"description":"Payload for the wallet_action.earn_incentive_claim.succeeded webhook event.","title":"WalletActionEarnIncentiveClaimSucceededWebhookPayload","x-stainless-model":"webhooks.wallet_action_earn_incentive_claim_succeeded_webhook_payload"},"WalletActionEarnIncentiveClaimRejectedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.earn_incentive_claim.rejected"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"chain":{"type":"string","description":"EVM chain name (e.g. \"base\", \"ethereum\")."},"rewards":{"type":["array","null"],"items":{"$ref":"#/components/schemas/EarnIncetiveClaimRewardEntry"},"description":"Claimed reward tokens. Populated after the preparation step fetches from Merkl."},"status":{"type":"string","enum":["rejected"],"description":"The status of the wallet action."},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action at the time of rejection."},"rejected_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was rejected."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","chain","rewards","status","failure_reason","steps","rejected_at"],"description":"Payload for the wallet_action.earn_incentive_claim.rejected webhook event.","title":"WalletActionEarnIncentiveClaimRejectedWebhookPayload","x-stainless-model":"webhooks.wallet_action_earn_incentive_claim_rejected_webhook_payload"},"WalletActionEarnIncentiveClaimFailedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet_action.earn_incentive_claim.failed"],"description":"The type of webhook event."},"wallet_action_id":{"type":"string","description":"The ID of the wallet action."},"wallet_id":{"type":"string","description":"The ID of the wallet involved in the action."},"action_type":{"$ref":"#/components/schemas/WalletActionType"},"created_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action was created."},"chain":{"type":"string","description":"EVM chain name (e.g. \"base\", \"ethereum\")."},"rewards":{"type":["array","null"],"items":{"$ref":"#/components/schemas/EarnIncetiveClaimRewardEntry"},"description":"Claimed reward tokens. Populated after the preparation step fetches from Merkl."},"status":{"type":"string","enum":["failed"],"description":"The status of the wallet action."},"failure_reason":{"$ref":"#/components/schemas/FailureReason"},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action. Completed steps will have transaction hashes; the failing step will have a failure_reason."},"failed_at":{"type":"string","description":"ISO 8601 timestamp of when the wallet action failed."}},"required":["type","wallet_action_id","wallet_id","action_type","created_at","chain","rewards","status","failure_reason","steps","failed_at"],"description":"Payload for the wallet_action.earn_incentive_claim.failed webhook event.","title":"WalletActionEarnIncentiveClaimFailedWebhookPayload","x-stainless-model":"webhooks.wallet_action_earn_incentive_claim_failed_webhook_payload"},"WalletFundsNativeTokenAsset":{"type":"object","properties":{"type":{"type":"string","enum":["native-token"]},"address":{"type":"null"}},"required":["type","address"],"description":"A native token asset (e.g. ETH, SOL).","title":"WalletFundsNativeTokenAsset","x-stainless-model":"webhooks.wallet_funds_native_token_asset"},"WalletFundsErc20Asset":{"type":"object","properties":{"type":{"type":"string","enum":["erc20"]},"address":{"type":"string"}},"required":["type","address"],"description":"An ERC-20 token asset.","title":"WalletFundsErc20Asset","x-stainless-model":"webhooks.wallet_funds_erc_20_asset"},"WalletFundsSplAsset":{"type":"object","properties":{"type":{"type":"string","enum":["spl"]},"mint":{"type":"string"}},"required":["type","mint"],"description":"A Solana SPL token asset.","title":"WalletFundsSplAsset","x-stainless-model":"webhooks.wallet_funds_spl_asset"},"WalletFundsSacAsset":{"type":"object","properties":{"type":{"type":"string","enum":["sac"]},"address":{"type":"string"}},"required":["type","address"],"description":"A Stellar Asset Contract (SAC) asset.","title":"WalletFundsSacAsset","x-stainless-model":"webhooks.wallet_funds_sac_asset"},"WalletFundsAsset":{"oneOf":[{"$ref":"#/components/schemas/WalletFundsNativeTokenAsset"},{"$ref":"#/components/schemas/WalletFundsErc20Asset"},{"$ref":"#/components/schemas/WalletFundsSplAsset"},{"$ref":"#/components/schemas/WalletFundsSacAsset"}],"discriminator":{"propertyName":"type","mapping":{"native-token":"#/components/schemas/WalletFundsNativeTokenAsset","erc20":"#/components/schemas/WalletFundsErc20Asset","spl":"#/components/schemas/WalletFundsSplAsset","sac":"#/components/schemas/WalletFundsSacAsset"}},"description":"An asset involved in a wallet transfer.","title":"WalletFundsAsset","x-stainless-model":"webhooks.wallet_funds_asset"},"BlockInfo":{"type":"object","properties":{"number":{"type":"number","description":"The block number."},"timestamp":{"type":"number","description":"The block timestamp."}},"required":["number","timestamp"],"description":"Block metadata for a wallet transfer event.","title":"BlockInfo","x-stainless-model":"webhooks.block_info"},"BridgeCryptoDepositMetadata":{"type":"object","properties":{"type":{"type":"string","enum":["crypto_deposit"]},"method":{"type":"string","enum":["liquidation_address"]},"source_wallet_address":{"type":"string","description":"The address that sent the deposit."},"liquidation_address":{"type":"string","description":"The crypto address of the liquidation address that received the deposit."},"liquidation_address_id":{"type":"string"},"drain_id":{"type":"string"}},"required":["type","method","source_wallet_address","liquidation_address","liquidation_address_id","drain_id"],"description":"Bridge metadata for a crypto deposit via liquidation address.","title":"BridgeCryptoDepositMetadata","x-stainless-model":"webhooks.bridge_crypto_deposit_metadata"},"BridgeRefundMetadata":{"type":"object","properties":{"type":{"type":"string","enum":["refund"]},"method":{"type":"string","enum":["liquidation_address"]},"original_transaction_hash":{"type":"string","description":"The original deposit transaction hash that triggered the failed drain."},"liquidation_address_id":{"type":"string"},"drain_id":{"type":"string"}},"required":["type","method","original_transaction_hash","liquidation_address_id","drain_id"],"description":"Bridge metadata for a refund via liquidation address.","title":"BridgeRefundMetadata","x-stainless-model":"webhooks.bridge_refund_metadata"},"BridgeFiatDepositMetadata":{"type":"object","properties":{"type":{"type":"string","enum":["fiat_deposit"]},"method":{"type":"string","enum":["virtual_account"]},"virtual_account_id":{"type":"string"},"activity_id":{"type":"string"}},"required":["type","method","virtual_account_id","activity_id"],"description":"Bridge metadata for a fiat deposit via virtual account.","title":"BridgeFiatDepositMetadata","x-stainless-model":"webhooks.bridge_fiat_deposit_metadata"},"BridgeCryptoTransferMetadata":{"type":"object","properties":{"type":{"type":"string","enum":["crypto_deposit"]},"method":{"type":"string","enum":["transfer"]},"transfer_id":{"type":"string"},"source_wallet_address":{"type":"string","description":"The wallet address that sent the transfer."}},"required":["type","method","transfer_id","source_wallet_address"],"description":"Bridge metadata for a crypto deposit via transfer.","title":"BridgeCryptoTransferMetadata","x-stainless-model":"webhooks.bridge_crypto_transfer_metadata"},"BridgeFiatTransferMetadata":{"type":"object","properties":{"type":{"type":"string","enum":["fiat_deposit"]},"method":{"type":"string","enum":["transfer"]},"transfer_id":{"type":"string"}},"required":["type","method","transfer_id"],"description":"Bridge metadata for a fiat deposit via transfer.","title":"BridgeFiatTransferMetadata","x-stainless-model":"webhooks.bridge_fiat_transfer_metadata"},"BridgeTransferRefundMetadata":{"type":"object","properties":{"type":{"type":"string","enum":["refund"]},"method":{"type":"string","enum":["transfer"]},"transfer_id":{"type":"string"},"original_transaction_hash":{"type":"string","description":"The original transfer transaction hash (if available)."}},"required":["type","method","transfer_id"],"description":"Bridge metadata for a transfer refund.","title":"BridgeTransferRefundMetadata","x-stainless-model":"webhooks.bridge_transfer_refund_metadata"},"BridgeStaticMemoDepositMetadata":{"type":"object","properties":{"type":{"type":"string","enum":["fiat_deposit"]},"method":{"type":"string","enum":["static_memo"]},"static_memo_id":{"type":"string"},"static_memo_event_id":{"type":"string"}},"required":["type","method","static_memo_id","static_memo_event_id"],"description":"Bridge metadata for a fiat deposit via static memo.","title":"BridgeStaticMemoDepositMetadata","x-stainless-model":"webhooks.bridge_static_memo_deposit_metadata"},"BridgeMetadata":{"anyOf":[{"$ref":"#/components/schemas/BridgeCryptoDepositMetadata"},{"$ref":"#/components/schemas/BridgeRefundMetadata"},{"$ref":"#/components/schemas/BridgeFiatDepositMetadata"},{"$ref":"#/components/schemas/BridgeCryptoTransferMetadata"},{"$ref":"#/components/schemas/BridgeFiatTransferMetadata"},{"$ref":"#/components/schemas/BridgeTransferRefundMetadata"},{"$ref":"#/components/schemas/BridgeStaticMemoDepositMetadata"}],"description":"Metadata about a Bridge transaction associated with a wallet event.","title":"BridgeMetadata","x-stainless-model":"webhooks.bridge_metadata"},"FundsDepositedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet.funds_deposited"],"description":"The type of webhook event."},"wallet_id":{"type":"string","description":"The ID of the wallet."},"idempotency_key":{"type":"string","description":"A unique key for this event."},"caip2":{"type":"string","description":"The CAIP-2 chain identifier."},"asset":{"allOf":[{"$ref":"#/components/schemas/WalletFundsAsset"},{"description":"The asset type being transferred."}]},"amount":{"type":"string","description":"The amount transferred, as a stringified bigint."},"transaction_hash":{"type":"string","description":"The blockchain transaction hash."},"sender":{"type":"string","description":"The sender address."},"recipient":{"type":"string","description":"The recipient address."},"block":{"$ref":"#/components/schemas/BlockInfo"},"transaction_fee":{"type":"string","description":"The transaction fee paid, as a stringified bigint in the chain's native token."},"bridge_metadata":{"allOf":[{"$ref":"#/components/schemas/BridgeMetadata"},{"description":"Optional Bridge metadata for custodial wallet deposits."}]}},"required":["type","wallet_id","idempotency_key","caip2","asset","amount","transaction_hash","sender","recipient","block"],"description":"Payload for the wallet.funds_deposited webhook event.","title":"FundsDepositedWebhookPayload","x-stainless-model":"webhooks.funds_deposited_webhook_payload"},"FundsWithdrawnWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet.funds_withdrawn"],"description":"The type of webhook event."},"wallet_id":{"type":"string","description":"The ID of the wallet."},"idempotency_key":{"type":"string","description":"A unique key for this event."},"caip2":{"type":"string","description":"The CAIP-2 chain identifier."},"asset":{"allOf":[{"$ref":"#/components/schemas/WalletFundsAsset"},{"description":"The asset type being transferred."}]},"amount":{"type":"string","description":"The amount transferred, as a stringified bigint."},"transaction_hash":{"type":"string","description":"The blockchain transaction hash."},"sender":{"type":"string","description":"The sender address."},"recipient":{"type":"string","description":"The recipient address."},"block":{"$ref":"#/components/schemas/BlockInfo"},"transaction_fee":{"type":"string","description":"The transaction fee paid, as a stringified bigint in the chain's native token."}},"required":["type","wallet_id","idempotency_key","caip2","asset","amount","transaction_hash","sender","recipient","block"],"description":"Payload for the wallet.funds_withdrawn webhook event.","title":"FundsWithdrawnWebhookPayload","x-stainless-model":"webhooks.funds_withdrawn_webhook_payload"},"PrivateKeyExportWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet.private_key_export"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user who exported the key."},"wallet_id":{"type":"string","description":"The ID of the wallet."},"wallet_address":{"type":"string","description":"The address of the wallet."},"export_source":{"type":"string","enum":["display","client"]}},"required":["type","user_id","wallet_id","wallet_address"],"description":"Payload for the wallet.private_key_export webhook event.","title":"PrivateKeyExportWebhookPayload","x-stainless-model":"webhooks.private_key_export_webhook_payload"},"SeedPhraseExportWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet.seed_phrase_export"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user who exported the seed phrase."},"wallet_id":{"type":"string","description":"The ID of the wallet."},"wallet_address":{"type":"string","description":"The address of the wallet."},"export_source":{"type":"string","enum":["display","client"]}},"required":["type","user_id","wallet_id","wallet_address"],"description":"Payload for the wallet.seed_phrase_export webhook event.","title":"SeedPhraseExportWebhookPayload","x-stainless-model":"webhooks.seed_phrase_export_webhook_payload"},"WalletRecoverySetupWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet.recovery_setup"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user."},"wallet_id":{"type":"string","description":"The ID of the wallet."},"wallet_address":{"type":"string","description":"The address of the wallet."},"method":{"type":"string","enum":["user_passcode_derived_recovery_key","privy_passcode_derived_recovery_key","privy_generated_recovery_key","google_drive_recovery_secret","icloud_recovery_secret","recovery_encryption_key"],"description":"The recovery method that was set up."}},"required":["type","user_id","wallet_id","wallet_address","method"],"description":"Payload for the wallet.recovery_setup webhook event.","title":"WalletRecoverySetupWebhookPayload","x-stainless-model":"webhooks.wallet_recovery_setup_webhook_payload"},"WalletRecoveredWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet.recovered"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user."},"wallet_id":{"type":"string","description":"The ID of the wallet."},"wallet_address":{"type":"string","description":"The address of the wallet."}},"required":["type","user_id","wallet_id","wallet_address"],"description":"Payload for the wallet.recovered webhook event.","title":"WalletRecoveredWebhookPayload","x-stainless-model":"webhooks.wallet_recovered_webhook_payload"},"WalletArchivedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet.archived"],"description":"The type of webhook event."},"wallet_id":{"type":"string","description":"The ID of the archived wallet."},"wallet_address":{"type":"string","description":"The address of the archived wallet."},"chain_type":{"type":"string","description":"The chain type of the archived wallet."},"archived_at":{"type":"number","description":"Unix timestamp of when the wallet was archived."}},"required":["type","wallet_id","wallet_address","chain_type","archived_at"],"description":"Payload for the wallet.archived webhook event.","title":"WalletArchivedWebhookPayload","x-stainless-model":"webhooks.wallet_archived_webhook_payload"},"WalletRestoredWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["wallet.restored"],"description":"The type of webhook event."},"wallet_id":{"type":"string","description":"The ID of the restored wallet."},"wallet_address":{"type":"string","description":"The address of the restored wallet."},"chain_type":{"type":"string","description":"The chain type of the restored wallet."}},"required":["type","wallet_id","wallet_address","chain_type"],"description":"Payload for the wallet.restored webhook event.","title":"WalletRestoredWebhookPayload","x-stainless-model":"webhooks.wallet_restored_webhook_payload"},"YieldDepositConfirmedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["yield.deposit.confirmed"],"description":"The type of webhook event."},"vault_address":{"type":"string"},"caip2":{"type":"string"},"sender":{"type":"string"},"owner":{"type":"string"},"assets":{"type":"string"},"shares":{"type":"string"}},"required":["type","vault_address","caip2","sender","owner","assets","shares"],"description":"Payload for the yield.deposit.confirmed webhook event.","title":"YieldDepositConfirmedWebhookPayload","x-stainless-model":"webhooks.yield_deposit_confirmed_webhook_payload"},"YieldWithdrawConfirmedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["yield.withdraw.confirmed"],"description":"The type of webhook event."},"vault_address":{"type":"string"},"caip2":{"type":"string"},"sender":{"type":"string"},"owner":{"type":"string"},"assets":{"type":"string"},"shares":{"type":"string"},"receiver":{"type":"string"}},"required":["type","vault_address","caip2","sender","owner","assets","shares","receiver"],"description":"Payload for the yield.withdraw.confirmed webhook event.","title":"YieldWithdrawConfirmedWebhookPayload","x-stainless-model":"webhooks.yield_withdraw_confirmed_webhook_payload"},"YieldClaimReward":{"type":"object","properties":{"token_address":{"type":"string"},"token_symbol":{"type":"string"},"amount":{"type":"string"}},"required":["token_address","token_symbol","amount"],"description":"A single reward token claimed from a yield vault.","title":"YieldClaimReward","x-stainless-model":"webhooks.yield_claim_reward"},"YieldClaimConfirmedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["yield.claim.confirmed"],"description":"The type of webhook event."},"wallet_id":{"type":"string"},"caip2":{"type":"string"},"transaction_id":{"type":"string"},"rewards":{"type":"array","items":{"$ref":"#/components/schemas/YieldClaimReward"}}},"required":["type","wallet_id","caip2","transaction_id","rewards"],"description":"Payload for the yield.claim.confirmed webhook event.","title":"YieldClaimConfirmedWebhookPayload","x-stainless-model":"webhooks.yield_claim_confirmed_webhook_payload"},"WebhookPayload":{"anyOf":[{"$ref":"#/components/schemas/UserCreatedWebhookPayload"},{"$ref":"#/components/schemas/UserAuthenticatedWebhookPayload"},{"$ref":"#/components/schemas/UserLinkedAccountWebhookPayload"},{"$ref":"#/components/schemas/UserUnlinkedAccountWebhookPayload"},{"$ref":"#/components/schemas/UserUpdatedAccountWebhookPayload"},{"$ref":"#/components/schemas/UserTransferredAccountWebhookPayload"},{"$ref":"#/components/schemas/UserWalletCreatedWebhookPayload"},{"$ref":"#/components/schemas/TransactionBroadcastedWebhookPayload"},{"$ref":"#/components/schemas/TransactionConfirmedWebhookPayload"},{"$ref":"#/components/schemas/TransactionExecutionRevertedWebhookPayload"},{"$ref":"#/components/schemas/TransactionStillPendingWebhookPayload"},{"$ref":"#/components/schemas/TransactionFailedWebhookPayload"},{"$ref":"#/components/schemas/TransactionReplacedWebhookPayload"},{"$ref":"#/components/schemas/TransactionProviderErrorWebhookPayload"},{"$ref":"#/components/schemas/FundsDepositedWebhookPayload"},{"$ref":"#/components/schemas/FundsWithdrawnWebhookPayload"},{"$ref":"#/components/schemas/PrivateKeyExportWebhookPayload"},{"$ref":"#/components/schemas/SeedPhraseExportWebhookPayload"},{"$ref":"#/components/schemas/WalletRecoverySetupWebhookPayload"},{"$ref":"#/components/schemas/WalletRecoveredWebhookPayload"},{"$ref":"#/components/schemas/WalletArchivedWebhookPayload"},{"$ref":"#/components/schemas/WalletRestoredWebhookPayload"},{"$ref":"#/components/schemas/MfaEnabledWebhookPayload"},{"$ref":"#/components/schemas/MfaDisabledWebhookPayload"},{"$ref":"#/components/schemas/YieldDepositConfirmedWebhookPayload"},{"$ref":"#/components/schemas/YieldWithdrawConfirmedWebhookPayload"},{"$ref":"#/components/schemas/YieldClaimConfirmedWebhookPayload"},{"$ref":"#/components/schemas/UserOperationCompletedWebhookPayload"},{"$ref":"#/components/schemas/IntentCreatedWebhookPayload"},{"$ref":"#/components/schemas/IntentAuthorizedWebhookPayload"},{"$ref":"#/components/schemas/IntentRejectedWebhookPayload"},{"$ref":"#/components/schemas/IntentExecutedWebhookPayload"},{"$ref":"#/components/schemas/IntentFailedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionSwapCreatedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionSwapSucceededWebhookPayload"},{"$ref":"#/components/schemas/WalletActionSwapRejectedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionSwapFailedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionTransferCreatedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionTransferSucceededWebhookPayload"},{"$ref":"#/components/schemas/WalletActionTransferRejectedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionTransferFailedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionEarnDepositCreatedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionEarnDepositSucceededWebhookPayload"},{"$ref":"#/components/schemas/WalletActionEarnDepositRejectedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionEarnDepositFailedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionEarnWithdrawCreatedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionEarnWithdrawSucceededWebhookPayload"},{"$ref":"#/components/schemas/WalletActionEarnWithdrawRejectedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionEarnWithdrawFailedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionEarnIncentiveClaimCreatedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionEarnIncentiveClaimSucceededWebhookPayload"},{"$ref":"#/components/schemas/WalletActionEarnIncentiveClaimRejectedWebhookPayload"},{"$ref":"#/components/schemas/WalletActionEarnIncentiveClaimFailedWebhookPayload"}],"description":"Union of all webhook payload schemas.","title":"WebhookPayload","x-stainless-model":"webhooks.webhook_payload"},"KrakenEmbedQuoteExecutedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["kraken_embed.quote.executed"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user."},"quote_id":{"type":"string","description":"The ID of the executed quote."},"executed_at":{"type":"string","description":"ISO 8601 timestamp of when the quote was executed."}},"required":["type","user_id","quote_id","executed_at"],"description":"Payload for the kraken_embed.quote_executed webhook event.","title":"KrakenEmbedQuoteExecutedWebhookPayload","x-stainless-model":"webhooks.kraken_embed_quote_executed_webhook_payload"},"KrakenEmbedQuoteExecutionFailedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["kraken_embed.quote.execution_failed"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user."},"quote_id":{"type":"string","description":"The ID of the quote that failed to execute."},"reason":{"type":"string","description":"A human-readable description of why the quote execution failed. Intended for display and logging purposes only."},"failed_at":{"type":"string","description":"ISO 8601 timestamp of when the quote execution failed."}},"required":["type","user_id","quote_id","reason","failed_at"],"description":"Payload for the kraken_embed.quote.execution_failed webhook event.","title":"KrakenEmbedQuoteExecutionFailedWebhookPayload","x-stainless-model":"webhooks.kraken_embed_quote_execution_failed_webhook_payload"},"KrakenEmbedQuoteCancelledWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["kraken_embed.quote.cancelled"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user."},"quote_id":{"type":"string","description":"The ID of the cancelled quote."},"reason":{"type":"string","description":"A human-readable description of why the quote was cancelled. Intended for display and logging purposes only."},"cancelled_at":{"type":"string","description":"ISO 8601 timestamp of when the quote was cancelled."}},"required":["type","user_id","quote_id","reason","cancelled_at"],"description":"Payload for the kraken_embed.quote.cancelled webhook event.","title":"KrakenEmbedQuoteCancelledWebhookPayload","x-stainless-model":"webhooks.kraken_embed_quote_cancelled_webhook_payload"},"KrakenEmbedCustomOrderExecutedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["kraken_embed.custom_order.executed"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user."},"custom_order_id":{"type":"string","description":"The ID of the executed custom order."},"executed_at":{"type":"string","description":"ISO 8601 timestamp of when the custom order was executed."}},"required":["type","user_id","custom_order_id","executed_at"],"description":"Payload for the kraken_embed.custom_order.executed webhook event.","title":"KrakenEmbedCustomOrderExecutedWebhookPayload","x-stainless-model":"webhooks.kraken_embed_custom_order_executed_webhook_payload"},"KrakenEmbedCustomOrderExecutionFailedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["kraken_embed.custom_order.execution_failed"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user."},"custom_order_id":{"type":"string","description":"The ID of the custom order that failed to execute."},"reason":{"type":"string","description":"A human-readable description of why the custom order execution failed. Intended for display and logging purposes only."},"failed_at":{"type":"string","description":"ISO 8601 timestamp of when the custom order execution failed."}},"required":["type","user_id","custom_order_id","reason","failed_at"],"description":"Payload for the kraken_embed.custom_order.execution_failed webhook event.","title":"KrakenEmbedCustomOrderExecutionFailedWebhookPayload","x-stainless-model":"webhooks.kraken_embed_custom_order_execution_failed_webhook_payload"},"KrakenEmbedCustomOrderCancelledWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["kraken_embed.custom_order.cancelled"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user."},"custom_order_id":{"type":"string","description":"The ID of the cancelled custom order."},"reason":{"type":"string","description":"A human-readable description of why the custom order was cancelled. Intended for display and logging purposes only."},"cancelled_at":{"type":"string","description":"ISO 8601 timestamp of when the custom order was cancelled."}},"required":["type","user_id","custom_order_id","reason","cancelled_at"],"description":"Payload for the kraken_embed.custom_order.cancelled webhook event.","title":"KrakenEmbedCustomOrderCancelledWebhookPayload","x-stainless-model":"webhooks.kraken_embed_custom_order_cancelled_webhook_payload"},"KrakenEmbedUserVerifiedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["kraken_embed.user.verified"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user."},"verified_at":{"type":"string","description":"ISO 8601 timestamp of when the user was verified."}},"required":["type","user_id","verified_at"],"description":"Payload for the kraken_embed.user.verified webhook event.","title":"KrakenEmbedUserVerifiedWebhookPayload","x-stainless-model":"webhooks.kraken_embed_user_verified_webhook_payload"},"KrakenEmbedUserDisabledWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["kraken_embed.user.disabled"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user."},"disabled_at":{"type":"string","description":"ISO 8601 timestamp of when the user was disabled."}},"required":["type","user_id","disabled_at"],"description":"Payload for the kraken_embed.user.disabled webhook event.","title":"KrakenEmbedUserDisabledWebhookPayload","x-stainless-model":"webhooks.kraken_embed_user_disabled_webhook_payload"},"KrakenEmbedUserClosedWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["kraken_embed.user.closed"],"description":"The type of webhook event."},"user_id":{"type":"string","description":"The ID of the user."},"closed_at":{"type":"string","description":"ISO 8601 timestamp of when the user was closed."}},"required":["type","user_id","closed_at"],"description":"Payload for the kraken_embed.user.closed webhook event.","title":"KrakenEmbedUserClosedWebhookPayload","x-stainless-model":"webhooks.kraken_embed_user_closed_webhook_payload"},"CurrencyAmount":{"type":"object","properties":{"value":{"type":"string","description":"The monetary value as a string."},"currency":{"type":"string","enum":["usd"],"description":"Currency code"}},"required":["value","currency"],"description":"A monetary value with its currency denomination.","title":"CurrencyAmount","example":{"value":"100.00","currency":"usd"},"x-stainless-model":"shared.currency_amount"},"BalanceAsset":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the asset (e.g. USDC, ETH)."},"amount":{"type":"string","description":"The amount of the asset held, denominated in the unit of the asset itself, with 1 decimal of precision."},"price":{"allOf":[{"$ref":"#/components/schemas/CurrencyAmount"},{"description":"The price of the asset in the provided currency."}]}},"required":["symbol","amount","price"],"description":"A single asset entry in a balance, representing holdings across all supported chains.","title":"BalanceAsset","x-stainless-model":"accounts.balance_asset"},"BalanceAssetByChain":{"type":"object","properties":{"symbol":{"type":"string","description":"The symbol of the asset (e.g. USDC, ETH)."},"amount":{"type":"string","description":"The amount of the asset held on this chain, denominated in the unit of the asset itself."},"price":{"allOf":[{"$ref":"#/components/schemas/CurrencyAmount"},{"description":"The price of the asset in the provided currency."}]},"chain_id":{"type":"string","description":"The CAIP-2 chain identifier (e.g. eip155:8453)."}},"required":["symbol","amount","price","chain_id"],"description":"A single asset entry scoped to a specific chain.","title":"BalanceAssetByChain","x-stainless-model":"accounts.balance_asset_by_chain"},"BalanceResponse":{"type":"object","properties":{"total":{"allOf":[{"$ref":"#/components/schemas/CurrencyAmount"},{"description":"The total balance across all assets."}]},"assets":{"type":"array","items":{"$ref":"#/components/schemas/BalanceAsset"},"description":"The individual asset balances, each computed across all supported chains."},"assets_by_chain":{"type":"array","items":{"$ref":"#/components/schemas/BalanceAssetByChain"},"description":"Individual asset balances per chain."}},"required":["total","assets"],"description":"Balances for an asset account or wallet","title":"BalanceResponse","x-stainless-model":"accounts.balance_response"},"AccountWallet":{"type":"object","properties":{"id":{"type":"string","description":"The wallet ID."},"chain_type":{"$ref":"#/components/schemas/FirstClassChainType"},"custody":{"$ref":"#/components/schemas/WalletCustodian"},"address":{"type":"string","description":"The on-chain address of the wallet."}},"required":["id","chain_type","address"],"description":"A wallet belonging to a digital asset account.","title":"AccountWallet","x-stainless-model":"accounts.account_wallet"},"AccountResponse":{"type":"object","properties":{"id":{"type":"string","description":"The account ID."},"display_name":{"type":["string","null"],"description":"An optional display name for the account."},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/AccountWallet"},"description":"The wallets belonging to this account."}},"required":["id","display_name","wallets"],"description":"A digital asset account that groups wallets under a single entity.","title":"AccountResponse","x-stainless-model":"accounts.account_response"},"AccountWalletConfigurationItem":{"type":"object","properties":{"chain_type":{"$ref":"#/components/schemas/FirstClassChainType"},"custody":{"$ref":"#/components/schemas/WalletCustodian"}},"required":["chain_type"],"additionalProperties":false,"description":"Configuration for a wallet to create within an account.","title":"AccountWalletConfigurationItem","x-stainless-model":"accounts.account_wallet_configuration_item"},"AccountDisplayName":{"type":"string","description":"An optional display name for the account.","title":"AccountDisplayName","x-stainless-model":"accounts.account_display_name"},"AccountWalletsConfiguration":{"type":"array","items":{"$ref":"#/components/schemas/AccountWalletConfigurationItem"},"maxItems":5,"description":"Configuration for the wallets on this account.","title":"AccountWalletsConfiguration","x-stainless-model":"accounts.account_wallets_configuration"},"AccountWalletIds":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":5,"description":"IDs for wallets to include in this account.","title":"AccountWalletIds","x-stainless-model":"accounts.account_wallet_ids"},"CreateAccountFromWalletsConfigurationInput":{"type":"object","properties":{"display_name":{"$ref":"#/components/schemas/AccountDisplayName"},"wallets_configuration":{"allOf":[{"$ref":"#/components/schemas/AccountWalletsConfiguration"},{"minItems":1}]}},"required":["wallets_configuration"],"additionalProperties":false,"description":"Input for creating a digital asset account from new wallets with a `wallets_configuration` specification.","title":"CreateAccountFromWalletsConfigurationInput","x-stainless-model":"accounts.create_account_from_wallets_configuration_input"},"CreateAccountFromWalletIdsInput":{"type":"object","properties":{"display_name":{"$ref":"#/components/schemas/AccountDisplayName"},"wallet_ids":{"$ref":"#/components/schemas/AccountWalletIds"}},"required":["wallet_ids"],"additionalProperties":false,"description":"Input for creating a digital asset account from existing wallets with a `wallet_ids` parameter.","title":"CreateAccountFromWalletIdsInput","x-stainless-model":"accounts.create_account_from_wallet_ids_input"},"CreateAccountInput":{"anyOf":[{"$ref":"#/components/schemas/CreateAccountFromWalletsConfigurationInput"},{"$ref":"#/components/schemas/CreateAccountFromWalletIdsInput"}],"description":"Input for creating a digital asset account.","title":"CreateAccountInput","x-stainless-model":"accounts.create_account_input"},"UpdateAccountFromWalletsConfigurationInput":{"type":"object","properties":{"display_name":{"$ref":"#/components/schemas/AccountDisplayName"},"wallets_configuration":{"$ref":"#/components/schemas/AccountWalletsConfiguration"}},"additionalProperties":false,"description":"Input for updating a digital asset account with a `wallets_configuration` specification.","title":"UpdateAccountFromWalletsConfigurationInput","x-stainless-model":"accounts.update_account_from_wallets_configuration_input"},"UpdateAccountFromWalletIdsInput":{"type":"object","properties":{"display_name":{"$ref":"#/components/schemas/AccountDisplayName"},"wallet_ids":{"$ref":"#/components/schemas/AccountWalletIds"}},"required":["wallet_ids"],"additionalProperties":false,"description":"Input for updating a digital asset account by adding existing wallets with a `wallet_ids` parameter.","title":"UpdateAccountFromWalletIdsInput","x-stainless-model":"accounts.update_account_from_wallet_ids_input"},"UpdateAccountInput":{"anyOf":[{"$ref":"#/components/schemas/UpdateAccountFromWalletsConfigurationInput"},{"$ref":"#/components/schemas/UpdateAccountFromWalletIdsInput"}],"description":"Input for updating a digital asset account.","title":"UpdateAccountInput","x-stainless-model":"accounts.update_account_input"},"AccountsListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AccountResponse"},"description":"The list of accounts."},"next_cursor":{"type":["string","null"],"description":"Cursor for fetching the next page of results, or null if no more results."}},"required":["data","next_cursor"],"description":"Paginated list of digital asset accounts.","title":"AccountsListResponse","x-stainless-model":"accounts.accounts_list_response"},"AssetAccountWithBalance":{"type":"object","properties":{"id":{"type":"string","description":"The account ID."},"display_name":{"type":["string","null"],"description":"An optional display name for the account."},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/AccountWallet"},"description":"The wallets belonging to this account."},"balance":{"$ref":"#/components/schemas/BalanceResponse"}},"required":["id","display_name","wallets","balance"],"description":"A digital asset account with its aggregated balance across all wallets and chains.","title":"AssetAccountWithBalance","x-stainless-model":"accounts.asset_account_with_balance"},"AccountsDashboardListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AssetAccountWithBalance"},"description":"The list of accounts, with balances included for dashboard display."},"next_cursor":{"type":["string","null"],"description":"Cursor for fetching the next page of results, or null if no more results."}},"required":["data","next_cursor"],"description":"Paginated list of digital asset accounts for the dashboard.","title":"AccountsDashboardListResponse","x-stainless-model":"accounts.accounts_dashboard_list_response"},"AccountBalanceResponse":{"type":"object","properties":{"total":{"allOf":[{"$ref":"#/components/schemas/CurrencyAmount"},{"description":"The total balance across all assets."}]},"assets":{"type":"array","items":{"$ref":"#/components/schemas/BalanceAsset"},"description":"The individual asset balances, each computed across all supported chains."},"assets_by_chain":{"type":"array","items":{"$ref":"#/components/schemas/BalanceAssetByChain"},"description":"Individual asset balances per chain."}},"required":["total","assets"],"description":"The balance of a digital asset account, aggregated across all wallets and supported chains.","title":"AccountBalanceResponse","x-stainless-model":"accounts.account_balance_response"},"ChainTestnetMode":{"type":"string","enum":["true","false"],"description":"When set to true, returns balances from testnet chains instead of mainnets.","title":"ChainTestnetMode","x-stainless-model":"accounts.chain_testnet_mode"},"AccountBalanceParams":{"type":"object","properties":{"testnet_mode":{"$ref":"#/components/schemas/ChainTestnetMode"}},"description":"Query parameters for the account balance endpoint.","title":"AccountBalanceParams","x-stainless-model":"accounts.account_balance_params"},"SwapSource":{"type":"object","properties":{"asset_address":{"type":"string","description":"Token contract address to sell, or \"native\" for the chain's native token."},"caip2":{"type":"string","description":"CAIP-2 chain identifier (e.g., \"eip155:1\")."}},"required":["asset_address","caip2"],"additionalProperties":false,"description":"The input side of a swap request, including token and chain.","title":"SwapSource","x-stainless-model":"swaps.swap_source"},"SwapQuoteDestination":{"type":"object","properties":{"asset_address":{"type":"string","description":"Token contract address to buy, or \"native\" for the chain's native token."},"caip2":{"type":"string","description":"CAIP-2 chain identifier for the destination. Defaults to source chain if omitted. Will result in a cross-chain swap if source and destination chains differ."},"destination_address":{"type":"string","description":"Address to receive the output tokens. Defaults to the swapping wallet address. Required when swapping between chains with different address types (e.g. EVM to Solana)."}},"required":["asset_address"],"additionalProperties":false,"description":"The output side of a swap quote request.","title":"SwapQuoteDestination","x-stainless-model":"swaps.swap_quote_destination"},"SwapDestination":{"type":"object","properties":{"asset_address":{"type":"string","description":"Token contract address to buy, or \"native\" for the chain's native token."},"caip2":{"type":"string","description":"CAIP-2 chain identifier for the destination. Defaults to source chain if omitted. Specify a different chain for cross-chain swaps."},"destination_address":{"type":"string","description":"Address to receive the output tokens. Defaults to the swapping wallet address. Required when swapping between different chain types (e.g. EVM to Solana)."}},"required":["asset_address"],"additionalProperties":false,"description":"The output side of a swap execution request.","title":"SwapDestination","x-stainless-model":"swaps.swap_destination"},"SwapQuoteRequestBody":{"type":"object","properties":{"base_amount":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$","description":"Amount in base units (e.g., wei for ETH). Must be a non-negative integer string."},"amount_type":{"allOf":[{"$ref":"#/components/schemas/AmountType"},{"default":"exact_input","description":"Whether the amount refers to the input token (exact_input) or output token (exact_output)."}]},"source":{"$ref":"#/components/schemas/SwapSource"},"destination":{"$ref":"#/components/schemas/SwapQuoteDestination"},"slippage_bps":{"type":"integer","minimum":0,"maximum":10000,"description":"Maximum slippage tolerance in basis points (e.g., 50 for 0.5%). If omitted, auto-slippage is used."},"fee_configuration":{"allOf":[{"$ref":"#/components/schemas/FeeConfiguration"},{"description":"Optional fee configuration for the swap. If omitted, cross-chain swaps will not charge additional fees."}]}},"required":["base_amount","source","destination"],"additionalProperties":false,"description":"Input for requesting a token swap quote.","title":"SwapQuoteRequestBody","example":{"base_amount":"1000000000000000000","amount_type":"exact_input","source":{"asset_address":"native","caip2":"eip155:1"},"destination":{"asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}},"x-stainless-model":"swaps.swap_quote_request_body"},"SwapQuoteResponse":{"type":"object","properties":{"caip2":{"type":"string","description":"Chain identifier."},"input_token":{"type":"string","description":"Token address being sold."},"output_token":{"type":"string","description":"Token address being bought."},"input_amount":{"type":"string","description":"Amount of input token in base units."},"est_output_amount":{"type":"string","description":"Estimated amount of output token in base units."},"minimum_output_amount":{"type":"string","description":"Minimum output amount accounting for slippage, in base units."},"gas_estimate":{"type":"string","description":"Estimated gas cost in base units of the native token. @deprecated For cross-chain swaps, use estimated_gas instead."},"destination_caip2":{"type":"string","description":"Destination chain CAIP-2 identifier for cross-chain swaps. Only present for cross-chain swaps."},"estimated_fees":{"type":"array","items":{"$ref":"#/components/schemas/FeeLineItem"},"description":"Estimated fees for the swap. Only present for cross-chain swaps."},"estimated_gas":{"allOf":[{"$ref":"#/components/schemas/Gas"},{"description":"Estimated gas cost with full token metadata. Only present for cross-chain swaps."}]},"expires_at":{"type":"number","description":"Quote expiry as Unix timestamp (seconds). Only present for cross-chain quotes."}},"required":["caip2","input_token","output_token","input_amount","est_output_amount","minimum_output_amount","gas_estimate"],"description":"Pricing data for a token swap.","title":"SwapQuoteResponse","example":{"caip2":"eip155:1","input_token":"native","output_token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","input_amount":"1000000000000000000","est_output_amount":"2000000000","minimum_output_amount":"1980000000","gas_estimate":"150000"},"x-stainless-model":"swaps.swap_quote_response"},"SwapRequestBody":{"type":"object","properties":{"base_amount":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$","description":"Amount in base units (e.g., wei for ETH). Must be a non-negative integer string."},"amount_type":{"allOf":[{"$ref":"#/components/schemas/AmountType"},{"default":"exact_input","description":"Whether the amount refers to the input token (exact_input) or output token (exact_output)."}]},"source":{"$ref":"#/components/schemas/SwapSource"},"destination":{"$ref":"#/components/schemas/SwapDestination"},"slippage_bps":{"type":"integer","minimum":0,"maximum":10000,"description":"Maximum slippage tolerance in basis points (e.g., 50 for 0.5%)."},"fee_configuration":{"allOf":[{"$ref":"#/components/schemas/FeeConfiguration"},{"description":"Optional fee configuration for cross-chain swaps. If omitted, cross-chain swaps only charge provider fees."}]}},"required":["base_amount","source","destination"],"additionalProperties":false,"description":"Input for executing a token swap.","title":"SwapRequestBody","example":{"base_amount":"1000000000000000000","amount_type":"exact_input","source":{"asset_address":"native","caip2":"eip155:1"},"destination":{"asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","caip2":"eip155:1"},"slippage_bps":50},"x-stainless-model":"swaps.swap_request_body"},"WalletApiRegisterAuthorizationKeyInput":{"type":"object","properties":{"display_name":{"type":"string"},"public_key":{"type":"string"},"role":{"$ref":"#/components/schemas/AuthorizationKeyRole"}},"required":["public_key"],"description":"Input for registering or updating an application public signing key for API-based wallet actions.","title":"WalletApiRegisterAuthorizationKeyInput","x-stainless-model":"wallets.wallet_api_register_authorization_key_input"},"WalletApiRevokeAuthorizationKeyInput":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"description":"Input for revoking an application authorization key.","title":"WalletApiRevokeAuthorizationKeyInput","x-stainless-model":"wallets.wallet_api_revoke_authorization_key_input"},"AuthorizationKeyDashboardResponse":{"type":"object","properties":{"id":{"type":"string"},"display_name":{"type":["string","null"]},"public_key":{"type":"string"},"role":{"$ref":"#/components/schemas/AuthorizationKeyRole"},"created_at":{"type":"number"}},"required":["id","display_name","public_key","role","created_at"],"description":"Dashboard response for a wallet authorization key (includes role, which is an internal-only concept).","title":"AuthorizationKeyDashboardResponse","x-stainless-model":"wallets.authorization_key_dashboard_response"},"AuthorizationKeyResponse":{"type":"object","properties":{"id":{"type":"string"},"display_name":{"type":["string","null"]},"public_key":{"type":"string"},"created_at":{"type":"number"}},"required":["id","display_name","public_key","created_at"],"description":"Public-facing response for a wallet authorization key.","title":"AuthorizationKeyResponse","x-stainless-model":"wallets.authorization_key_response"},"KrakenEmbedFullName":{"type":"object","properties":{"first_name":{"type":"string"},"middle_name":{"type":["string","null"]},"last_name":{"type":"string"}},"required":["first_name","last_name"],"additionalProperties":false,"description":"User's full name including first, optional middle, and last name.","title":"KrakenEmbedFullName","x-stainless-model":"kraken_embed.kraken_embed_full_name"},"KrakenEmbedResidence":{"type":"object","properties":{"line1":{"type":"string"},"line2":{"type":["string","null"]},"city":{"type":"string"},"postal_code":{"type":"string"},"province":{"type":["string","null"]},"country":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","AC","AN","AP","CP","DG","EA","EU","IC","JX","TA","QO","XK","0C"]}},"required":["line1","city","postal_code","country"],"additionalProperties":false,"description":"User's residential address including street, city, postal code, and country.","title":"KrakenEmbedResidence","x-stainless-model":"kraken_embed.kraken_embed_residence"},"KrakenEmbedGetAssetListQueryParamsSchema":{"type":"object","properties":{"filter[user]":{"type":"string"},"filter[assets]":{"type":"array","items":{"type":"string","maxLength":16}},"filter[platform_statuses]":{"type":"array","items":{"anyOf":[{"type":"string","enum":["enabled","deposit_only","withdrawal_only","funding_temporarily_disabled","disabled"]},{"type":"string"}]}},"filter[tradable_only]":{"type":["boolean","null"]},"quote":{"type":"string","maxLength":16},"sort":{"type":"string","enum":["trending","market_cap_rank","-market_cap_rank","symbol","-symbol","name","-name","change_percent_1h","-change_percent_1h","change_percent_24h","-change_percent_24h","change_percent_7d","-change_percent_7d","change_percent_30d","-change_percent_30d","change_percent_1y","-change_percent_1y","listing_date","-listing_date"]},"page[size]":{"type":"integer","minimum":1,"maximum":100},"page[number]":{"type":"integer","minimum":1},"lang":{"type":"string","pattern":"^([a-zA-Z]{1,8})(-[a-zA-Z\\d]{1,8})*$"}},"additionalProperties":false,"description":"Query parameters for listing and filtering available assets.","title":"KrakenEmbedGetAssetListQueryParamsSchema","example":{"filter[user]":"cmdnvsfxa0007jt0jy61eghjk","quote":"USD","filter[tradable_only]":true,"page[size]":50},"x-stainless-model":"kraken_embed.kraken_embed_get_asset_list_query_params_schema"},"KrakenEmbedGetPortfolioDetailsQueryParamsSchema":{"type":"object","properties":{"quote":{"type":"string","maxLength":16}},"additionalProperties":false,"description":"Query parameters for portfolio details endpoint.","title":"KrakenEmbedGetPortfolioDetailsQueryParamsSchema","example":{"quote":"USD"},"x-stainless-model":"kraken_embed.kraken_embed_get_portfolio_details_query_params_schema"},"KrakenEmbedGetPortfolioSummaryQueryParams":{"type":"object","properties":{"quote":{"type":"string","maxLength":16},"include[current_day_pnl]":{"type":"string","enum":["true","false"]}},"additionalProperties":false,"description":"Query parameters for getting a portfolio summary.","title":"KrakenEmbedGetPortfolioSummaryQueryParams","example":{"quote":"USD"},"x-stainless-model":"kraken_embed.kraken_embed_get_portfolio_summary_query_params"},"KrakenEmbedCurrentDayPnl":{"type":"object","properties":{"since":{"type":"string","format":"date-time"},"pnl":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["since","pnl"],"additionalProperties":false,"description":"Current day profit and loss for a portfolio, calculated from the most recent available balance.","title":"KrakenEmbedCurrentDayPnl","x-stainless-model":"kraken_embed.kraken_embed_current_day_pnl"},"KrakenEmbedPortfolioSummaryPayload":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time"},"currency":{"type":"string","maxLength":16},"portfolio_value":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"withheld_value":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"open_orders":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"available_balance":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"lots_upnl":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"cost_basis":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"current_day_pnl":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedCurrentDayPnl"},{"type":"null"},{"type":"null"}]}},"required":["timestamp","currency","portfolio_value","withheld_value","open_orders","available_balance"],"additionalProperties":false,"description":"Portfolio summary payload containing balances, value, and profit/loss information.","title":"KrakenEmbedPortfolioSummaryPayload","x-stainless-model":"kraken_embed.kraken_embed_portfolio_summary_payload"},"KrakenEmbedGetPortfolioSummaryResult":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"string"}},"error":{"type":"array","items":{"type":"string"}},"result":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedPortfolioSummaryPayload"},{"type":"null"}]}},"required":["result"],"additionalProperties":false,"description":"Kraken API response envelope for portfolio summary, containing optional errors and the result payload.","title":"KrakenEmbedGetPortfolioSummaryResult","x-stainless-model":"kraken_embed.kraken_embed_get_portfolio_summary_result"},"KrakenEmbedGetPortfolioSummaryResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KrakenEmbedGetPortfolioSummaryResult"}},"required":["data"],"description":"High-level summary of a user's portfolio including total value, available balance, and unrealized P&L.","title":"KrakenEmbedGetPortfolioSummaryResponse","example":{"data":{"result":{"timestamp":"2024-04-15T12:00:00Z","currency":"USD","portfolio_value":"35000.00","withheld_value":"0.00","open_orders":"0.00","available_balance":"35000.00","lots_upnl":"5000.00","cost_basis":"30000.00","current_day_pnl":null}}},"x-stainless-model":"kraken_embed.kraken_embed_get_portfolio_summary_response"},"KrakenEmbedPortfolioTransactionRefIdType":{"type":"string","enum":["simple_order_quote","simple_order_quote_failed"],"description":"The type of reference ID used to filter portfolio transactions by quote or failed quote references.","title":"KrakenEmbedPortfolioTransactionRefIdType","x-stainless-model":"kraken_embed.kraken_embed_portfolio_transaction_ref_id_type"},"KrakenEmbedPortfolioTransactionRefId":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/KrakenEmbedPortfolioTransactionRefIdType"},"ref_id":{"type":"string","maxLength":64}},"required":["type","ref_id"],"additionalProperties":false,"description":"A reference ID filter for portfolio transaction queries, identifying a transaction by type and reference identifier.","title":"KrakenEmbedPortfolioTransactionRefId","x-stainless-model":"kraken_embed.kraken_embed_portfolio_transaction_ref_id"},"KrakenEmbedGetPortfolioTransactionsQueryParamsSchema":{"type":"object","properties":{"cursor":{"type":"string"},"types":{"type":"array","items":{"type":"string","enum":["simple_order","simple_order_failed","earn_reward"]}},"page_size":{"type":"integer","minimum":1,"maximum":25},"assets":{"type":"array","items":{"type":"string","maxLength":16}},"from_time":{"type":"string","format":"date-time"},"until_time":{"type":"string","format":"date-time"},"statuses":{"type":"array","items":{"type":"string","enum":["unspecified","in_progress","successful","failed"]}},"ids":{"type":"array","items":{"type":"string"}},"sorting":{"type":"string","enum":["descending","ascending"]},"quote":{"type":"string","maxLength":16},"ref_ids":{"type":"array","items":{"$ref":"#/components/schemas/KrakenEmbedPortfolioTransactionRefId"}}},"additionalProperties":false,"description":"Query parameters for filtering and paginating portfolio transactions.","title":"KrakenEmbedGetPortfolioTransactionsQueryParamsSchema","example":{"page_size":20,"sorting":"descending","statuses":["successful"],"ref_ids":[{"type":"simple_order_quote","ref_id":"BQO75ZK-J4KOQ-TBPDMT"}]},"x-stainless-model":"kraken_embed.kraken_embed_get_portfolio_transactions_query_params_schema"},"KrakenEmbedGetQuoteQueryParams":{"type":"object","properties":{"user_id":{"type":"string","minLength":1,"description":"The ID of the Privy user."}},"required":["user_id"],"additionalProperties":false,"description":"Query parameters for getting a quote status.","title":"KrakenEmbedGetQuoteQueryParams","example":{"user_id":"cmdnvsfxa0007jt0jy61eghjk"},"x-stainless-model":"kraken_embed.kraken_embed_get_quote_query_params"},"KrakenEmbedStartVerificationDebug":{"type":"object","properties":{"outcome":{"type":["string","null"],"enum":["failed"]}},"description":"Debug options for start verification. Only works in non-production environments.","title":"KrakenEmbedStartVerificationDebug","x-stainless-model":"kraken_embed.kraken_embed_start_verification_debug"},"KrakenEmbedStartIdentityInfo":{"type":"object","properties":{"full_name":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedFullName"},{"type":"null"}]},"date_of_birth":{"type":["string","null"],"format":"date"}},"description":"Identity information hints including full name and date of birth for proof of identity verification.","title":"KrakenEmbedStartIdentityInfo","x-stainless-model":"kraken_embed.kraken_embed_start_identity_info"},"KrakenEmbedStartIdentityMetadata":{"type":"object","properties":{"identity":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedStartIdentityInfo"},{"type":"null"}]},"document_type":{"type":["string","null"],"enum":["passport","drivers_license","id_card","residence_card","special_permanent_residence_card"]},"document_number":{"type":["string","null"]},"issuing_country":{"type":["string","null"],"enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","AC","AN","AP","CP","DG","EA","EU","IC","JX","TA","QO","XK","0C"]},"nationality":{"type":["string","null"],"enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","AC","AN","AP","CP","DG","EA","EU","IC","JX","TA","QO","XK","0C"]},"expiration_date":{"type":["string","null"],"format":"date"}},"description":"Optional best-effort metadata hints for proof of identity verification.","title":"KrakenEmbedStartIdentityMetadata","x-stainless-model":"kraken_embed.kraken_embed_start_identity_metadata"},"KrakenEmbedStartAddressMetadata":{"type":"object","properties":{"address":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedResidence"},{"type":"null"}]},"document_type":{"type":["string","null"],"enum":["bank_statement","credit_card_statement","employer_letter_or_work_contract","government_issued_document","home_or_rental_insurance","internet_or_cable_bill","mobile_phone_bill","mortgage_statement","official_government_letter","passport_address_page","rental_or_lease_agreement","residence_certificate","social_insurance_payment_receipt","tax_receipt","tax_return","utility_bill","other"]},"document_number":{"type":["string","null"]},"expiration_date":{"type":["string","null"],"format":"date"}},"description":"Optional best-effort metadata hints for proof of address verification.","title":"KrakenEmbedStartAddressMetadata","x-stainless-model":"kraken_embed.kraken_embed_start_address_metadata"},"KrakenEmbedStartIdentityVerificationUrlInput":{"type":"object","properties":{"type":{"type":"string","enum":["proof_of_identity"]},"debug":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedStartVerificationDebug"},{"type":"null"}]},"metadata":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedStartIdentityMetadata"},{"type":"null"}]},"front_url":{"type":"string","format":"uri"},"back_url":{"type":["string","null"],"format":"uri"}},"required":["type","front_url"],"description":"Input payload for starting proof of identity verification via URLs.","title":"KrakenEmbedStartIdentityVerificationUrlInput","x-stainless-model":"kraken_embed.kraken_embed_start_identity_verification_url_input"},"KrakenEmbedStartAddressVerificationUrlInput":{"type":"object","properties":{"type":{"type":"string","enum":["proof_of_address"]},"debug":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedStartVerificationDebug"},{"type":"null"}]},"metadata":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedStartAddressMetadata"},{"type":"null"}]},"document_url":{"type":"string","format":"uri"}},"required":["type","document_url"],"description":"Input payload for starting proof of address verification via URL.","title":"KrakenEmbedStartAddressVerificationUrlInput","x-stainless-model":"kraken_embed.kraken_embed_start_address_verification_url_input"},"KrakenEmbedStartLivenessVerificationUrlInput":{"type":"object","properties":{"type":{"type":"string","enum":["proof_of_liveness"]},"debug":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedStartVerificationDebug"},{"type":"null"}]},"left_url":{"type":"string","format":"uri"},"center_url":{"type":"string","format":"uri"},"right_url":{"type":"string","format":"uri"}},"required":["type","left_url","center_url","right_url"],"description":"Input payload for starting proof of liveness verification via URLs.","title":"KrakenEmbedStartLivenessVerificationUrlInput","x-stainless-model":"kraken_embed.kraken_embed_start_liveness_verification_url_input"},"KrakenEmbedStartVerificationUrlInput":{"oneOf":[{"$ref":"#/components/schemas/KrakenEmbedStartIdentityVerificationUrlInput"},{"$ref":"#/components/schemas/KrakenEmbedStartAddressVerificationUrlInput"},{"$ref":"#/components/schemas/KrakenEmbedStartLivenessVerificationUrlInput"}],"discriminator":{"propertyName":"type","mapping":{"proof_of_identity":"#/components/schemas/KrakenEmbedStartIdentityVerificationUrlInput","proof_of_address":"#/components/schemas/KrakenEmbedStartAddressVerificationUrlInput","proof_of_liveness":"#/components/schemas/KrakenEmbedStartLivenessVerificationUrlInput"}},"description":"Discriminated union of all start verification URL input types.","title":"KrakenEmbedStartVerificationUrlInput","x-stainless-model":"kraken_embed.kraken_embed_start_verification_url_input"},"KrakenEmbedStartVerificationUrlResult":{"type":"object","properties":{"verification_id":{"type":"string"}},"required":["verification_id"],"description":"Result payload for start verification URL response.","title":"KrakenEmbedStartVerificationUrlResult","x-stainless-model":"kraken_embed.kraken_embed_start_verification_url_result"},"KrakenEmbedStartVerificationUrlResponse":{"type":"object","properties":{"result":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedStartVerificationUrlResult"},{"type":"null"}]}},"required":["result"],"description":"Response body for starting verification via URL.","title":"KrakenEmbedStartVerificationUrlResponse","x-stainless-model":"kraken_embed.kraken_embed_start_verification_url_response"},"KrakenEmbedCustomOrderAmount":{"type":"object","properties":{"asset_class":{"type":"string","enum":["currency"],"default":"currency"},"asset":{"type":"string"},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","amount"],"description":"Asset amount for custom order actions.","title":"KrakenEmbedCustomOrderAmount","x-stainless-model":"kraken_embed.kraken_embed_custom_order_amount"},"KrakenEmbedCustomOrderQuoteAsset":{"type":"object","properties":{"asset":{"type":"string"}},"required":["asset"],"description":"Target asset for the other side of the custom order trade.","title":"KrakenEmbedCustomOrderQuoteAsset","x-stainless-model":"kraken_embed.kraken_embed_custom_order_quote_asset"},"KrakenEmbedCustomOrderAction":{"type":"object","properties":{"type":{"type":"string","enum":["receive","spend"]},"amount":{"$ref":"#/components/schemas/KrakenEmbedCustomOrderAmount"},"quote":{"$ref":"#/components/schemas/KrakenEmbedCustomOrderQuoteAsset"},"fee_bps":{"type":"string","pattern":"^\\d{1,5}$"},"spread_bps":{"type":"string","pattern":"^\\d{1,5}$"}},"required":["type","amount","quote","fee_bps","spread_bps"],"description":"Trade action for a custom order.","title":"KrakenEmbedCustomOrderAction","x-stainless-model":"kraken_embed.kraken_embed_custom_order_action"},"KrakenEmbedCustomOrderTrigger":{"type":"object","properties":{"type":{"type":"string","enum":["price"]},"base_asset":{"type":"string"},"quote_asset":{"type":"string"},"target_price":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"condition":{"type":"string","enum":["gte","lte"]}},"required":["type","base_asset","quote_asset","target_price","condition"],"description":"Price trigger for a custom order. The order executes when base_asset/quote_asset rate meets the condition against target_price.","title":"KrakenEmbedCustomOrderTrigger","x-stainless-model":"kraken_embed.kraken_embed_custom_order_trigger"},"KrakenEmbedCustomOrderStatus":{"type":"object","properties":{"status":{"type":"string","enum":["active","completed","cancelled","paused"]},"reason":{}},"required":["status"],"description":"Custom order status with optional reason for cancelled or paused states.","title":"KrakenEmbedCustomOrderStatus","x-stainless-model":"kraken_embed.kraken_embed_custom_order_status"},"KrakenEmbedCustomOrder":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"action":{"$ref":"#/components/schemas/KrakenEmbedCustomOrderAction"},"trigger":{"$ref":"#/components/schemas/KrakenEmbedCustomOrderTrigger"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status":{"$ref":"#/components/schemas/KrakenEmbedCustomOrderStatus"}},"required":["id","name","action","trigger","created_at","updated_at","status"],"description":"Full custom order object.","title":"KrakenEmbedCustomOrder","x-stainless-model":"kraken_embed.kraken_embed_custom_order"},"KrakenEmbedCancelCustomOrderInput":{"type":"object","properties":{"user_id":{"type":"string","minLength":1}},"required":["user_id"],"description":"Request body for cancelling a custom order.","title":"KrakenEmbedCancelCustomOrderInput","x-stainless-model":"kraken_embed.kraken_embed_cancel_custom_order_input"},"KrakenEmbedCancelCustomOrderPath":{"type":"object","properties":{"order_id":{"type":"string","minLength":1}},"required":["order_id"],"description":"Path parameters for cancelling a custom order.","title":"KrakenEmbedCancelCustomOrderPath","x-stainless-model":"kraken_embed.kraken_embed_cancel_custom_order_path"},"KrakenEmbedCancelCustomOrderResult":{"type":"object","properties":{"order":{"$ref":"#/components/schemas/KrakenEmbedCustomOrder"}},"required":["order"],"description":"Result payload for cancel custom order response.","title":"KrakenEmbedCancelCustomOrderResult","x-stainless-model":"kraken_embed.kraken_embed_cancel_custom_order_result"},"KrakenEmbedCancelCustomOrderResponse":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedCancelCustomOrderResult"},{"type":"null"}]}},"required":["result"],"description":"Response body for cancelling a custom order.","title":"KrakenEmbedCancelCustomOrderResponse","x-stainless-model":"kraken_embed.kraken_embed_cancel_custom_order_response"},"KrakenEmbedCreateCustomOrderInput":{"type":"object","properties":{"user_id":{"type":"string","minLength":1},"trigger":{"$ref":"#/components/schemas/KrakenEmbedCustomOrderTrigger"},"action":{"$ref":"#/components/schemas/KrakenEmbedCustomOrderAction"},"name":{"type":"string"}},"required":["user_id","trigger","action","name"],"description":"Request body for creating a custom order.","title":"KrakenEmbedCreateCustomOrderInput","x-stainless-model":"kraken_embed.kraken_embed_create_custom_order_input"},"KrakenEmbedCreateCustomOrderResult":{"type":"object","properties":{"order":{"$ref":"#/components/schemas/KrakenEmbedCustomOrder"}},"required":["order"],"description":"Result payload for create custom order response.","title":"KrakenEmbedCreateCustomOrderResult","x-stainless-model":"kraken_embed.kraken_embed_create_custom_order_result"},"KrakenEmbedCreateCustomOrderResponse":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedCreateCustomOrderResult"},{"type":"null"}]}},"required":["result"],"description":"Response body for creating a custom order.","title":"KrakenEmbedCreateCustomOrderResponse","x-stainless-model":"kraken_embed.kraken_embed_create_custom_order_response"},"KrakenEmbedGetCustomOrderQueryParams":{"type":"object","properties":{"order_id":{"type":"string","minLength":1},"user_id":{"type":"string","minLength":1}},"required":["order_id","user_id"],"description":"Query parameters for getting a single custom order.","title":"KrakenEmbedGetCustomOrderQueryParams","x-stainless-model":"kraken_embed.kraken_embed_get_custom_order_query_params"},"KrakenEmbedGetCustomOrderResult":{"type":"object","properties":{"order":{"$ref":"#/components/schemas/KrakenEmbedCustomOrder"}},"required":["order"],"description":"Result payload for get custom order response.","title":"KrakenEmbedGetCustomOrderResult","x-stainless-model":"kraken_embed.kraken_embed_get_custom_order_result"},"KrakenEmbedGetCustomOrderResponse":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedGetCustomOrderResult"},{"type":"null"}]}},"required":["result"],"description":"Response body for getting a single custom order.","title":"KrakenEmbedGetCustomOrderResponse","x-stainless-model":"kraken_embed.kraken_embed_get_custom_order_response"},"KrakenEmbedCustomOrderOccurrenceExecutedAction":{"type":"object","properties":{"quote_id":{"type":"string"}},"required":["quote_id"],"description":"Executed action details for a custom order occurrence.","title":"KrakenEmbedCustomOrderOccurrenceExecutedAction","x-stainless-model":"kraken_embed.kraken_embed_custom_order_occurrence_executed_action"},"KrakenEmbedCustomOrderOccurrenceTrigger":{"type":"object","properties":{"type":{"type":"string","enum":["time","price","crypto_deposit","market_open"]}},"required":["type"],"description":"Trigger metadata for a custom order occurrence.","title":"KrakenEmbedCustomOrderOccurrenceTrigger","x-stainless-model":"kraken_embed.kraken_embed_custom_order_occurrence_trigger"},"KrakenEmbedCustomOrderOccurrence":{"type":"object","properties":{"id":{"type":"string"},"executed_action":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedCustomOrderOccurrenceExecutedAction"},{"type":"null"}]},"trigger":{"$ref":"#/components/schemas/KrakenEmbedCustomOrderOccurrenceTrigger"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["success","failure","skipped"]},"failure_reason":{"type":"string"},"skip_reason":{"type":"string"}},"required":["id","trigger","created_at","updated_at","status"],"description":"A single execution occurrence of a custom order.","title":"KrakenEmbedCustomOrderOccurrence","x-stainless-model":"kraken_embed.kraken_embed_custom_order_occurrence"},"KrakenEmbedGetCustomOrderHistoryQueryParams":{"type":"object","properties":{"order_id":{"type":"string","minLength":1},"user_id":{"type":"string","minLength":1}},"required":["order_id","user_id"],"description":"Query parameters for getting custom order history.","title":"KrakenEmbedGetCustomOrderHistoryQueryParams","x-stainless-model":"kraken_embed.kraken_embed_get_custom_order_history_query_params"},"KrakenEmbedGetCustomOrderHistoryResult":{"type":"object","properties":{"history":{"type":"array","items":{"$ref":"#/components/schemas/KrakenEmbedCustomOrderOccurrence"}}},"required":["history"],"description":"Result payload for custom order history response.","title":"KrakenEmbedGetCustomOrderHistoryResult","x-stainless-model":"kraken_embed.kraken_embed_get_custom_order_history_result"},"KrakenEmbedGetCustomOrderHistoryResponse":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedGetCustomOrderHistoryResult"},{"type":"null"}]}},"required":["result"],"description":"Response body for getting custom order execution history.","title":"KrakenEmbedGetCustomOrderHistoryResponse","x-stainless-model":"kraken_embed.kraken_embed_get_custom_order_history_response"},"KrakenEmbedListCustomOrdersQueryParams":{"type":"object","properties":{"user_id":{"type":"string","minLength":1},"statuses":{"anyOf":[{"type":"array","items":{"type":"string","enum":["active","paused","cancelled","completed"]}},{"type":"string"}]},"cursor":{"type":"string"}},"required":["user_id"],"description":"Query parameters for listing custom orders.","title":"KrakenEmbedListCustomOrdersQueryParams","x-stainless-model":"kraken_embed.kraken_embed_list_custom_orders_query_params"},"KrakenEmbedListCustomOrdersResult":{"type":"object","properties":{"orders":{"type":"array","items":{"$ref":"#/components/schemas/KrakenEmbedCustomOrder"}}},"required":["orders"],"description":"Result payload for list custom orders response.","title":"KrakenEmbedListCustomOrdersResult","x-stainless-model":"kraken_embed.kraken_embed_list_custom_orders_result"},"KrakenEmbedListCustomOrdersResponse":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedListCustomOrdersResult"},{"type":"null"}]}},"required":["result"],"description":"Response body for listing custom orders.","title":"KrakenEmbedListCustomOrdersResponse","x-stainless-model":"kraken_embed.kraken_embed_list_custom_orders_response"},"KrakenEmbedGetEarnSummaryQueryParams":{"type":"object","properties":{"currency":{"type":"string","maxLength":16}},"required":["currency"],"description":"Query parameters for getting an earn summary.","title":"KrakenEmbedGetEarnSummaryQueryParams","x-stainless-model":"kraken_embed.kraken_embed_get_earn_summary_query_params"},"KrakenEmbedEarnAmount":{"type":"object","properties":{"native":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"converted":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["native","converted"],"description":"An earn amount with native and converted values.","title":"KrakenEmbedEarnAmount","x-stainless-model":"kraken_embed.kraken_embed_earn_amount"},"KrakenEmbedUpcomingReward":{"type":"object","properties":{"date":{"type":"string","format":"date-time"},"asset":{"type":"string"},"accumulated_amount":{"$ref":"#/components/schemas/KrakenEmbedEarnAmount"},"estimated_pending_amount":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedEarnAmount"},{"type":"null"}]}},"required":["date","asset","accumulated_amount","estimated_pending_amount"],"description":"An upcoming earn reward for a specific asset.","title":"KrakenEmbedUpcomingReward","x-stainless-model":"kraken_embed.kraken_embed_upcoming_reward"},"KrakenEmbedGetEarnSummaryResult":{"type":"object","properties":{"auto_earn_eligible":{"type":"boolean"},"auto_earn_enabled":{"type":"boolean"},"auto_earn_last_changed":{"type":["string","null"],"format":"date-time"},"payout_period":{"type":"string"},"total_allocated_converted":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"total_rewarded_converted_true_rates":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"total_rewarded_converted_current_rate":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"num_earning_assets":{"type":"integer","minimum":0},"upcoming_rewards":{"type":"array","items":{"$ref":"#/components/schemas/KrakenEmbedUpcomingReward"}}},"required":["auto_earn_eligible","auto_earn_enabled","payout_period","total_allocated_converted","total_rewarded_converted_true_rates","total_rewarded_converted_current_rate","num_earning_assets","upcoming_rewards"],"description":"Result payload for earn summary response.","title":"KrakenEmbedGetEarnSummaryResult","x-stainless-model":"kraken_embed.kraken_embed_get_earn_summary_result"},"KrakenEmbedGetEarnSummaryKrakenResponse":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedGetEarnSummaryResult"},{"type":"null"}]}},"required":["result"],"description":"Kraken API response envelope for earn summary.","title":"KrakenEmbedGetEarnSummaryKrakenResponse","x-stainless-model":"kraken_embed.kraken_embed_get_earn_summary_kraken_response"},"KrakenEmbedGetEarnSummaryResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KrakenEmbedGetEarnSummaryKrakenResponse"}},"required":["data"],"description":"Earn summary for a user including Auto-Earn status, total rewards, and upcoming payouts.","title":"KrakenEmbedGetEarnSummaryResponse","x-stainless-model":"kraken_embed.kraken_embed_get_earn_summary_response"},"KrakenEmbedGetEarnAssetsQueryParams":{"type":"object","properties":{"assets":{"type":"array","items":{"type":"string","maxLength":16}},"user":{"type":"string","minLength":14,"maxLength":42},"currency":{"type":"string","maxLength":16}},"description":"Query parameters for listing earn assets.","title":"KrakenEmbedGetEarnAssetsQueryParams","x-stainless-model":"kraken_embed.kraken_embed_get_earn_assets_query_params"},"KrakenEmbedEarnAprEstimate":{"type":"object","properties":{"low":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"high":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["low","high"],"description":"Low and high estimate of the yield of an earn asset.","title":"KrakenEmbedEarnAprEstimate","x-stainless-model":"kraken_embed.kraken_embed_earn_apr_estimate"},"KrakenEmbedEarnUserAllocation":{"type":"object","properties":{"total_rewarded":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedEarnAmount"},{"type":"null"}]},"total_allocated":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedEarnAmount"},{"type":"null"}]},"upcoming_reward_date":{"type":["string","null"],"format":"date-time"}},"required":["total_rewarded","total_allocated"],"description":"User allocation for an earn asset.","title":"KrakenEmbedEarnUserAllocation","x-stainless-model":"kraken_embed.kraken_embed_earn_user_allocation"},"KrakenEmbedEarnAsset":{"type":"object","properties":{"apr_estimate":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedEarnAprEstimate"},{"type":"null"}]},"user_allocation":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedEarnUserAllocation"},{"type":"null"}]}},"required":["apr_estimate"],"description":"A single asset that can yield rewards.","title":"KrakenEmbedEarnAsset","x-stainless-model":"kraken_embed.kraken_embed_earn_asset"},"KrakenEmbedGetEarnAssetsResult":{"type":"object","properties":{"assets":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/KrakenEmbedEarnAsset"}}},"required":["assets"],"description":"Result payload for earn assets response.","title":"KrakenEmbedGetEarnAssetsResult","x-stainless-model":"kraken_embed.kraken_embed_get_earn_assets_result"},"KrakenEmbedGetEarnAssetsKrakenResponse":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"anyOf":[{"$ref":"#/components/schemas/KrakenEmbedGetEarnAssetsResult"},{"type":"null"}]}},"required":["result"],"description":"Kraken API response envelope for earn assets.","title":"KrakenEmbedGetEarnAssetsKrakenResponse","x-stainless-model":"kraken_embed.kraken_embed_get_earn_assets_kraken_response"},"KrakenEmbedGetEarnAssetsResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KrakenEmbedGetEarnAssetsKrakenResponse"}},"required":["data"],"description":"List of earn assets with APR estimates and optional user allocations.","title":"KrakenEmbedGetEarnAssetsResponse","x-stainless-model":"kraken_embed.kraken_embed_get_earn_assets_response"},"KrakenEmbedToggleAutoEarnQueryParams":{"type":"object","properties":{"want_enabled":{"type":"boolean"}},"required":["want_enabled"],"description":"Query parameters for toggling Auto-Earn.","title":"KrakenEmbedToggleAutoEarnQueryParams","x-stainless-model":"kraken_embed.kraken_embed_toggle_auto_earn_query_params"},"KrakenEmbedToggleAutoEarnKrakenResponse":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":"null"}},"description":"Kraken API response envelope for toggle auto-earn. Result is null on success.","title":"KrakenEmbedToggleAutoEarnKrakenResponse","x-stainless-model":"kraken_embed.kraken_embed_toggle_auto_earn_kraken_response"},"KrakenEmbedToggleAutoEarnResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KrakenEmbedToggleAutoEarnKrakenResponse"}},"required":["data"],"description":"Response from toggling Auto-Earn. The response body is empty on success.","title":"KrakenEmbedToggleAutoEarnResponse","x-stainless-model":"kraken_embed.kraken_embed_toggle_auto_earn_response"},"EvmCaip2":{"type":"string","pattern":"^eip155:\\d+$","description":"EVM CAIP-2 chain identifier (e.g. \"eip155:1\", \"eip155:84532\").","title":"EvmCaip2","x-stainless-model":"shared.evm_caip_2"},"SolanaCaip2":{"type":"string","pattern":"^solana:[a-zA-Z0-9]+$","description":"Solana CAIP-2 chain identifier (e.g. \"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\").","title":"SolanaCaip2","x-stainless-model":"shared.solana_caip_2"},"BitcoinCaip2":{"anyOf":[{"type":"string","enum":["bip122:mainnet"]},{"type":"string","pattern":"^bip122:[a-f0-9]+$"}],"description":"Bitcoin CAIP-2 chain identifier (e.g. \"bip122:000000000019d6689c085ae165831e93\").","title":"BitcoinCaip2","x-stainless-model":"shared.bitcoin_caip_2"},"TronCaip2":{"type":"string","enum":["tron:mainnet","tron:nile"],"description":"Tron CAIP-2 chain identifier. Supported values: \"tron:mainnet\", \"tron:nile\".","title":"TronCaip2","x-stainless-model":"shared.tron_caip_2"},"Bps":{"type":"integer","minimum":0,"maximum":10000,"description":"Value in basis points: integer from 0 to 10000 (0% to 100%).","title":"Bps","x-stainless-model":"shared.bps"},"WalletAuthorizationHeaders":{"type":"object","properties":{"privy-app-id":{"type":"string","description":"ID of your Privy app."},"privy-authorization-signature":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"privy-request-expiry":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."}},"required":["privy-app-id"],"description":"Headers required to authorize wallet operations.","title":"WalletAuthorizationHeaders","x-stainless-model":"wallets.wallet_authorization_headers"},"PolicyAuthorizationHeaders":{"type":"object","properties":{"privy-app-id":{"type":"string","description":"ID of your Privy app."},"privy-authorization-signature":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"privy-request-expiry":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."}},"required":["privy-app-id"],"description":"Headers required to authorize modifications to policies.","title":"PolicyAuthorizationHeaders","x-stainless-model":"policies.policy_authorization_headers"},"ConditionSetAuthorizationHeaders":{"type":"object","properties":{"privy-app-id":{"type":"string","description":"ID of your Privy app."},"privy-authorization-signature":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"privy-request-expiry":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."}},"required":["privy-app-id"],"description":"Headers required to authorize modifications to condition sets.","title":"ConditionSetAuthorizationHeaders","x-stainless-model":"policies.condition_set_authorization_headers"},"TransactionList":{"type":"object","properties":{"transactions":{"type":"array","items":{"$ref":"#/components/schemas/Transaction"}}},"required":["transactions"],"description":"A list of transactions.","title":"TransactionList","x-stainless-model":"transactions.transaction_list"},"KeyQuorumAuthorizationHeaders":{"type":"object","properties":{"privy-app-id":{"type":"string","description":"ID of your Privy app."},"privy-authorization-signature":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"privy-request-expiry":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."}},"required":["privy-app-id"],"description":"Headers required to authorize modifications to key quorums.","title":"KeyQuorumAuthorizationHeaders","x-stainless-model":"key_quorums.key_quorum_authorization_headers"},"IntentCreationHeaders":{"type":"object","properties":{"privy-app-id":{"type":"string","description":"ID of your Privy app."},"privy-request-expiry":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."}},"required":["privy-app-id"],"description":"Headers required to create an intent.","title":"IntentCreationHeaders","x-stainless-model":"intents.intent_creation_headers"},"CrossAppConnection":{"type":"object","properties":{"provider_app_id":{"type":"string"},"provider_app_name":{"type":"string"},"provider_app_icon_url":{"type":["string","null"],"format":"uri"},"provider_app_custom_api_url":{"type":["string","null"],"format":"uri"},"read_only":{"type":"boolean"},"provider_app_custom_auth_authorize_url":{"type":["string","null"],"format":"uri"},"provider_app_custom_auth_transact_url":{"type":["string","null"],"format":"uri"}},"required":["provider_app_id","provider_app_name","provider_app_icon_url","provider_app_custom_api_url","read_only","provider_app_custom_auth_authorize_url","provider_app_custom_auth_transact_url"],"description":"A cross-app connection definition","title":"CrossAppConnection","x-stainless-model":"cross_app.cross_app_connection"},"CrossAppConnectionsResponse":{"type":"object","properties":{"connections":{"type":"array","items":{"$ref":"#/components/schemas/CrossAppConnection"}},"data_classification":{"type":"string","enum":["public"],"description":"Indicates that this response contains only publicly accessible data, not a privileged resource"}},"required":["connections","data_classification"],"description":"The response for getting the list of cross-app connections.","title":"CrossAppConnectionsResponse","x-stainless-model":"cross_app.cross_app_connections_response"},"YieldAuthorizationHeaders":{"type":"object","properties":{"privy-app-id":{"type":"string","description":"ID of your Privy app."},"privy-authorization-signature":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"privy-request-expiry":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."}},"required":["privy-app-id"],"description":"Headers required to authorize yield operations.","title":"YieldAuthorizationHeaders","x-stainless-model":"yield.yield_authorization_headers"},"OAuthGrant":{"type":"object","properties":{"id":{"type":"string","description":"The grant identifier."},"grant_type":{"type":"string","enum":["device_code"],"description":"The OAuth grant type that created this grant."},"created_at":{"type":"string","format":"date-time","description":"When the grant was first created."},"last_used_at":{"type":"string","format":"date-time","description":"When the grant was last used (e.g. token refreshed)."}},"required":["id","grant_type","created_at","last_used_at"],"description":"An active OAuth grant representing an authorized session.","title":"OAuthGrant","example":{"id":"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4","grant_type":"device_code","created_at":"2026-05-30T12:00:00.000Z","last_used_at":"2026-06-01T09:30:00.000Z"},"x-stainless-model":"oauth.oauth_grant"},"OAuthGrantListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OAuthGrant"},"description":"Active grants."}},"required":["data"],"description":"List of active OAuth grants for the authenticated user.","title":"OAuthGrantListResponse","example":{"data":[{"id":"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4","grant_type":"device_code","created_at":"2026-05-30T12:00:00.000Z","last_used_at":"2026-06-01T09:30:00.000Z"}]},"x-stainless-model":"oauth.oauth_grant_list_response"},"OAuthGrantRevokeResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true],"description":"Whether the revocation was processed."}},"required":["success"],"description":"Response from revoking an OAuth grant.","title":"OAuthGrantRevokeResponse","example":{"success":true},"x-stainless-model":"oauth.oauth_grant_revoke_response"},"DeviceAuthorizationResponse":{"type":"object","properties":{"device_code":{"type":"string","description":"A long-lived code used by the device to poll for authorization status."},"user_code":{"type":"string","description":"A short code displayed to the user, who enters it at the verification URI to authorize the device."},"verification_uri":{"type":"string","format":"uri","description":"The URI where the user navigates to enter the user_code."},"verification_uri_complete":{"type":"string","format":"uri","description":"The verification URI with the user_code pre-filled as a query parameter."},"expires_in":{"type":"integer","description":"The lifetime in seconds of the device_code and user_code."},"interval":{"type":"integer","description":"The minimum number of seconds the device should wait between polling requests."}},"required":["device_code","user_code","verification_uri","verification_uri_complete","expires_in","interval"],"description":"Response from the device authorization endpoint per RFC 8628. Contains codes and URIs for the device flow.","title":"DeviceAuthorizationResponse","example":{"device_code":"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2","user_code":"BCDFG-HJKMN","verification_uri":"https://auth.example.com/device","verification_uri_complete":"https://auth.example.com/device?user_code=BCDFG-HJKMN&app_id=app123","expires_in":600,"interval":5},"x-stainless-model":"oauth.device_authorization_response"}},"parameters":{}},"paths":{"/v1/wallets":{"get":{"tags":["Wallets"],"operationId":"listWallets","summary":"Get all wallets","description":"Get all wallets in your app.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"},{"schema":{"type":["number","null"],"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"$ref":"#/components/schemas/WalletChainType"},"required":false,"name":"chain_type","in":"query"},{"schema":{"type":"string","description":"Filter wallets by user ID. Cannot be used together with authorization_key."},"required":false,"name":"user_id","in":"query"},{"schema":{"type":"string","maxLength":250,"pattern":"^[A-Za-z0-9+/=\\-\\s]+$","description":"Filter wallets by authorization public key. Returns wallets owned by key quorums that include the specified P-256 public key (base64-encoded DER format). Cannot be used together with user_id."},"required":false,"name":"authorization_key","in":"query"},{"schema":{"type":"string","description":"Filter wallets by external ID."},"required":false,"name":"external_id","in":"query"},{"schema":{"type":"boolean","description":"Include archived wallets in lookup. Defaults to false."},"required":false,"name":"include_archived","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Object with wallet data.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Wallet"}},"next_cursor":{"type":"string"}},"required":["data"]}}}}}},"post":{"tags":["Wallets"],"operationId":"createWallet","summary":"Create wallet","description":"Creates a new wallet on the requested chain and for the requested owner.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chain_type":{"$ref":"#/components/schemas/WalletChainType"},"display_name":{"type":"string","maxLength":100,"description":"A human-readable label for the wallet."},"external_id":{"type":"string","maxLength":64,"pattern":"^[a-zA-Z0-9_-]+$","description":"A customer-provided identifier for mapping to external systems. URL-safe characters only ([a-zA-Z0-9_-]), max 64 chars. Write-once: cannot be changed after creation."},"policy_ids":{"allOf":[{"$ref":"#/components/schemas/PolicyInput"},{"description":"List of policy IDs for policies that should be enforced on the wallet. Currently, only one policy is supported per wallet."}]},"owner":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"},"additional_signers":{"$ref":"#/components/schemas/AdditionalSignerInput"}},"required":["chain_type"],"additionalProperties":false,"example":{"chain_type":"ethereum","external_id":"my-order-123"}}}}},"responses":{"200":{"description":"Newly created wallet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"}}}}}}},"/v1/wallets/batch":{"post":{"tags":["Wallets"],"operationId":"createWalletsBatch","summary":"Create wallets in batch","description":"Creates multiple wallets in a single request. Each wallet creation is independent; failures for one wallet do not affect others. Maximum batch size is 100 wallets.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletBatchCreateInput"}}}},"responses":{"200":{"description":"Batch creation results. Always returns 200 with a results array containing success/failure status for each wallet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletBatchCreateResponse"}}}}}}},"/v1/custodial_wallets":{"post":{"tags":["Wallets"],"operationId":"createCustodialWallet","summary":"Create custodial wallet","description":"Create a new wallet custodied by a third-party provider.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustodialWalletCreateInput"}}}},"responses":{"200":{"description":"Newly created custodial wallet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustodialWallet"}}}}}}},"/v1/wallets/{wallet_id}/rpc":{"post":{"tags":["Wallets"],"operationId":"signWithWallet","summary":"Create a signature or transaction","description":"Sign a message or transaction with a wallet by wallet ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletRpcRequestBody"},"example":{"method":"eth_sendTransaction","caip2":"eip155:8453","chain_type":"ethereum","params":{"transaction":{"to":"0x0000000000000000000000000000000000000000","value":1}}}}}},"responses":{"200":{"description":"Signed message or transaction.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletRpcResponse"}}}}}}},"/v1/wallets/{wallet_id}":{"get":{"tags":["Wallets"],"operationId":"getWallet","summary":"Get wallet","description":"Get a wallet by wallet ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"boolean","description":"Include archived wallets in lookup. Defaults to false."},"required":false,"name":"include_archived","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Requested wallet object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"}}}}}},"patch":{"tags":["Wallets"],"operationId":"updateWallet","summary":"Update wallet","description":"Update a wallet's policies or authorization key configuration.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletUpdateRequestBody"},"example":{"policy_ids":["tb54eps4z44ed0jepousxi4n"]}}}},"responses":{"200":{"description":"Updated wallet object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"}}}}}}},"/v1/wallets/{wallet_id}/raw_sign":{"post":{"tags":["Wallets"],"operationId":"rawSignWithWallet","summary":"Raw sign","description":"Sign a message with a wallet by wallet ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RawSignInput"},"examples":{"with-hash":{"summary":"Sign a pre-computed hash","value":{"params":{"hash":"0x0775aeed9c9ce6e0fbc4db25c5e4e6368029651c905c286f813126a09025a21e"}}},"with-bytes":{"summary":"Hash and sign bytes","value":{"params":{"bytes":"0a0234ea220809701d7a17a77e04408093e981a6335a66080112620a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412310a15417009bf59e27d2031a23a61e1590289fc3d21b3cd121541132b98ed6fb80a2d45f177cdef091ae2d9dc115418e80770a0bee581a633","encoding":"hex","hash_function":"sha256"}}}}}}},"responses":{"200":{"description":"Signature and encoding.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RawSignResponse"}}}}}}},"/v1/wallets/{wallet_id}/balance":{"get":{"tags":["Wallets"],"operationId":"getWalletBalance","summary":"Get balance","description":"Get the balance of a wallet by wallet ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"anyOf":[{"$ref":"#/components/schemas/WalletEthereumAsset"},{"$ref":"#/components/schemas/WalletSolanaAsset"},{"type":"array","items":{"$ref":"#/components/schemas/WalletAsset"},"maxItems":10}],"description":"Named asset(s) to query (e.g. `eth`, `usdc`). Use together with `chain` to scope the query. Cannot be used with `token`."},"required":false,"name":"asset","in":"query"},{"schema":{"anyOf":[{"type":"string","enum":["ethereum","arbitrum","avalanche","base","tempo","linea","optimism","polygon","solana","zksync_era","sepolia","arbitrum_sepolia","avalanche_fuji","base_sepolia","linea_testnet","optimism_sepolia","polygon_amoy","solana_devnet","solana_testnet"]},{"type":"array","items":{"type":"string","enum":["ethereum","arbitrum","avalanche","base","tempo","linea","optimism","polygon","solana","zksync_era","sepolia","arbitrum_sepolia","avalanche_fuji","base_sepolia","linea_testnet","optimism_sepolia","polygon_amoy","solana_devnet","solana_testnet"]},"maxItems":10}],"description":"Chain(s) to query named assets on (e.g. `base`, `ethereum`). Use together with `asset`. Cannot be used with `token`."},"required":false,"name":"chain","in":"query"},{"schema":{"type":"string","enum":["usd","eur"],"description":"If set, balances are converted to the specified fiat currency. Not supported when `token` is provided."},"required":false,"name":"include_currency","in":"query"},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"},"maxItems":10}],"description":"The token contract address(es) to query in format \"chain:address\" (e.g., \"base:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\" or \"solana:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\"). Cannot be used together with `asset`/`chain` or with `include_currency`."},"required":false,"name":"token","in":"query"},{"schema":{"type":"boolean","description":"Include archived wallets in lookup. Defaults to false."},"required":false,"name":"include_archived","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Latest wallet balance.","content":{"application/json":{"schema":{"type":"object","properties":{"balances":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","arbitrum","avalanche","base","tempo","linea","optimism","polygon","solana","zksync_era","sepolia","arbitrum_sepolia","avalanche_fuji","base_sepolia","linea_testnet","optimism_sepolia","polygon_amoy","solana_devnet","solana_testnet"]},"asset":{"anyOf":[{"$ref":"#/components/schemas/WalletEthereumAsset"},{"$ref":"#/components/schemas/WalletSolanaAsset"},{"type":"string"}]},"raw_value":{"type":"string"},"raw_value_decimals":{"type":"number"},"display_values":{"type":"object","additionalProperties":{"type":"string"}}},"required":["chain","asset","raw_value","raw_value_decimals","display_values"]}}},"required":["balances"]},"example":{"balances":[{"chain":"base","asset":"eth","raw_value":"1000000000000000000","raw_value_decimals":18,"display_values":{"eth":"0.001","usd":"2.56"}}]}}}}}}},"/v1/wallets/{wallet_id}/transactions":{"get":{"tags":["Wallets"],"operationId":"getWalletTransactions","summary":"Get transactions","description":"Get incoming and outgoing transactions of a wallet by wallet ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"},{"schema":{"type":["number","null"],"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","enum":["ethereum","arbitrum","base","tempo","linea","optimism","polygon","solana","sepolia"]},"required":true,"name":"chain","in":"query"},{"schema":{"anyOf":[{"$ref":"#/components/schemas/WalletEthereumAsset"},{"$ref":"#/components/schemas/WalletSolanaAsset"},{"type":"array","items":{"$ref":"#/components/schemas/WalletAsset"},"maxItems":10}],"description":"Exactly one of `asset` or `token` is required. Cannot be used together with `token`."},"required":false,"name":"asset","in":"query"},{"schema":{"anyOf":[{"$ref":"#/components/schemas/TransactionTokenAddressInput"},{"type":"array","items":{"$ref":"#/components/schemas/TransactionTokenAddressInput"},"maxItems":10}],"description":"Exactly one of `token` or `asset` is required. Cannot be used together with `asset`."},"required":false,"name":"token","in":"query"},{"schema":{"type":"string"},"required":false,"name":"tx_hash","in":"query"},{"schema":{"type":"boolean","description":"Include archived wallets in lookup. Defaults to false."},"required":false,"name":"include_archived","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Latest wallet transactions.","content":{"application/json":{"schema":{"type":"object","properties":{"transactions":{"type":"array","items":{"type":"object","properties":{"caip2":{"type":"string"},"transaction_hash":{"type":["string","null"]},"user_operation_hash":{"type":"string"},"status":{"type":"string","enum":["broadcasted","confirmed","execution_reverted","failed","replaced","finalized","provider_error","pending"]},"created_at":{"type":"number"},"sponsored":{"type":"boolean"},"details":{"allOf":[{"$ref":"#/components/schemas/TransactionDetail"},{"oneOf":[{"$ref":"#/components/schemas/TransferSentTransactionDetail"},{"$ref":"#/components/schemas/TransferReceivedTransactionDetail"},{"type":"null"}]}]},"privy_transaction_id":{"type":"string"},"wallet_id":{"type":"string"}},"required":["caip2","transaction_hash","status","created_at","details","privy_transaction_id","wallet_id"]}},"next_cursor":{"type":["string","null"]}},"required":["transactions","next_cursor"]},"example":{"transactions":[{"caip2":"eip155:8453","transaction_hash":"0x03fe1b0fd11a74d277a5b7a68b762de906503b82cbce2fc791250fd2b77cf137","status":"confirmed","created_at":1746920539240,"privy_transaction_id":"au6wxoyhbw4yhwbn1s5v9gs9","wallet_id":"xs76o3pi0v5syd62ui1wmijw","details":{"type":"transfer_sent","chain":"base","asset":"eth","sender":"0xa24c8d74c913e5dba36e45236c478f37c8bba20e","sender_privy_user_id":"rkiz0ivz254drv1xw982v3jq","recipient":"0x38bc05d7b69f63d05337829fa5dc4896f179b5fa","recipient_privy_user_id":"cmakymbpt000te63uaj85d9r6","raw_value":"1","raw_value_decimals":18,"display_values":{"eth":"0.000000000000000001"}}}],"next_cursor":null}}}}}}},"/v1/wallets/authenticate":{"post":{"tags":["Wallets"],"operationId":"authenticateWallet","summary":"Authenticate wallet session","description":"Exchange a user JWT for a session key authorized to act on the user's wallets. Returns the encrypted authorization key and the list of wallets it can access.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletAuthenticateRequestBody"},"example":{"user_jwt":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30","encryption_type":"HPKE","recipient_public_key":"DAQcDQgAEx4aoeD72yykviK+fckqE2CItVIGn1rCnvCXZ1HgpOcMEMialRmTrqIK4oZlYd1"}}}},"responses":{"200":{"description":"Object with authorization key and wallet IDs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletAuthenticateWithJwtResponse"}}}}}}},"/v1/wallets/authenticate/intents":{"post":{"tags":["Wallets"],"operationId":"createIntentBoundSigningKey","summary":"Authenticate wallet session scoped to intents","description":"Exchange a user JWT for a session key scoped to specific intents. The returned USK can only authorize the bound intents and cannot sign other RPC requests.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletAuthenticateBoundRequestBody"},"example":{"user_jwt":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30","bindings":[{"type":"intent","intentId":"intent_abc123"}],"encryption_type":"HPKE","recipient_public_key":"DAQcDQgAEx4aoeD72yykviK+fckqE2CItVIGn1rCnvCXZ1HgpOcMEMialRmTrqIK4oZlYd1"}}}},"responses":{"200":{"description":"Object with authorization key, wallet IDs, and the bindings the key is scoped to.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletAuthenticateIntentsResponse"}}}}}}},"/v1/wallets/import/init":{"post":{"tags":["Wallets"],"operationId":"initializeWalletImport","summary":"Initialize import","description":"Initialize a wallet import. Complete by submitting the import.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/HDInitInput"},{"$ref":"#/components/schemas/PrivateKeyInitInput"}],"discriminator":{"propertyName":"entropy_type","mapping":{"hd":"#/components/schemas/HDInitInput","private-key":"#/components/schemas/PrivateKeyInitInput"}},"example":{"address":"0xF1DBff66C993EE895C8cb176c30b07A559d76496","chain_type":"ethereum","entropy_type":"private-key","encryption_type":"HPKE"}}}}},"responses":{"200":{"description":"The encryption public key to encrypt the wallet entropy with.","content":{"application/json":{"schema":{"type":"object","properties":{"encryption_type":{"$ref":"#/components/schemas/HPKEEncryption"},"encryption_public_key":{"type":"string","description":"The base64-encoded encryption public key to encrypt the wallet entropy with."}},"required":["encryption_type","encryption_public_key"],"title":"Wallet import initialization response","example":{"encryption_type":"HPKE","encryption_public_key":"BDAZLOIdTaPycEYkgG0MvCzbIKJLli/yWkAV5yCa9yOsZ4JsrLweA5MnP8YIiY4k/RRzC+APhhO+P+Hoz/rt7Go="}}}}}}}},"/v1/wallets/import/submit":{"post":{"tags":["Wallets"],"operationId":"submitWalletImport","summary":"Submit import","description":"Submit a wallet import request.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"oneOf":[{"$ref":"#/components/schemas/HDSubmitInput"},{"$ref":"#/components/schemas/PrivateKeySubmitInput"}],"discriminator":{"propertyName":"entropy_type","mapping":{"hd":"#/components/schemas/HDSubmitInput","private-key":"#/components/schemas/PrivateKeySubmitInput"}}},"display_name":{"type":"string","maxLength":100,"description":"A human-readable label for the wallet."},"external_id":{"type":"string","maxLength":64,"pattern":"^[a-zA-Z0-9_-]+$","description":"A customer-provided identifier for mapping to external systems. URL-safe characters only ([a-zA-Z0-9_-]), max 64 chars. Write-once: cannot be changed after creation."},"policy_ids":{"allOf":[{"$ref":"#/components/schemas/PolicyInput"},{"description":"List of policy IDs for policies that should be enforced on the wallet. Currently, only one policy is supported per wallet."}]},"owner":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"},"additional_signers":{"$ref":"#/components/schemas/AdditionalSignerInput"}},"required":["wallet"],"additionalProperties":false,"title":"Wallet import submission request","example":{"wallet":{"address":"0xF1DBff66C993EE895C8cb176c30b07A559d76496","chain_type":"ethereum","entropy_type":"private-key","encryption_type":"HPKE","encapsulated_key":"BOhR6xITDt5THJawHHJKrKdI9CBr2M/SDWzZZAaOW4gCMsSpC65U007WyKiwuuOVAo1BNm4YgcBBROuMmyIZXZk=","ciphertext":"PRoRXygG+YYSDBXjCopNYZmx8Z6nvdl1D0lpePTYZdZI2VGfK+LkFt+GlEJqdoi9"},"owner_id":"rkiz0ivz254drv1xw982v3jq"}}}}},"responses":{"200":{"description":"The imported wallet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"}}}}}}},"/v1/wallets/{wallet_id}/export":{"post":{"tags":["Wallets"],"operationId":"exportWallet","summary":"Export wallet","description":"Export a wallet's private key","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletExportRequestBody"}}}},"responses":{"200":{"description":"The exported private key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletExportResponseBody"}}}}}}},"/v1/wallets/address":{"post":{"tags":["Wallets"],"operationId":"getWalletByAddress","summary":"Get wallet by address","description":"Look up a wallet by its blockchain address. Returns the wallet object if found.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetByWalletAddressRequestBody"}}}},"responses":{"200":{"description":"The wallet matching the given address.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"}}}}}}},"/v1/wallets/{wallet_id}/archive":{"post":{"tags":["Wallets"],"operationId":"archiveWallet","summary":"Archive a wallet","description":"Archives a wallet, preventing it from being used in any write or signing operations. Archived wallets are hidden from list endpoints by default. Returns 404 if the wallet does not exist or is already archived.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"The archived wallet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"}}}}}}},"/v1/users":{"get":{"tags":["Users"],"operationId":"listUsers","summary":"Gets Users","description":"Get all users in your app.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"},{"schema":{"type":["number","null"],"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Requested user objects with pagination.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"next_cursor":{"type":"string"}},"required":["data"]}}}}}},"post":{"tags":["Users"],"operationId":"createUser","summary":"Create User","description":"Create a new user with linked accounts. Optionally pre-generate embedded wallets for the user.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"linked_accounts":{"type":"array","items":{"$ref":"#/components/schemas/LinkedAccountInput"}},"custom_metadata":{"$ref":"#/components/schemas/CustomMetadata"},"wallets":{"type":"array","items":{"type":"object","properties":{"additional_signers":{"type":"array","items":{"type":"object","properties":{"signer_id":{"allOf":[{"$ref":"#/components/schemas/KeyQuorumId"},{"description":"The key quorum ID for the signer."}]},"override_policy_ids":{"type":"array","items":{"type":"string","minLength":24,"maxLength":24},"description":"The array of policy IDs that will be applied to wallet requests. If specified, this will override the base policy IDs set on the wallet. Currently, only one policy is supported per signer."}},"required":["signer_id"]},"description":"Additional signers for the wallet."},"policy_ids":{"type":"array","items":{"type":"string","minLength":24,"maxLength":24},"maxItems":1,"description":"Policy IDs to enforce on the wallet. Currently, only one policy is supported per wallet."},"chain_type":{"$ref":"#/components/schemas/WalletChainType"},"create_smart_wallet":{"type":"boolean","description":"Create a smart wallet with this wallet as the signer. Only supported for wallets with `chain_type: \"ethereum\"`."}},"required":["chain_type"]},"description":"Wallets to create for the user."}},"required":["linked_accounts"],"example":{"linked_accounts":[{"address":"tom.bombadill@privy.io","type":"email"}]}}}}},"responses":{"200":{"description":"Newly created user object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/{user_id}":{"get":{"tags":["Users"],"operationId":"getUser","summary":"Get User","description":"Get a user by user ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"User ID"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Requested user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}},"delete":{"tags":["Users"],"operationId":"deleteUser","summary":"Delete User","description":"Delete a user by user ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"204":{"description":"User successfully deleted."},"404":{"description":"User not found.","content":{"text/html":{"schema":{"type":"string","enum":["User not found"]}}}}}}},"/v1/users/{user_id}/custom_metadata":{"post":{"tags":["Users"],"operationId":"setUserCustomMetadata","summary":"Create Custom Metadata","description":"Adds custom metadata to a user by user ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"custom_metadata":{"$ref":"#/components/schemas/CustomMetadata"}},"required":["custom_metadata"],"example":{"custom_metadata":{"key":"value"}}}}}},"responses":{"200":{"description":"User with updated custom metadata.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}},"patch":{"tags":["Users"],"operationId":"updateUserCustomMetadata","summary":"Update Custom Metadata","description":"Partially updates custom metadata for a user by user ID. Only top-level keys provided in the request are updated; unspecified keys are preserved.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchUsersCustomMetadata"}}}},"responses":{"200":{"description":"User with updated custom metadata.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/email/address":{"post":{"tags":["Users"],"operationId":"getUserByEmail","summary":"Lookup User by Email Address","description":"Looks up a user by their email address.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","format":"email"}},"required":["address"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/custom_auth/id":{"post":{"tags":["Users"],"operationId":"getUserByCustomAuthId","summary":"Lookup User by Custom Auth ID","description":"Looks up a user by their custom auth ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"custom_user_id":{"type":"string"}},"required":["custom_user_id"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/wallet/address":{"post":{"tags":["Users"],"operationId":"getUserByWalletAddress","summary":"Lookup User by wallet address","description":"Looks up a user by their wallet address.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"anyOf":[{"type":"string"},{"type":"string"}]}},"required":["address"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/farcaster/fid":{"post":{"tags":["Users"],"operationId":"getUserByFarcasterId","summary":"Lookup User by Farcaster ID","description":"Looks up a user by their Farcaster ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fid":{"type":"number"}},"required":["fid"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/phone/number":{"post":{"tags":["Users"],"operationId":"getUserByPhoneNumber","summary":"Lookup User by Phone Number","description":"Looks up a user by their phone number.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string"}},"required":["number"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/smart_wallet/address":{"post":{"tags":["Users"],"operationId":"getUserBySmartWalletAddress","summary":"Lookup User by Smart Wallet Address","description":"Looks up a user by their smart wallet address.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"}},"required":["address"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/discord/username":{"post":{"tags":["Users"],"operationId":"getUserByDiscordUsername","summary":"Lookup User by Discord Username","description":"Looks up a user by their Discord username.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"}},"required":["username"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/github/username":{"post":{"tags":["Users"],"operationId":"getUserByGithubUsername","summary":"Lookup User by Github Username","description":"Looks up a user by their Github username.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"}},"required":["username"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/twitter/username":{"post":{"tags":["Users"],"operationId":"getUserByTwitterUsername","summary":"Lookup User by Twitter Username","description":"Looks up a user by their Twitter username.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"}},"required":["username"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/twitter/subject":{"post":{"tags":["Users"],"operationId":"getUserByTwitterSubject","summary":"Lookup User by Twitter Subject","description":"Looks up a user by their Twitter subject.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string"}},"required":["subject"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/telegram/telegram_user_id":{"post":{"tags":["Users"],"operationId":"getUserByTelegramUserId","summary":"Lookup User by Telegram User ID","description":"Looks up a user by their Telegram user ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"telegram_user_id":{"type":"string"}},"required":["telegram_user_id"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/telegram/username":{"post":{"tags":["Users"],"operationId":"getUserByTelegramUsername","summary":"Lookup User by Telegram Username","description":"Looks up a user by their Telegram username.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"}},"required":["username"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/instagram/username":{"post":{"tags":["Users"],"operationId":"getUserByInstagramUsername","summary":"Lookup User by Instagram Username","description":"Looks up a user by their Instagram username.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"}},"required":["username"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/twitch/username":{"post":{"tags":["Users"],"operationId":"getUserByTwitchUsername","summary":"Lookup User by Twitch Username","description":"Looks up a user by their Twitch username.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"}},"required":["username"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/spotify/subject":{"post":{"tags":["Users"],"operationId":"getUserBySpotifySubject","summary":"Lookup User by Spotify Subject","description":"Looks up a user by their Spotify subject (user ID).","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string"}},"required":["subject"]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/search":{"post":{"tags":["Users"],"operationId":"searchUsers","summary":"Search Users by Search Term","description":"Search users by search term, emails, phone numbers, or wallet addresses.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"searchTerm":{"type":"string"}},"required":["searchTerm"]},{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","format":"email"}},"phoneNumbers":{"type":"array","items":{"type":"string"}},"walletAddresses":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"string"}]}}},"required":["emails","phoneNumbers","walletAddresses"]}]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/{user_id}/wallets":{"post":{"tags":["Users"],"operationId":"createUserEmbeddedWallet","summary":"Create Embedded Wallet","description":"Creates an embedded wallet for an existing user.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallets":{"type":"array","items":{"$ref":"#/components/schemas/WalletCreationInput"}}},"required":["wallets"]},"example":{"wallets":[{"chain_type":"ethereum"}]}}}},"responses":{"200":{"description":"Object with user data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/{user_id}/accounts":{"post":{"tags":["Users"],"operationId":"linkUserAccount","summary":"Add or update a user linked account","description":"Adds or updates a linked account for a user. This endpoint is not yet available to all users.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkedAccountInput"}}}},"responses":{"200":{"description":"User with updated linked account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/users/{user_id}/accounts/unlink":{"post":{"tags":["Users"],"operationId":"unlinkUserAccount","summary":"Unlink a user linked account","description":"Unlinks a user linked account.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/LinkedAccountType"},"handle":{"type":"string"},"provider":{"type":"string"}},"required":["type","handle"]},"example":{"type":"email","handle":"test@test.com"}}}},"responses":{"200":{"description":"User with remaining linked accounts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/v1/policies":{"post":{"tags":["Policies"],"operationId":"createPolicy","summary":"Create Policy","description":"Create a new policy.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"string","enum":["1.0"],"description":"Version of the policy. Currently, 1.0 is the only version."},"name":{"type":"string","minLength":1,"maxLength":50,"description":"Name to assign to policy."},"chain_type":{"$ref":"#/components/schemas/WalletChainType"},"rules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":50},"method":{"$ref":"#/components/schemas/PolicyMethod"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/PolicyCondition"}},"action":{"$ref":"#/components/schemas/PolicyAction"}},"required":["name","method","conditions","action"],"additionalProperties":false}},"owner":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"}},"required":["version","name","chain_type","rules"],"additionalProperties":false}}}},"responses":{"200":{"description":"Created policy object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Policy"}}}}}}},"/v1/policies/{policy_id}":{"get":{"tags":["Policies"],"operationId":"getPolicy","summary":"Get Policy","description":"Get a policy by policy ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"policy_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Requested policy object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Policy"}}}}}},"patch":{"tags":["Policies"],"operationId":"updatePolicy","summary":"Update Policy","description":"Update a policy by policy ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"policy_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50,"description":"Name to assign to policy."},"rules":{"type":"array","items":{"$ref":"#/components/schemas/PolicyRuleRequestBody"}},"owner":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Updated policy object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Policy"}}}}}},"delete":{"tags":["Policies"],"operationId":"deletePolicy","summary":"Delete Policy","description":"Delete a policy by policy ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"policy_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"responses":{"200":{"description":"Object with wallet data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}}}}},"/v1/policies/{policy_id}/rules":{"post":{"tags":["Policies"],"operationId":"createRule","summary":"Create Policy Rule","description":"Create a new rule for a policy.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"policy_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyRuleRequestBody"}}}},"responses":{"200":{"description":"Created policy rule object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyRuleResponse"}}}}}}},"/v1/policies/{policy_id}/rules/{rule_id}":{"get":{"tags":["Policies"],"operationId":"getRule","summary":"Get Policy Rule","description":"Get a rule by policy ID and rule ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"policy_id","in":"path"},{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"rule_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Requested policy rule object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyRuleResponse"}}}}}},"patch":{"tags":["Policies"],"operationId":"updateRule","summary":"Update Policy Rule","description":"Update a rule by policy ID and rule ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"policy_id","in":"path"},{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"rule_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyRuleRequestBody"}}}},"responses":{"200":{"description":"Updated policy rule object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyRuleResponse"},"example":{"id":"allowlist-usdc-contract-on-base-14351345","name":"Allowlist USDC contract on Base","method":"eth_sendTransaction","conditions":[{"field_source":"ethereum_transaction","field":"to","operator":"eq","value":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}],"action":"ALLOW"}}}}}},"delete":{"tags":["Policies"],"operationId":"deleteRule","summary":"Delete Policy Rule","description":"Delete a rule by policy ID and rule ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"policy_id","in":"path"},{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"rule_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"responses":{"200":{"description":"Deleted policy rule object.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SuccessResponse"},{"example":{"success":true}}]}}}}}}},"/v1/condition_sets":{"post":{"tags":["Policies"],"operationId":"createConditionSet","summary":"Create Condition Set","description":"Create a new condition set. You must provide either \"owner\" or \"owner_id\" (but not both) to specify ownership.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConditionSetRequestBody"},"examples":{"with-owner-id":{"summary":"Create with key quorum ID","value":{"name":"Approved Recipients","owner_id":"asgkan0r7gi0wdbvf9cw8qio"}},"with-user-id":{"summary":"Create with user ID","value":{"name":"Approved Recipients","owner":{"user_id":"did:privy:clxyz123abc456"}}},"with-public-key":{"summary":"Create with public key","value":{"name":"Approved Recipients","owner":{"public_key":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEx4aoeD72yykviK+f/ckqE2CItVIG1rCnvC3/XZ1HgpOcMEMialRmTrqIK4oZlYd1RfxU3za/C9yjhboIuoPD3g=="}}}}}}},"responses":{"200":{"description":"Created condition set object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConditionSet"},"examples":{"with-owner-id":{"summary":"Created with key quorum ID","value":{"id":"qvah5m2hmp9abqlxdmfiht90","name":"Approved Recipients","owner_id":"asgkan0r7gi0wdbvf9cw8qio","created_at":1761271537642}},"with-user-id":{"summary":"Created with user ID (new key quorum created)","value":{"id":"qvah5m2hmp9abqlxdmfiht91","name":"Approved Recipients","owner_id":"newkeyquorumid1234567890","created_at":1761271537642}},"with-public-key":{"summary":"Created with public key (new key quorum created)","value":{"id":"qvah5m2hmp9abqlxdmfiht92","name":"Approved Recipients","owner_id":"anotherkeyquorum9876543","created_at":1761271537642}}}}}}}}},"/v1/condition_sets/{condition_set_id}":{"get":{"tags":["Policies"],"operationId":"getConditionSet","summary":"Get Condition Set","description":"Get a condition set by condition set ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"condition_set_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Requested condition set object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConditionSet"}}}}}},"patch":{"tags":["Policies"],"operationId":"updateConditionSet","summary":"Update Condition Set","description":"Update a condition set by condition set ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"condition_set_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConditionSetRequestBody"},"examples":{"with-name":{"summary":"Update name","value":{"name":"Updated Recipients List"}},"with-public-key":{"summary":"Update public key","value":{"owner":{"public_key":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEx4aoeD72yykviK+f/ckqE2CItVIG1rCnvC3/XZ1HgpOcMEMialRmTrqIK4oZlYd1RfxU3za/C9yjhboIuoPD3g=="}}},"with-user-id":{"summary":"Update user id","value":{"owner":{"user_id":"did:privy:clxyz789def012"}}},"with-owner-id":{"summary":"Update owner id","value":{"owner_id":"newkeyquorumid1234567890"}}}}}},"responses":{"200":{"description":"Updated condition set object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConditionSet"},"examples":{"with-name":{"summary":"Name updated","value":{"id":"qvah5m2hmp9abqlxdmfiht93","name":"Updated Recipients List","owner_id":"asgkan0r7gi0wdbvf9cw8qio","created_at":1761271537642}},"with-public-key":{"summary":"Owner updated with public key (new key quorum created)","value":{"id":"qvah5m2hmp9abqlxdmfiht94","name":"Approved Recipients","owner_id":"newkeyquorumid9876543210","created_at":1761271537642}},"with-user-id":{"summary":"Owner updated with user ID (new key quorum created)","value":{"id":"qvah5m2hmp9abqlxdmfiht95","name":"Approved Recipients","owner_id":"newkeyquorumid1234567889","created_at":1761271537642}},"with-owner-id":{"summary":"Owner updated with existing key quorum ID","value":{"id":"qvah5m2hmp9abqlxdmfiht96","name":"Approved Recipients","owner_id":"newkeyquorumid1234567890","created_at":1761271537642}}}}}}}},"delete":{"tags":["Policies"],"operationId":"deleteConditionSet","summary":"Delete Condition Set","description":"Delete a condition set by condition set ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"condition_set_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"responses":{"200":{"description":"Success response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}}}}},"/v1/condition_sets/{condition_set_id}/condition_set_items":{"post":{"tags":["Policies"],"operationId":"createConditionSetItems","summary":"Create Condition Set Items","description":"Add new items to a condition set. Can add up to 100 items at once.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"condition_set_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConditionSetItemsRequestBody"},"example":[{"value":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"},{"value":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2"},{"value":"0x5B8b13e8f3E6Ec888e88C77cf039EB6281F21D93"}]}}},"responses":{"200":{"description":"Array of created condition set items.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConditionSetItems"},"example":[{"id":"abc123xyz456def789ghi012","condition_set_id":"qvah5m2hmp9abqlxdmfiht95","value":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb","created_at":1761271537642},{"id":"def456ghi789jkl012mno345","condition_set_id":"qvah5m2hmp9abqlxdmfiht95","value":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2","created_at":1761271537643},{"id":"pqr678stu901vwx234yza567","condition_set_id":"qvah5m2hmp9abqlxdmfiht95","value":"0x5B8b13e8f3E6Ec888e88C77cf039EB6281F21D93","created_at":1761271537644}]}}}}},"put":{"tags":["Policies"],"operationId":"updateConditionSetItems","summary":"Create Condition Set Items","description":"Replace all items in a condition set by condition set ID. Can add up to 100 items at once.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"condition_set_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConditionSetItemsRequestBody"},"example":[{"value":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"},{"value":"0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B"}]}}},"responses":{"200":{"description":"Array of condition set items after replacement.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConditionSetItems"},"example":[{"id":"abc123xyz456def789ghi012","condition_set_id":"qvah5m2hmp9abqlxdmfiht95","value":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb","created_at":1761271537642},{"id":"xyz789abc012def345ghi678","condition_set_id":"qvah5m2hmp9abqlxdmfiht95","value":"0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B","created_at":1761271537643}]}}}}},"get":{"tags":["Policies"],"operationId":"getConditionSetItems","summary":"Get Condition Set Items","description":"Get all items in a condition set with pagination support.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"condition_set_id","in":"path"},{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"},{"schema":{"type":["number","null"],"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter items by value containing the query string."},"required":false,"name":"query","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Paginated list of condition set items.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConditionSetItemsResponse"},"example":{"items":[{"id":"abc123xyz456def789ghi012","condition_set_id":"qvah5m2hmp9abqlxdmfiht95","value":"0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb","created_at":1761271537642},{"id":"def456ghi789jkl012mno345","condition_set_id":"qvah5m2hmp9abqlxdmfiht95","value":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2","created_at":1761271537643}],"next_cursor":null}}}}}}},"/v1/condition_sets/{condition_set_id}/condition_set_items/{condition_set_item_id}":{"get":{"tags":["Policies"],"operationId":"getConditionSetItem","summary":"Get Condition Set Item","description":"Get an item from a condition set by condition set ID and item ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"condition_set_id","in":"path"},{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"condition_set_item_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Success response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConditionSetItem"}}}}}},"delete":{"tags":["Policies"],"operationId":"deleteConditionSetItem","summary":"Delete Condition Set Item","description":"Delete an item from a condition set by condition set ID and item ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"condition_set_id","in":"path"},{"schema":{"type":"string","minLength":24,"maxLength":24},"required":true,"name":"condition_set_item_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"responses":{"200":{"description":"Success response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}}}}},"/v1/transactions/{transaction_id}":{"get":{"tags":["Transactions"],"operationId":"getTransaction","summary":"Get Transaction","description":"Get a transaction by transaction ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the transaction."},"required":true,"name":"transaction_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Object with transaction data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Transaction"}}}}}}},"/v1/transactions":{"get":{"tags":["Transactions"],"operationId":"getTransactionByReferenceId","summary":"List Transactions","description":"List transactions by reference ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Developer-provided reference ID to filter transactions by."},"required":true,"name":"reference_id","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"List of transactions matching the reference ID.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionList"}}}}}}},"/v1/key_quorums/{key_quorum_id}":{"get":{"tags":["Key quorums"],"operationId":"getKeyQuorum","summary":"Get key quorum","description":"Get a key quorum by ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"$ref":"#/components/schemas/KeyQuorumId"},"required":true,"name":"key_quorum_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Object with key quorum data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyQuorum"}}}}}},"patch":{"tags":["Key quorums"],"operationId":"updateKeyQuorum","summary":"Update key quorum","description":"Update a key quorum by key quorum ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"$ref":"#/components/schemas/KeyQuorumId"},"required":true,"name":"key_quorum_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyQuorumUpdateRequestBody"},"example":{"display_name":"Prod key quorum","public_keys":["MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEx4aoeD72yykviK+f/ckqE2CItVIG\n1rCnvC3/XZ1HgpOcMEMialRmTrqIK4oZlYd1RfxU3za/C9yjhboIuoPD3g=="],"authorization_threshold":1}}}},"responses":{"200":{"description":"Newly created key quorum.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyQuorum"}}}}}},"delete":{"tags":["Key quorums"],"operationId":"deleteKeyQuorum","summary":"Delete key quorum","description":"Delete a key quorum by key quorum ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"$ref":"#/components/schemas/KeyQuorumId"},"required":true,"name":"key_quorum_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"responses":{"200":{"description":"Object with key quorum data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}}}}},"/v1/key_quorums":{"post":{"tags":["Key quorums"],"operationId":"createKeyQuorum","summary":"Create key quorum","description":"Create a new key quorum.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyQuorumCreateRequestBody"},"example":{"display_name":"Prod key quorum","public_keys":["MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEx4aoeD72yykviK+f/ckqE2CItVIG\n1rCnvC3/XZ1HgpOcMEMialRmTrqIK4oZlYd1RfxU3za/C9yjhboIuoPD3g==","MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErzZtQr/bMIh3Y8f9ZqseB9i/AfjQ\nhu+agbNqXcJy/TfoNqvc/Y3Mh7gIZ8ZLXQEykycx4mYSpqrxp1lBKqsZDQ=="],"authorization_threshold":1}}}},"responses":{"200":{"description":"Newly created key quorum.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyQuorum"}}}}}}},"/v1/wallets_with_recovery":{"post":{"tags":["Embedded wallets"],"operationId":"createWalletsWithRecovery","summary":"Create wallets with recovery","description":"Create one or more wallets associated with a recovery user, so the user can later regain wallet access via the linked accounts. Deprecated; prefer the standard wallet creation flow combined with a separate recovery setup.","deprecated":true,"security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallets":{"type":"array","items":{"type":"object","properties":{"chain_type":{"$ref":"#/components/schemas/WalletChainType"},"display_name":{"type":"string","maxLength":100,"description":"A human-readable label for the wallet."},"external_id":{"type":"string","maxLength":64,"pattern":"^[a-zA-Z0-9_-]+$","description":"A customer-provided identifier for mapping to external systems. URL-safe characters only ([a-zA-Z0-9_-]), max 64 chars. Write-once: cannot be changed after creation."},"policy_ids":{"allOf":[{"$ref":"#/components/schemas/PolicyInput"},{"description":"List of policy IDs for policies that should be enforced on the wallet. Currently, only one policy is supported per wallet."}]}},"required":["chain_type"],"additionalProperties":false}},"primary_signer":{"type":"object","properties":{"subject_id":{"type":"string","description":"The JWT subject ID of the user."}},"required":["subject_id"],"additionalProperties":false},"recovery_user":{"type":"object","properties":{"linked_accounts":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/LinkedAccountEmailInput"},{"$ref":"#/components/schemas/LinkedAccountCustomJWTInput"}],"discriminator":{"propertyName":"type","mapping":{"email":"#/components/schemas/LinkedAccountEmailInput","custom_auth":"#/components/schemas/LinkedAccountCustomJWTInput"}}},"minItems":1,"maxItems":2}},"required":["linked_accounts"],"additionalProperties":false}},"required":["wallets","primary_signer","recovery_user"],"additionalProperties":false,"example":{"wallets":[{"chain_type":"ethereum","policy_ids":[]},{"chain_type":"solana","policy_ids":[]}],"primary_signer":{"subject_id":"cm7oxq1el000e11o8iwp7d0d0"},"recovery_user":{"linked_accounts":[{"type":"email","address":"john@doe.com"}]}}}}}},"responses":{"200":{"description":"Object with user and wallet data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletCreateWalletsWithRecoveryResponse"},"example":{"wallets":[{"id":"ubul5xhljqorce73sf82u0p3","address":"0x3DE69Fd93873d40459f27Ce5B74B42536f8d6149","chain_type":"ethereum","policy_ids":[],"additional_signers":[],"created_at":1744300912643,"owner_id":"lzjb3xnjk2ntod3w1hgwa358","exported_at":null,"imported_at":null,"archived_at":null},{"id":"sb4y18l68xze8gfszafmyv3q","address":"9wtGmqMamnKfz49XBwnJASbjcVnnKnT78qKopCL54TAk","chain_type":"solana","policy_ids":[],"additional_signers":[],"created_at":1744300912644,"owner_id":"lzjb3xnjk2ntod3w1hgwa358","exported_at":null,"imported_at":null,"archived_at":null}],"recovery_user_id":"so6bsadjfi3ihhkyt9hlqv6x"}}}}}}},"/v1/user_signers/authenticate":{"post":{"tags":["Embedded wallets"],"operationId":"authenticateUserSigner","summary":"Authenticate user signer","description":"Exchange a user JWT for a session signer that can authorize subsequent wallet operations on behalf of the user. Returns the encrypted authorization key and the list of wallets it can act on. Deprecated; use the wallet authenticate endpoint instead.","deprecated":true,"security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/WalletAuthenticateRequestBody"},{"type":"object","properties":{"user_jwt":{"type":"string","description":"The user's JWT, to be used to authenticate the user."}},"required":["user_jwt"],"additionalProperties":false}]},"example":{"user_jwt":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30","encryption_type":"HPKE","recipient_public_key":"DAQcDQgAEx4aoeD72yykviK+fckqE2CItVIGn1rCnvCXZ1HgpOcMEMialRmTrqIK4oZlYd1"}}}},"responses":{"200":{"description":"Object with authorization key and wallet IDs.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/WalletAuthenticateWithJwtResponse"},{"example":{"encrypted_authorization_key":{"encryption_type":"HPKE","encapsulated_key":"BECqbgIAcs3TpP5GadS6F8mXkSktR2DR8WNtd3e0Qcy7PpoRHEygpzjFWttntS+SEM3VSr4Thewh18ZP9chseLE=","ciphertext":"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgsqM8IKMlpFxVypBUa/Q2QvB1AmS/g5WHPp3SKq9A75uhRANCAATeX6BDghwclKAH8+/7IjvS1tCpvIfZ570IR44acX93pUGz5iEvpkg+HGaalHAXubuoUMq9CUWRm4wo+3090Nus"},"expires_at":1697059200000,"wallets":[{"id":"ubul5xhljqorce73sf82u0p3","address":"0x3DE69Fd93873d40459f27Ce5B74B42536f8d6149","chain_type":"ethereum","policy_ids":[],"additional_signers":[{"signer_id":"p3cyj3n8mt9f9u2htfize511","override_policy_ids":[]}],"created_at":1744300912643,"owner_id":"lzjb3xnjk2ntod3w1hgwa358","exported_at":null,"imported_at":null,"archived_at":null},{"id":"sb4y18l68xze8gfszafmyv3q","address":"9wtGmqMamnKfz49XBwnJASbjcVnnKnT78qKopCL54TAk","chain_type":"solana","policy_ids":[],"additional_signers":[{"signer_id":"p3cyj3n8mt9f9u2htfize511","override_policy_ids":[]}],"created_at":1744300912644,"owner_id":"lzjb3xnjk2ntod3w1hgwa358","exported_at":null,"imported_at":null,"archived_at":null}]}}]}}}}}}},"/v1/users/{user_id}/fiat/tos":{"post":{"tags":["Fiat"],"operationId":"createFiatTermsOfService","summary":"Create a terms of service agreement for a user","description":"Creates a terms of service agreement for a user","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the user to create a terms of service agreement for"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/OnrampProvider"}},"required":["provider"],"example":{"provider":"bridge-sandbox"}}}}},"responses":{"200":{"description":"Success message if the terms of service agreement was created successfully","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["completed"]}},"required":["status"]},{"type":"object","properties":{"status":{"type":"string","enum":["incomplete"]},"url":{"type":"string"}},"required":["status","url"]}],"example":{"status":"incomplete","url":"https://dashboard.bridge.xyz/accept-terms-of-service?session_token=a53cd290-0ef6-4ab6-99d2-cd82192e7914"}}}}}}}},"/v1/users/{user_id}/fiat/kyc":{"post":{"tags":["Fiat"],"operationId":"initiateFiatKyc","summary":"Initiate KYC verification for a user","description":"Initiates KYC verification process for a user with the configured provider","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the user to initiate KYC for"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["bridge"]},"data":{"type":"object","properties":{"type":{"type":"string","enum":["individual"]},"first_name":{"type":"string","minLength":1,"maxLength":1024},"last_name":{"type":"string","minLength":1,"maxLength":1024},"email":{"type":"string","minLength":1,"maxLength":1024,"format":"email"},"residential_address":{"type":"object","properties":{"street_line_1":{"type":"string","minLength":1},"street_line_2":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"subdivision":{"type":"string","minLength":1,"maxLength":3},"postal_code":{"type":"string","minLength":1},"country":{"type":"string","minLength":3,"maxLength":3}},"required":["street_line_1","city","subdivision","country"]},"birth_date":{"type":"string","minLength":10,"maxLength":10},"identifying_information":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"issuing_country":{"type":"string","minLength":3,"maxLength":3},"number":{"type":"string"},"description":{"type":"string"},"expiration":{"type":"string"},"image_front":{"type":"string"},"image_back":{"type":"string"}},"required":["type","issuing_country"]},"minItems":1},"ofac_screen":{"type":"object","properties":{"screened_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"result":{"type":"string","enum":["passed"]}},"required":["screened_at","result"]},"kyc_screen":{"type":"object","properties":{"screened_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"result":{"type":"string","enum":["passed"]}},"required":["screened_at","result"]},"signed_agreement_id":{"type":"string","minLength":1,"maxLength":1024},"middle_name":{"type":"string","minLength":1,"maxLength":1024},"transliterated_first_name":{"type":"string","minLength":1,"maxLength":256},"transliterated_middle_name":{"type":"string","minLength":1,"maxLength":256},"transliterated_last_name":{"type":"string","minLength":1,"maxLength":256},"phone":{"type":"string","minLength":2,"maxLength":18},"transliterated_residential_address":{"type":"object","properties":{"street_line_1":{"type":"string","minLength":1},"street_line_2":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"subdivision":{"type":"string","minLength":1,"maxLength":3},"postal_code":{"type":"string","minLength":1},"country":{"type":"string","minLength":3,"maxLength":3}},"required":["street_line_1","city","subdivision","country"]},"endorsements":{"type":"array","items":{"type":"string"}},"account_purpose":{"type":"string"},"account_purpose_other":{"type":"string"},"employment_status":{"type":"string"},"expected_monthly_payments_usd":{"type":"string"},"acting_as_intermediary":{"type":"string"},"most_recent_occupation":{"type":"string"},"source_of_funds":{"type":"string"},"nationality":{"type":"string","minLength":3,"maxLength":3},"verified_selfie_at":{"type":"string"},"completed_customer_safety_check_at":{"type":"string"},"documents":{"type":"array","items":{"type":"object","properties":{"purposes":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"file":{"type":"string","minLength":1},"description":{"type":"string","minLength":1}},"required":["purposes","file"]}},"has_signed_terms_of_service":{"type":"boolean"},"has_accepted_terms_of_service":{"type":"boolean"}},"required":["type","first_name","last_name","email","residential_address","birth_date","identifying_information"]}},"required":["provider","data"]},{"type":"object","properties":{"provider":{"type":"string","enum":["bridge-sandbox"]},"data":{"type":"object","properties":{"type":{"type":"string","enum":["individual"]},"first_name":{"type":"string","minLength":1,"maxLength":1024},"last_name":{"type":"string","minLength":1,"maxLength":1024},"email":{"type":"string","minLength":1,"maxLength":1024,"format":"email"},"residential_address":{"type":"object","properties":{"street_line_1":{"type":"string","minLength":1},"street_line_2":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"subdivision":{"type":"string","minLength":1,"maxLength":3},"postal_code":{"type":"string","minLength":1},"country":{"type":"string","minLength":3,"maxLength":3}},"required":["street_line_1","city","subdivision","country"]},"birth_date":{"type":"string","minLength":10,"maxLength":10},"identifying_information":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"issuing_country":{"type":"string","minLength":3,"maxLength":3},"number":{"type":"string"},"description":{"type":"string"},"expiration":{"type":"string"},"image_front":{"type":"string"},"image_back":{"type":"string"}},"required":["type","issuing_country"]},"minItems":1},"ofac_screen":{"type":"object","properties":{"screened_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"result":{"type":"string","enum":["passed"]}},"required":["screened_at","result"]},"kyc_screen":{"type":"object","properties":{"screened_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"result":{"type":"string","enum":["passed"]}},"required":["screened_at","result"]},"signed_agreement_id":{"type":"string","minLength":1,"maxLength":1024},"middle_name":{"type":"string","minLength":1,"maxLength":1024},"transliterated_first_name":{"type":"string","minLength":1,"maxLength":256},"transliterated_middle_name":{"type":"string","minLength":1,"maxLength":256},"transliterated_last_name":{"type":"string","minLength":1,"maxLength":256},"phone":{"type":"string","minLength":2,"maxLength":18},"transliterated_residential_address":{"type":"object","properties":{"street_line_1":{"type":"string","minLength":1},"street_line_2":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"subdivision":{"type":"string","minLength":1,"maxLength":3},"postal_code":{"type":"string","minLength":1},"country":{"type":"string","minLength":3,"maxLength":3}},"required":["street_line_1","city","subdivision","country"]},"endorsements":{"type":"array","items":{"type":"string"}},"account_purpose":{"type":"string"},"account_purpose_other":{"type":"string"},"employment_status":{"type":"string"},"expected_monthly_payments_usd":{"type":"string"},"acting_as_intermediary":{"type":"string"},"most_recent_occupation":{"type":"string"},"source_of_funds":{"type":"string"},"nationality":{"type":"string","minLength":3,"maxLength":3},"verified_selfie_at":{"type":"string"},"completed_customer_safety_check_at":{"type":"string"},"documents":{"type":"array","items":{"type":"object","properties":{"purposes":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"file":{"type":"string","minLength":1},"description":{"type":"string","minLength":1}},"required":["purposes","file"]}},"has_signed_terms_of_service":{"type":"boolean"},"has_accepted_terms_of_service":{"type":"boolean"}},"required":["type","first_name","last_name","email","residential_address","birth_date","identifying_information"]}},"required":["provider","data"]}],"example":{"provider":"bridge-sandbox","data":{"type":"individual","first_name":"John","last_name":"Doe","email":"john@doe.com","phone":"+59898222122","residential_address":{"street_line_1":"1234 Lombard Street","street_line_2":"Apt 2F","city":"San Francisco","subdivision":"CA","postal_code":"94109","country":"USA"},"signed_agreement_id":"123","birth_date":"1989-09-09","identifying_information":[{"type":"ssn","number":"111-11-1111","issuing_country":"USA","image_front":"data:image/jpeg;base64,/9j/4AAQSkZJRg...","image_back":"data:image/jpeg;base64,/9j/4AAQSkZJRg..."}]}}},"example":{"provider":"bridge-sandbox","data":{"type":"individual","first_name":"John","last_name":"Doe","email":"john@doe.com","phone":"+59898222122","residential_address":{"street_line_1":"1234 Lombard Street","street_line_2":"Apt 2F","city":"San Francisco","subdivision":"CA","postal_code":"94109","country":"USA"},"signed_agreement_id":"123","birth_date":"1989-09-09","identifying_information":[{"type":"ssn","number":"111-11-1111","issuing_country":"USA","image_front":"data:image/jpeg;base64,/9j/4AAQSkZJRg...","image_back":"data:image/jpeg;base64,/9j/4AAQSkZJRg..."}]}}}}},"responses":{"200":{"description":"KYC verification status","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/OnrampKycResponse"},{"example":{"user_id":"cmaftdj280001ww1ihwhy57s3","provider_user_id":"303912cc-74fa-4f7a-9c51-2945b40ac09a","status":"under_review"}}]}}}}}},"get":{"tags":["Fiat"],"operationId":"getFiatKycStatus","summary":"Get KYC status for a user","description":"Get the current KYC verification status for a user from the configured provider","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the user to get KYC status for"},"required":true,"name":"user_id","in":"path"},{"schema":{"$ref":"#/components/schemas/OnrampProvider"},"required":true,"name":"provider","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"KYC verification status","content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"type":"string"},"provider_user_id":{"type":"string"},"status":{"$ref":"#/components/schemas/OnrampKycStatus"}},"required":["user_id","status"],"example":{"user_id":"cmaftdj280001ww1ihwhy57s3","provider_user_id":"303912cc-74fa-4f7a-9c51-2945b40ac09a","status":"under_review"}}}}}}},"patch":{"tags":["Fiat"],"operationId":"updateFiatKyc","summary":"Update KYC status for a user","description":"Update the KYC verification status for a user from the configured provider","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the user to update KYC status for"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["bridge"]},"data":{"type":"object","properties":{"type":{"type":"string","enum":["individual"]},"first_name":{"type":"string","minLength":1,"maxLength":1024},"last_name":{"type":"string","minLength":1,"maxLength":1024},"email":{"type":"string","minLength":1,"maxLength":1024,"format":"email"},"residential_address":{"type":"object","properties":{"street_line_1":{"type":"string","minLength":1},"street_line_2":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"subdivision":{"type":"string","minLength":1,"maxLength":3},"postal_code":{"type":"string","minLength":1},"country":{"type":"string","minLength":3,"maxLength":3}},"required":["street_line_1","city","subdivision","country"]},"birth_date":{"type":"string","minLength":10,"maxLength":10},"identifying_information":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"issuing_country":{"type":"string","minLength":3,"maxLength":3},"number":{"type":"string"},"description":{"type":"string"},"expiration":{"type":"string"},"image_front":{"type":"string"},"image_back":{"type":"string"}},"required":["type","issuing_country"]},"minItems":1},"ofac_screen":{"type":"object","properties":{"screened_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"result":{"type":"string","enum":["passed"]}},"required":["screened_at","result"]},"kyc_screen":{"type":"object","properties":{"screened_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"result":{"type":"string","enum":["passed"]}},"required":["screened_at","result"]},"signed_agreement_id":{"type":"string","minLength":1,"maxLength":1024},"middle_name":{"type":"string","minLength":1,"maxLength":1024},"transliterated_first_name":{"type":"string","minLength":1,"maxLength":256},"transliterated_middle_name":{"type":"string","minLength":1,"maxLength":256},"transliterated_last_name":{"type":"string","minLength":1,"maxLength":256},"phone":{"type":"string","minLength":2,"maxLength":18},"transliterated_residential_address":{"type":"object","properties":{"street_line_1":{"type":"string","minLength":1},"street_line_2":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"subdivision":{"type":"string","minLength":1,"maxLength":3},"postal_code":{"type":"string","minLength":1},"country":{"type":"string","minLength":3,"maxLength":3}},"required":["street_line_1","city","subdivision","country"]},"endorsements":{"type":"array","items":{"type":"string"}},"account_purpose":{"type":"string"},"account_purpose_other":{"type":"string"},"employment_status":{"type":"string"},"expected_monthly_payments_usd":{"type":"string"},"acting_as_intermediary":{"type":"string"},"most_recent_occupation":{"type":"string"},"source_of_funds":{"type":"string"},"nationality":{"type":"string","minLength":3,"maxLength":3},"verified_selfie_at":{"type":"string"},"completed_customer_safety_check_at":{"type":"string"},"documents":{"type":"array","items":{"type":"object","properties":{"purposes":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"file":{"type":"string","minLength":1},"description":{"type":"string","minLength":1}},"required":["purposes","file"]}},"has_signed_terms_of_service":{"type":"boolean"},"has_accepted_terms_of_service":{"type":"boolean"}},"required":["type","first_name","last_name","email","residential_address","birth_date","identifying_information"]}},"required":["provider","data"]},{"type":"object","properties":{"provider":{"type":"string","enum":["bridge-sandbox"]},"data":{"type":"object","properties":{"type":{"type":"string","enum":["individual"]},"first_name":{"type":"string","minLength":1,"maxLength":1024},"last_name":{"type":"string","minLength":1,"maxLength":1024},"email":{"type":"string","minLength":1,"maxLength":1024,"format":"email"},"residential_address":{"type":"object","properties":{"street_line_1":{"type":"string","minLength":1},"street_line_2":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"subdivision":{"type":"string","minLength":1,"maxLength":3},"postal_code":{"type":"string","minLength":1},"country":{"type":"string","minLength":3,"maxLength":3}},"required":["street_line_1","city","subdivision","country"]},"birth_date":{"type":"string","minLength":10,"maxLength":10},"identifying_information":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"issuing_country":{"type":"string","minLength":3,"maxLength":3},"number":{"type":"string"},"description":{"type":"string"},"expiration":{"type":"string"},"image_front":{"type":"string"},"image_back":{"type":"string"}},"required":["type","issuing_country"]},"minItems":1},"ofac_screen":{"type":"object","properties":{"screened_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"result":{"type":"string","enum":["passed"]}},"required":["screened_at","result"]},"kyc_screen":{"type":"object","properties":{"screened_at":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"result":{"type":"string","enum":["passed"]}},"required":["screened_at","result"]},"signed_agreement_id":{"type":"string","minLength":1,"maxLength":1024},"middle_name":{"type":"string","minLength":1,"maxLength":1024},"transliterated_first_name":{"type":"string","minLength":1,"maxLength":256},"transliterated_middle_name":{"type":"string","minLength":1,"maxLength":256},"transliterated_last_name":{"type":"string","minLength":1,"maxLength":256},"phone":{"type":"string","minLength":2,"maxLength":18},"transliterated_residential_address":{"type":"object","properties":{"street_line_1":{"type":"string","minLength":1},"street_line_2":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"subdivision":{"type":"string","minLength":1,"maxLength":3},"postal_code":{"type":"string","minLength":1},"country":{"type":"string","minLength":3,"maxLength":3}},"required":["street_line_1","city","subdivision","country"]},"endorsements":{"type":"array","items":{"type":"string"}},"account_purpose":{"type":"string"},"account_purpose_other":{"type":"string"},"employment_status":{"type":"string"},"expected_monthly_payments_usd":{"type":"string"},"acting_as_intermediary":{"type":"string"},"most_recent_occupation":{"type":"string"},"source_of_funds":{"type":"string"},"nationality":{"type":"string","minLength":3,"maxLength":3},"verified_selfie_at":{"type":"string"},"completed_customer_safety_check_at":{"type":"string"},"documents":{"type":"array","items":{"type":"object","properties":{"purposes":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"file":{"type":"string","minLength":1},"description":{"type":"string","minLength":1}},"required":["purposes","file"]}},"has_signed_terms_of_service":{"type":"boolean"},"has_accepted_terms_of_service":{"type":"boolean"}},"required":["type","first_name","last_name","email","residential_address","birth_date","identifying_information"]}},"required":["provider","data"]}],"example":{"provider":"bridge-sandbox","data":{"type":"individual","first_name":"John","last_name":"Doe","email":"john@doe.com","phone":"+59898222122","residential_address":{"street_line_1":"1234 Lombard Street","street_line_2":"Apt 2F","city":"San Francisco","subdivision":"CA","postal_code":"94109","country":"USA"},"signed_agreement_id":"123","birth_date":"1989-09-09","identifying_information":[{"type":"ssn","number":"111-11-1111","issuing_country":"USA","image_front":"data:image/jpeg;base64,/9j/4AAQSkZJRg...","image_back":"data:image/jpeg;base64,/9j/4AAQSkZJRg..."}]}}}}}},"responses":{"200":{"description":"Updated KYC verification status","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/OnrampKycResponse"},{"example":{"user_id":"cmaftdj280001ww1ihwhy57s3","provider_user_id":"303912cc-74fa-4f7a-9c51-2945b40ac09a","status":"under_review"}}]}}}}}}},"/v1/users/{user_id}/fiat/kyc_link":{"post":{"tags":["Fiat"],"operationId":"getFiatKycLink","summary":"Get a KYC link for a user","description":"Returns a KYC link for a user","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the user"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/OnrampProvider"},"full_name":{"type":"string"},"email":{"type":"string","format":"email"},"type":{"type":"string","enum":["individual","business"]},"endorsements":{"type":"array","items":{"type":"string","enum":["sepa"]}},"redirect_uri":{"type":"string"}},"required":["provider","email"]}}}},"responses":{"200":{"description":"KYC link for the user","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"customer_id":{"type":"string"},"full_name":{"type":"string"},"email":{"type":"string"},"kyc_link":{"type":"string"},"kyc_status":{"type":"string","enum":["not_started","pending","incomplete","awaiting_ubo","manual_review","under_review","approved","rejected"]},"rejection_reasons":{"type":"array","items":{"type":"object","properties":{"developer_reason":{"type":"string"},"reason":{"type":"string"},"created_at":{"type":"string"}},"required":["developer_reason","reason","created_at"]}},"tos_link":{"type":"string"},"tos_status":{"type":"string","enum":["pending","approved"]},"persona_inquiry_type":{"type":"string"},"created_at":{"type":"string"}},"required":["id","customer_id","full_name","email","kyc_link","kyc_status","rejection_reasons","tos_link","tos_status","created_at"]}}}}}}},"/v1/users/{user_id}/fiat/accounts":{"get":{"tags":["Fiat"],"operationId":"getFiatAccounts","summary":"Get user's fiat accounts","description":"Returns the IDs of all external fiat accounts (used for offramping) for the user","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the user to get fiat accounts for"},"required":true,"name":"user_id","in":"path"},{"schema":{"$ref":"#/components/schemas/OnrampProvider"},"required":true,"name":"provider","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"List of fiat accounts","content":{"application/json":{"schema":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"bank_name":{"type":"string"},"currency":{"type":"string"},"account_type":{"type":"string"},"last_4":{"type":"string"}},"required":["id","currency","account_type"]}}},"required":["accounts"],"example":{"accounts":[{"id":"a068d2dd-743a-4011-9b62-8ad33cc7a7be","bank_name":"Chase","currency":"usd","account_type":"us","last_4":"7899"}]}}}}}}},"post":{"tags":["Fiat"],"operationId":"createFiatAccount","summary":"Create a fiat account","description":"Sets up external bank account object for the user through the configured default provider. Requires the user to already be KYC'ed.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the user to create the fiat account for"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/OnrampProvider"},"account_owner_name":{"type":"string","minLength":3,"maxLength":256},"bank_name":{"type":"string","minLength":3,"maxLength":256},"currency":{"$ref":"#/components/schemas/FiatCurrency"},"iban":{"type":"object","properties":{"account_number":{"type":"string","minLength":1},"bic":{"type":"string","minLength":1},"country":{"type":"string","minLength":3,"maxLength":3}},"required":["account_number","bic","country"]},"account":{"type":"object","properties":{"account_number":{"type":"string","minLength":1},"routing_number":{"type":"string","minLength":9,"maxLength":9},"checking_or_savings":{"type":"string","enum":["checking","savings"]}},"required":["account_number","routing_number"]},"swift":{"type":"object","properties":{"address":{"type":"object","properties":{"street_line_1":{"type":"string","minLength":1},"street_line_2":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"postal_code":{"type":"string","minLength":1},"country":{"type":"string","minLength":3,"maxLength":3},"state":{"type":"string","minLength":1,"maxLength":3}},"required":["street_line_1","city","country"]},"category":{"type":"string","enum":["client","parent_company","subsidiary","supplier"]},"purpose_of_funds":{"type":"array","items":{"type":"string","enum":["intra_group_transfer","invoice_for_goods_and_services"]},"minItems":1},"short_business_description":{"type":"string","minLength":1},"account":{"type":"object","properties":{"account_number":{"type":"string","minLength":1},"bic":{"type":"string","minLength":1},"country":{"type":"string","minLength":3,"maxLength":3}},"required":["account_number","bic","country"]}},"required":["address","category","purpose_of_funds","short_business_description","account"]},"address":{"type":"object","properties":{"street_line_1":{"type":"string","minLength":1},"street_line_2":{"type":"string","minLength":1},"city":{"type":"string","minLength":1},"postal_code":{"type":"string","minLength":1},"country":{"type":"string","minLength":3,"maxLength":3},"state":{"type":"string","minLength":1,"maxLength":3}},"required":["street_line_1","city","country"]},"first_name":{"type":"string","minLength":1,"maxLength":1024},"last_name":{"type":"string","minLength":1,"maxLength":1024}},"required":["provider","account_owner_name","currency"],"example":{"provider":"bridge-sandbox","account_owner_name":"John Doe","currency":"usd","bank_name":"Chase","account":{"account_number":"1234567899","routing_number":"121212121","checking_or_savings":"checking"},"address":{"street_line_1":"123 Washington St","street_line_2":"Apt 2F","city":"New York","state":"NY","postal_code":"10001","country":"USA"},"first_name":"John","last_name":"Doe"}},"example":{"provider":"bridge-sandbox","account_owner_name":"John Doe","currency":"usd","bank_name":"Chase","account":{"account_number":"1234567899","routing_number":"121212121","checking_or_savings":"checking"},"address":{"street_line_1":"123 Washington St","street_line_2":"Apt 2F","city":"New York","state":"NY","postal_code":"10001","country":"USA"},"first_name":"John","last_name":"Doe"}}}},"responses":{"200":{"description":"Created fiat account details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"bank_name":{"type":"string"},"currency":{"type":"string"},"account_type":{"type":"string"},"last_4":{"type":"string"}},"required":["id","currency","account_type"],"example":{"id":"a068d2dd-743a-4011-9b62-8ad33cc7a7be","bank_name":"Chase","currency":"usd","account_type":"us","last_4":"7899"}}}}}}}},"/v1/users/{user_id}/fiat/offramp":{"post":{"tags":["Fiat"],"operationId":"initiateFiatOfframp","summary":"Initiate an offramp transaction","description":"Triggers the offramp flow and gets the on-chain address to send funds to","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the user initiating the offramp"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"string","minLength":1},"provider":{"$ref":"#/components/schemas/OnrampProvider"},"source":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/OnrampAsset"},"chain":{"$ref":"#/components/schemas/OnrampChain"},"from_address":{"type":"string"}},"required":["currency","chain","from_address"]},"destination":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/FiatCurrency"},"payment_rail":{"$ref":"#/components/schemas/FiatPaymentRail"},"external_account_id":{"type":"string","format":"uuid"}},"required":["currency","payment_rail","external_account_id"]}},"required":["amount","provider","source","destination"],"example":{"provider":"bridge-sandbox","amount":"100.00","source":{"currency":"usdc","chain":"base","from_address":"0xc24272abc794b973b896715db40a72714a030323"},"destination":{"currency":"usd","payment_rail":"ach_push","external_account_id":"a068d2dd-743a-4011-9b62-8ad33cc7a7be"}}}}}},"responses":{"200":{"description":"Deposit instructions for the offramp","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/OfframpResponse"},{"example":{"id":"d220bcf7-4ad5-4687-8a61-e51c5875225e","status":"awaiting_funds","deposit_instructions":{"amount":"100.0","currency":"usdc","to_address":"0xdeadbeef2usdcbase","from_address":"0xc24272abc794b973b896715db40a72714a030323","chain":"base"}}}]}}}}}}},"/v1/users/{user_id}/fiat/onramp":{"post":{"tags":["Fiat"],"operationId":"initiateFiatOnramp","summary":"Initiate an onramp transaction","description":"Triggers an onramp to the specified recipient blockchain address, returns the bank deposit instructions","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the user initiating the onramp"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"string","minLength":1},"provider":{"$ref":"#/components/schemas/OnrampProvider"},"source":{"type":"object","properties":{"payment_rail":{"$ref":"#/components/schemas/FiatPaymentRail"},"currency":{"$ref":"#/components/schemas/FiatCurrency"}},"required":["payment_rail","currency"]},"destination":{"type":"object","properties":{"chain":{"$ref":"#/components/schemas/OnrampChain"},"currency":{"$ref":"#/components/schemas/OnrampAsset"},"to_address":{"type":"string"}},"required":["chain","currency","to_address"]}},"required":["amount","provider","source","destination"],"example":{"amount":"100.00","provider":"bridge-sandbox","source":{"currency":"usd","payment_rail":"ach_push"},"destination":{"currency":"usdc","chain":"base","to_address":"0x38Bc05d7b69F63D05337829fA5Dc4896F179B5fA"}}}}}},"responses":{"200":{"description":"Bank deposit instructions for the onramp","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/OnrampResponse"},{"example":{"id":"3a61a69a-1f20-4113-85f5-997078166729","status":"awaiting_funds","deposit_instructions":{"payment_rail":"ach_push","currency":"usd","amount":"100.0","deposit_message":"BRGFU2Z9TJPJXCS7ZZK2","bank_account_number":"11223344556677","bank_routing_number":"123456789","bank_beneficiary_name":"Bridge Ventures Inc","bank_beneficiary_address":"1234 Elm St, Springfield, IL 12345","bank_name":"Bank of Nowhere","bank_address":"1800 North Pole St., Orlando, FL 32801"}}}]}}}}}}},"/v1/apps/{app_id}/fiat":{"post":{"tags":["Fiat"],"operationId":"configureFiatApp","summary":"Configure app for fiat onramping and offramping.","description":"Updates the app configuration for the specified onramp provider. This is used to set up the app for fiat onramping and offramping.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the app that is being configured for fiat onramping and offramping"},"required":true,"name":"app_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/OnrampProvider"},"api_key":{"type":"string","minLength":1}},"required":["provider","api_key"],"example":{"provider":"bridge-sandbox","api_key":"insert-api-key"}}}}},"responses":{"200":{"description":"Success message if the app was configured successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}}}}},"/v1/users/{user_id}/fiat/status":{"post":{"tags":["Fiat"],"operationId":"listFiatTransactions","summary":"Get a list of fiat transactions and their statuses","description":"Returns a list of fiat transactions and their statuses","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the user"},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/OnrampProvider"},"tx_hash":{"type":"string","pattern":"^0x[0-9a-fA-F]+$"}},"required":["provider"]}}}},"responses":{"200":{"description":"Bank deposit instructions for the onramp","content":{"application/json":{"schema":{"type":"object","properties":{"transactions":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["onramp"]},"created_at":{"type":"string"},"destination":{"type":"object","properties":{"chain":{"type":"string"},"currency":{"type":"string"},"address":{"type":"string"},"privy_user_id":{"type":"string"}},"required":["chain","currency","address"]},"receipt":{"type":"object","properties":{"final_amount":{"type":"string"},"transaction_hash":{"type":"string"}},"required":["final_amount"]},"is_sandbox":{"type":"boolean"},"id":{"type":"string"},"status":{"$ref":"#/components/schemas/OnrampTransferStatus"},"deposit_instructions":{"$ref":"#/components/schemas/OnrampDepositInstructions"}},"required":["type","created_at","destination","is_sandbox","id","status","deposit_instructions"]},{"type":"object","properties":{"type":{"type":"string","enum":["offramp"]},"created_at":{"type":"string"},"destination":{"type":"object","properties":{"payment_rail":{"type":"string"},"currency":{"type":"string"},"external_account_id":{"type":"string"}},"required":["payment_rail","currency","external_account_id"]},"receipt":{"type":"object","properties":{"final_amount":{"type":"string"},"transaction_hash":{"type":"string"}},"required":["final_amount"]},"is_sandbox":{"type":"boolean"},"id":{"type":"string"},"status":{"$ref":"#/components/schemas/OnrampTransferStatus"},"deposit_instructions":{"$ref":"#/components/schemas/OfframpDepositInstructions"}},"required":["type","created_at","destination","is_sandbox","id","status","deposit_instructions"]}]}}},"required":["transactions"]}}}}}}},"/v1/intents":{"get":{"tags":["Intents"],"operationId":"listIntents","summary":"List intents","description":"List intents for an app. Returns a paginated list of intents with their current status and details.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"},{"schema":{"type":["number","null"],"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"$ref":"#/components/schemas/IntentStatus"},"required":false,"name":"status","in":"query"},{"schema":{"$ref":"#/components/schemas/IntentType"},"required":false,"name":"intent_type","in":"query"},{"schema":{"type":"string"},"required":false,"name":"created_by_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"pending_member_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"resource_id","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"current_user_has_signed","in":"query"},{"schema":{"type":"string","enum":["created_at_desc","expires_at_asc","updated_at_desc"]},"required":false,"name":"sort_by","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"List of intents.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/IntentResponse"}},"next_cursor":{"type":["string","null"]}},"required":["data"]}}}}}}},"/v1/intents/{intent_id}":{"get":{"tags":["Intents"],"operationId":"getIntent","summary":"Get intent","description":"Retrieve an intent by ID. Returns the intent details including its current status, authorization details, and execution result if applicable.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the intent."},"required":true,"name":"intent_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Intent details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntentResponse"}}}}}}},"/v1/intents/wallets/{wallet_id}/rpc":{"post":{"tags":["Intents"],"operationId":"createRpcIntent","summary":"Create RPC intent","description":"Create an intent to execute an RPC method on a wallet. The intent must be authorized by either the wallet owner or signers before it can be executed.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletRpcRequestBody"}}}},"responses":{"200":{"description":"Created RPC intent.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RpcIntentResponse"}}}}}}},"/v1/intents/wallets/{wallet_id}/transfer":{"post":{"tags":["Intents"],"operationId":"createTransferIntent","summary":"Create transfer intent","description":"Create an intent to execute a token transfer via a wallet. The intent must be authorized by either the wallet owner or signers before it can be executed.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRequestBody"}}}},"responses":{"200":{"description":"Created transfer intent.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferIntentResponse"}}}}}}},"/v1/intents/wallets/{wallet_id}":{"patch":{"tags":["Intents"],"operationId":"createWalletUpdateIntent","summary":"Create wallet update intent","description":"Create an intent to update a wallet. The intent must be authorized by the wallet owner before it can be executed.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletUpdateRequestBody"}}}},"responses":{"200":{"description":"Created wallet update intent.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletIntentResponse"}}}}}}},"/v1/intents/policies/{policy_id}":{"patch":{"tags":["Intents"],"operationId":"createPolicyUpdateIntent","summary":"Create policy update intent","description":"Create an intent to update a policy. The intent must be authorized by the policy owner before it can be executed.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the policy."},"required":true,"name":"policy_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50,"description":"Name to assign to policy."},"rules":{"type":"array","items":{"$ref":"#/components/schemas/PolicyRuleRequestBody"}},"owner":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Created policy update intent.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyIntentResponse"}}}}}}},"/v1/intents/policies/{policy_id}/rules":{"post":{"tags":["Intents"],"operationId":"createPolicyRuleIntent","summary":"Create policy rule intent","description":"Create an intent to add a rule to a policy. The intent must be authorized by the policy owner before it can be executed.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the policy."},"required":true,"name":"policy_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyRuleRequestBody"}}}},"responses":{"200":{"description":"Created rule intent.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleMutateIntentResponse"}}}}}}},"/v1/intents/policies/{policy_id}/rules/{rule_id}":{"patch":{"tags":["Intents"],"operationId":"createPolicyRuleUpdateIntent","summary":"Create policy rule update intent","description":"Create an intent to update a rule on a policy. The intent must be authorized by the policy owner before it can be executed.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the policy."},"required":true,"name":"policy_id","in":"path"},{"schema":{"type":"string","description":"ID of the rule."},"required":true,"name":"rule_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyRuleRequestBody"}}}},"responses":{"200":{"description":"Created rule update intent.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleMutateIntentResponse"}}}}}},"delete":{"tags":["Intents"],"operationId":"createPolicyRuleDeleteIntent","summary":"Create policy rule delete intent","description":"Create an intent to delete a rule from a policy. The intent must be authorized by the policy owner before it can be executed.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the policy."},"required":true,"name":"policy_id","in":"path"},{"schema":{"type":"string","description":"ID of the rule."},"required":true,"name":"rule_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"responses":{"200":{"description":"Created rule delete intent.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleDeleteIntentResponse"}}}}}}},"/v1/intents/key_quorums/{key_quorum_id}":{"patch":{"tags":["Intents"],"operationId":"createKeyQuorumUpdateIntent","summary":"Create key quorum update intent","description":"Create an intent to update a key quorum. The intent must be authorized by the key quorum members before it can be executed.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the key quorum."},"required":true,"name":"key_quorum_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyQuorumUpdateRequestBody"}}}},"responses":{"200":{"description":"Created key quorum update intent.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyQuorumIntentResponse"}}}}}}},"/v1/intents/{intent_id}/authorize":{"post":{"tags":["Intents"],"operationId":"authorizeIntent","summary":"Authorize intent","description":"Authorize a pending intent by providing a signature. Can be called by the wallet owner (via user token) or with the app secret.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the intent."},"required":true,"name":"intent_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntentAuthorizeInput"}}}},"responses":{"200":{"description":"Authorized intent.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntentResponse"}}}}}}},"/v1/aggregations":{"post":{"tags":["Aggregations"],"operationId":"createAggregation","summary":"Create aggregation","description":"Create a new aggregation to track and measure metrics over a time window.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AggregationInput"},"example":{"name":"Daily ETH transfer limit on Base","method":"eth_signTransaction","metric":{"field":"value","field_source":"ethereum_transaction","function":"sum"},"window":{"type":"rolling","seconds":86400},"conditions":[{"field_source":"ethereum_transaction","field":"chain_id","operator":"eq","value":"84532"}],"group_by":[{"field":"to","field_source":"ethereum_transaction"}]}}}},"responses":{"200":{"description":"Created aggregation object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Aggregation"}}}}}}},"/v1/aggregations/{aggregation_id}":{"get":{"tags":["Aggregations"],"operationId":"getAggregation","summary":"Get aggregation","description":"Get an aggregation by aggregation ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"aggregation_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Requested aggregation object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Aggregation"}}}}}},"delete":{"tags":["Aggregations"],"operationId":"deleteAggregation","summary":"Delete aggregation","description":"Delete an aggregation by aggregation ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"aggregation_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Success response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true}}}}}}},"/v1/apps/{app_id}":{"get":{"tags":["Apps"],"operationId":"getApp","summary":"Get app settings","description":"Get the settings and configuration for an app.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the app."},"required":true,"name":"app_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"The app settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppResponse"}}}}}}},"/v1/apps/{app_id}/allowlist":{"get":{"tags":["Apps"],"operationId":"listAllowlistEntries","summary":"List allowlist entries","description":"Get all allowlist entries for an app. Returns the list of users allowed to access the app when the allowlist is enabled.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the app."},"required":true,"name":"app_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"List of allowlist entries.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AllowlistEntry"}},"example":[{"id":"abc123","type":"email","value":"user@example.com","appId":"clxyz456","acceptedAt":null}]}}}}},"post":{"tags":["Apps"],"operationId":"createAllowlistEntry","summary":"Add to allowlist","description":"Add a new entry to the allowlist for an app. The allowlist must be enabled.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the app."},"required":true,"name":"app_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInviteInput"},"example":{"type":"email","value":"batman@privy.io"}}}},"responses":{"200":{"description":"The created allowlist entry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AllowlistEntry"},"example":{"id":"abc123","type":"email","value":"batman@privy.io","appId":"clxyz456","acceptedAt":null}}}}}},"delete":{"tags":["Apps"],"operationId":"deleteAllowlistEntry","summary":"Remove from allowlist","description":"Remove an entry from the allowlist for an app. The allowlist must be enabled.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the app."},"required":true,"name":"app_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInviteInput"},"example":{"type":"email","value":"batman@privy.io"}}}},"responses":{"200":{"description":"Confirmation of deletion.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AllowlistDeletionResponse"},"example":{"message":"Successfully deleted from allowlist"}}}}}}},"/v1/apps/{app_id}/test_credentials":{"get":{"tags":["Apps"],"operationId":"getTestCredentials","summary":"Get test credentials","description":"Get the test accounts and credentials for an app.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the app."},"required":true,"name":"app_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"The test accounts for the app.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestAccountsResponse"}}}}}}},"/v1/apps/gas_spend":{"get":{"tags":["Apps"],"operationId":"getGasSpend","summary":"Get gas spend","description":"Get aggregated Privy gas credits charged for a set of wallets over a time range. Maximum 100 wallet IDs and 30-day range per request.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":100},"required":true,"name":"wallet_ids","in":"query"},{"schema":{"type":"number"},"required":true,"name":"start_timestamp","in":"query"},{"schema":{"type":"number"},"required":true,"name":"end_timestamp","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Aggregated gas credits charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GasSpendResponseBody"},"example":{"value":"12.345678","currency":"usd"}}}}}}},"/v1/organizations/{account_id}/secrets":{"get":{"tags":["Organizations"],"operationId":"listOrganizationSecrets","summary":"List organization secrets","description":"List organization secrets for an account. This endpoint is intended for dashboard-admin use.","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"account_id","in":"path"}],"responses":{"200":{"description":"The organization secrets for the account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationSecretsListResponse"},"example":{"data":[{"id":"clx123organizationsecret","last_four":"abcd","created_at":"2026-04-23T21:30:00.000Z","revoked_at":null,"signing_public_key":null}]}}}}}},"post":{"tags":["Organizations"],"operationId":"createOrganizationSecret","summary":"Create organization secret","description":"Create an organization secret for an account. This endpoint is intended for dashboard-admin use.","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"account_id","in":"path"}],"responses":{"200":{"description":"The newly created organization secret.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationSecretResponse"},"example":{"id":"clx123organizationsecret","last_four":"abcd","created_at":"2026-04-23T21:30:00.000Z","revoked_at":null,"signing_public_key":null,"organization_secret":"sk_org_1234567890"}}}}}},"delete":{"tags":["Organizations"],"operationId":"revokeOrganizationSecret","summary":"Revoke organization secret","description":"Revoke an organization secret for an account. This endpoint is intended for dashboard-admin use.","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"account_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationSecretIdInput"},"example":{"secret_id":"clx123organizationsecret"}}}},"responses":{"200":{"description":"Confirmation that the organization secret was revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true}}}}}},"patch":{"tags":["Organizations"],"operationId":"updateOrganizationSecretSigningKey","summary":"Update organization secret signing key","description":"Update or clear the signing public key on an organization secret. This endpoint is intended for dashboard-admin use.","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"account_id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationSecretSigningKeyInput"},"example":{"secret_id":"clx123organizationsecret","signing_public_key":"-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE...\n-----END PUBLIC KEY-----"}}}},"responses":{"200":{"description":"Confirmation that the signing key was updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true}}}}}}},"/api/oauth/v2/device_verify":{"post":{"tags":["Client Auth"],"operationId":"deviceVerify","summary":"Approve or deny a device authorization request","description":"User-facing endpoint for the device authorization flow. After a CLI displays a user code, the authenticated user visits the verification page and calls this endpoint to approve or deny the request. Requires user authentication via the Privy SDK.","parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceVerifyRequestBody"},"example":{"user_code":"BCDFG-HJKMN","action":"approve"}}}},"responses":{"200":{"description":"The device authorization action was processed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceVerifyResponse"},"example":{"success":true}}}}}}},"/api/oauth/v2/token":{"post":{"tags":["Client Auth"],"operationId":"oauthToken","summary":"Exchange grant for access token","description":"OAuth 2.0 token endpoint supporting three grant types: `authorization_code` (standard OAuth flow with Basic auth), `urn:ietf:params:oauth:grant-type:device_code` (RFC 8628 device authorization for CLI clients), and `refresh_token` (rotate refresh token and obtain a new access token). The `device_code` and `refresh_token` grants authenticate via the `privy-app-id` header.","parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":false,"name":"privy-app-id","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenRequestBody"},"example":{"grant_type":"urn:ietf:params:oauth:grant-type:device_code","device_code":"GmRhmhcxhwAzkoEqiMEg_DnyEysNkuNhszIySk9eS"}}}},"responses":{"200":{"description":"Token issued successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenSuccessResponse"},"example":{"access_token":"eyJhbGciOiJFUzI1NiIs...","token_type":"Bearer","expires_in":900,"refresh_token":"a1b2c3d4e5f6..."}}}},"400":{"description":"The device authorization is still pending, the client is polling too fast, the authorization was denied, or the device code has expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenDeviceCodePendingError"},"example":{"error":"authorization_pending"}}}},"401":{"description":"Invalid credentials, expired refresh token, or invalid grant."}}}},"/v1/kraken_embed/quotes":{"post":{"tags":["Kraken Embed"],"operationId":"requestQuote","summary":"Request Quote","description":"Request a price quote for an asset that may be used to execute a trade later on. The quote will be valid for a limited time as specified in the response.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"type":"string","minLength":1},"type":{"type":"string","enum":["receive","spend"]},"amount":{"type":"object","properties":{"asset_class":{"type":"string","enum":["currency"],"default":"currency"},"asset":{"type":"string","maxLength":16},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","amount"],"additionalProperties":false},"quote":{"type":"object","properties":{"asset":{"type":"string","maxLength":16}},"required":["asset"],"additionalProperties":false},"fee_bps":{"type":"string","pattern":"^\\d{1,5}$"},"spread_bps":{"type":"string","pattern":"^\\d{1,5}$"},"quote_currency":{"type":["string","null"],"maxLength":16}},"required":["user_id","type","amount","quote","fee_bps","spread_bps"],"additionalProperties":false,"example":{"user_id":"did:privy:clabcd1234","type":"spend","amount":{"asset_class":"currency","asset":"USD","amount":"100.00"},"quote":{"asset":"BTC"},"fee_bps":"100","spread_bps":"50"}}}}},"responses":{"200":{"description":"Quote request successful. Returns quote details including pricing and expiration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"quote_id":{"type":"string"},"type":{"type":"string","enum":["receive","spend"]},"status":{"anyOf":[{"type":"string","enum":["new","accepted","quote_cancelled","order_complete","credit_transfer_complete","quote_execution_failed"]},{"type":"object","properties":{"unknown":{"type":"string"}},"required":["unknown"],"additionalProperties":false}]},"expires":{"type":"string","format":"date-time"},"spend":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"total":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"fee":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"subtotal":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","total","fee","subtotal"],"additionalProperties":false},"quoted_spend":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"total":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"fee":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"subtotal":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","total","fee","subtotal"],"additionalProperties":false},"receive":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"total":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"fee":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"subtotal":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","total","fee","subtotal"],"additionalProperties":false},"quoted_receive":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"total":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"fee":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"subtotal":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","total","fee","subtotal"],"additionalProperties":false},"unit_price":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"unit_price":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"denomination_asset":{"type":"string","maxLength":16},"denomination_asset_class":{"type":["string","null"],"enum":["currency"]}},"required":["asset","asset_class","unit_price","denomination_asset","denomination_asset_class"],"additionalProperties":false},"quoted_unit_price":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"unit_price":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"denomination_asset":{"type":"string","maxLength":16},"denomination_asset_class":{"type":["string","null"],"enum":["currency"]}},"required":["asset","asset_class","unit_price","denomination_asset","denomination_asset_class"],"additionalProperties":false}},"required":["quote_id","type","status","expires","spend","quoted_spend","receive","quoted_receive","unit_price","quoted_unit_price"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"result":{"quote_id":"QTE-12345-ABCDE","type":"spend","status":"new","expires":"2024-04-15T12:30:00Z","spend":{"asset":"USD","asset_class":"currency","total":"100.00","fee":"1.00","subtotal":"99.00"},"receive":{"asset":"BTC","asset_class":"currency","total":"0.00150000","fee":"0.00000150","subtotal":"0.00149850"},"unit_price":{"asset":"BTC","asset_class":"currency","unit_price":"66000.00","denomination_asset":"USD","denomination_asset_class":"currency"},"quoted_spend":null,"quoted_receive":null,"quoted_unit_price":null}}}}}}}}}},"/v1/kraken_embed/quotes/{quote_id}":{"get":{"tags":["Kraken Embed"],"operationId":"getQuote","summary":"Get Quote","description":"Gets the status of a quote that was previously requested.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Unique identifier for the quote from Kraken."},"required":true,"name":"quote_id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Quote details retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"quote_id":{"type":"string"},"transaction_id":{"type":["string","null"]},"type":{"type":"string","enum":["receive","spend"]},"status":{"anyOf":[{"type":"string","enum":["new","accepted","quote_cancelled","order_complete","credit_transfer_complete","quote_execution_failed"]},{"type":"object","properties":{"unknown":{"type":"string"}},"required":["unknown"],"additionalProperties":false}]},"expires":{"type":"string","format":"date-time"},"spend":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"total":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"fee":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"subtotal":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","total","fee","subtotal"],"additionalProperties":false},"quoted_spend":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"total":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"fee":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"subtotal":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","total","fee","subtotal"],"additionalProperties":false},"receive":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"total":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"fee":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"subtotal":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","total","fee","subtotal"],"additionalProperties":false},"quoted_receive":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"total":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"fee":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"subtotal":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","total","fee","subtotal"],"additionalProperties":false},"unit_price":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"unit_price":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"denomination_asset":{"type":"string","maxLength":16},"denomination_asset_class":{"type":["string","null"],"enum":["currency"]}},"required":["asset","asset_class","unit_price","denomination_asset","denomination_asset_class"],"additionalProperties":false},"quoted_unit_price":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"unit_price":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"denomination_asset":{"type":"string","maxLength":16},"denomination_asset_class":{"type":["string","null"],"enum":["currency"]}},"required":["asset","asset_class","unit_price","denomination_asset","denomination_asset_class"],"additionalProperties":false}},"required":["quote_id","transaction_id","type","status","expires","spend","quoted_spend","receive","quoted_receive","unit_price","quoted_unit_price"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"result":{"quote_id":"QTE-12345-ABCDE","transaction_id":"TXN-67890-FGHIJ","type":"spend","status":"accepted","expires":"2024-04-15T12:30:00Z","spend":{"asset":"USD","asset_class":"currency","total":"100.00","fee":"1.00","subtotal":"99.00"},"receive":{"asset":"BTC","asset_class":"currency","total":"0.00150000","fee":"0.00000150","subtotal":"0.00149850"},"unit_price":{"asset":"BTC","asset_class":"currency","unit_price":"66000.00","denomination_asset":"USD","denomination_asset_class":"currency"},"quoted_spend":null,"quoted_receive":null,"quoted_unit_price":null}}}}}}}}},"put":{"tags":["Kraken Embed"],"operationId":"executeQuote","summary":"Execute Quote","description":"Execute a previously requested quote to complete the trade. The quote must be in \"new\" status and not expired.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Unique identifier for the quote from Kraken."},"required":true,"name":"quote_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"type":"string","minLength":1}},"required":["user_id"],"additionalProperties":false,"example":{"user_id":"did:privy:clabcd1234"}}}}},"responses":{"200":{"description":"Quote executed successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"quote_id":{"type":"string"},"status":{"anyOf":[{"type":"string","enum":["new","accepted","quote_cancelled","order_complete","credit_transfer_complete","quote_execution_failed"]},{"type":"object","properties":{"unknown":{"type":"string"}},"required":["unknown"],"additionalProperties":false}]},"transaction_id":{"type":["string","null"]}},"required":["quote_id","status","transaction_id"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"result":{"quote_id":"QTE-12345-ABCDE","status":"accepted","transaction_id":"TXN-67890-FGHIJ"}}}}}}}}}},"/v1/kraken_embed/users/{user_id}":{"post":{"tags":["Kraken Embed"],"operationId":"createKrakenUser","summary":"Create Kraken User","description":"Create a new Kraken Embed user associated with a Privy user. This establishes the mapping between the Privy user and the Kraken IIBAN.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"external_id":{"type":"string"},"tos_version_accepted":{"type":"integer"},"full_name":{"$ref":"#/components/schemas/KrakenEmbedFullName"},"date_of_birth":{"type":"string","format":"date"},"residence":{"$ref":"#/components/schemas/KrakenEmbedResidence"},"phone":{"type":"string","pattern":"^\\+?[1-9]\\d{1,14}$"},"nationalities":{"type":"array","items":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","AC","AN","AP","CP","DG","EA","EU","IC","JX","TA","QO","XK","0C"]}},"occupation":{"type":"string","enum":["agriculture","business_management","computers_and_it","construction","education","finance","government","healthcare","hospitality","manufacturing","marketing","media","other","science","self_employed","student","transportation","unemployed","employed"]},"employer_name":{"type":["string","null"]},"city_of_birth":{"type":["string","null"]},"country_of_birth":{"type":["string","null"],"enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","AC","AN","AP","CP","DG","EA","EU","IC","JX","TA","QO","XK","0C"]},"tax_ids":{"type":["array","null"],"items":{"type":"object","properties":{"id":{"type":"string"},"issuing_country":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","AC","AN","AP","CP","DG","EA","EU","IC","JX","TA","QO","XK","0C"]}},"required":["id","issuing_country"],"additionalProperties":false}},"client_identifier":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["concat"]},"value":{"type":"string"},"calculated_at":{"type":"string","format":"date-time"}},"required":["type","value","calculated_at"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["passport"]},"value":{"type":"string"}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["national_id"]},"value":{"type":"string"}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["tax_id"]},"value":{"type":"string"}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["lei"]},"value":{"type":"string"}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"]}},"required":["type"],"additionalProperties":false},{"type":"null"}]},"language":{"type":["string","null"]}},"required":["email","external_id","tos_version_accepted","full_name","date_of_birth","residence","phone","nationalities","occupation"],"additionalProperties":false,"example":{"email":"user@example.com","external_id":"ext-user-12345","tos_version_accepted":1,"full_name":{"first_name":"John","middle_name":null,"last_name":"Doe"},"date_of_birth":"1990-01-15","residence":{"line1":"123 Main St","line2":null,"city":"San Francisco","postal_code":"94105","province":"CA","country":"US"},"phone":"+14155551234","nationalities":["US"],"occupation":"employed"}}}}},"responses":{"200":{"description":"Kraken user created successfully. Returns the IIBAN for the newly created user.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"user":{"type":"string","minLength":14,"maxLength":42}},"required":["user"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"result":{"user":"AA00XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}}}}}}}}},"get":{"tags":["Kraken Embed"],"operationId":"getKrakenUser","summary":"Get Kraken User","description":"Retrieve information about a Kraken Embed user including their status and required actions.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"User information retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"user":{"type":"string","minLength":14,"maxLength":42},"external_id":{"type":["string","null"]},"user_type":{"type":"string","enum":["individual","corporate"]},"status":{"oneOf":[{"type":"object","properties":{"state":{"type":"string","enum":["ok"]},"required_actions":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"action_type":{"type":"string","enum":["verification"]},"verification_type":{"type":"string","enum":["identity","residence","selfie","sanctions_check","pep_check","negative_news_check","tax_id"]},"reasons":{"type":"array","items":{"type":"string"}},"deadline":{"type":["string","null"],"format":"date-time"}},"required":["action_type","verification_type","reasons","deadline"],"additionalProperties":false},{"type":"object","properties":{"action_type":{"type":"string","enum":["provide_details"]},"details_type":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["terms_of_service"]},"version":{"type":"number"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["full_name"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["date_of_birth"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["city_of_birth"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["country_of_birth"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["nationalities"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["residence"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["phone"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["occupation"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["employer"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["tax_ids"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["client_identifier"]}},"required":["type"],"additionalProperties":false}]},"reason":{"type":["string","null"]},"deadline":{"type":["string","null"],"format":"date-time"}},"required":["action_type","details_type","reason","deadline"],"additionalProperties":false},{"type":"object","properties":{"action_type":{"type":"string","enum":["wait"]},"wait_reason_code":{"type":"string"}},"required":["action_type","wait_reason_code"],"additionalProperties":false}]}}},"required":["state","required_actions"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","enum":["disabled"]},"reasons":{"type":"array","items":{"type":"string"}},"required_actions":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"action_type":{"type":"string","enum":["verification"]},"verification_type":{"type":"string","enum":["identity","residence","selfie","sanctions_check","pep_check","negative_news_check","tax_id"]},"reasons":{"type":"array","items":{"type":"string"}},"deadline":{"type":["string","null"],"format":"date-time"}},"required":["action_type","verification_type","reasons","deadline"],"additionalProperties":false},{"type":"object","properties":{"action_type":{"type":"string","enum":["provide_details"]},"details_type":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["terms_of_service"]},"version":{"type":"number"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["full_name"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["date_of_birth"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["city_of_birth"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["country_of_birth"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["nationalities"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["residence"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["phone"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["occupation"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["employer"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["tax_ids"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["client_identifier"]}},"required":["type"],"additionalProperties":false}]},"reason":{"type":["string","null"]},"deadline":{"type":["string","null"],"format":"date-time"}},"required":["action_type","details_type","reason","deadline"],"additionalProperties":false},{"type":"object","properties":{"action_type":{"type":"string","enum":["wait"]},"wait_reason_code":{"type":"string"}},"required":["action_type","wait_reason_code"],"additionalProperties":false}]}}},"required":["state","reasons","required_actions"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","enum":["closed"]},"reasons":{"type":"array","items":{"type":"string"}}},"required":["state","reasons"],"additionalProperties":false}]},"created_at":{"type":"string","format":"date-time"}},"required":["user","external_id","user_type","status","created_at"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"result":{"user":"AA00XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX","external_id":"ext-user-12345","user_type":"individual","status":{"state":"ok","required_actions":[]},"created_at":"2024-04-15T10:00:00Z"}}}}}}}}}},"/v1/kraken_embed/users/{user_id}/verifications":{"post":{"tags":["Kraken Embed"],"operationId":"submitUserVerification","summary":"Submit User Verification","description":"Submit identity verification details for a Kraken Embed user. Supports various verification types including identity documents, residence documents, tax IDs, selfies, watchlists, and KYC reports.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["identity_document","residence_document","tax_id_document","selfie","watchlists","kyc_report"],"description":"Type of verification being submitted."},"metadata":{"type":"string","description":"JSON string containing verification metadata."},"front":{"type":"string","format":"binary","description":"Front image of identity document (for identity_document type)."},"back":{"type":"string","format":"binary","description":"Back image of identity document (for identity_document type)."},"document":{"type":"string","format":"binary","description":"Document file (for residence_document or tax_id_document types)."},"selfie":{"type":"string","format":"binary","description":"Selfie image or video (for selfie type)."},"kyc_report":{"type":"string","format":"binary","description":"KYC report file (for kyc_report type)."},"verifier_response":{"type":"string","format":"binary","description":"Optional verifier response document."}},"required":["type","metadata"],"example":{"type":"identity_document","metadata":"{\"verifier\":\"example_kyc_provider\",\"verified_at\":\"2024-04-15T10:00:00Z\",\"identity\":{\"full_name\":{\"first_name\":\"John\",\"middle_name\":null,\"last_name\":\"Doe\"},\"date_of_birth\":\"1990-01-15\"},\"document_type\":\"passport\",\"document_number\":\"P123456789\",\"issuing_country\":\"US\"}"}}}}},"responses":{"200":{"description":"Verification submitted successfully.","content":{"application/json":{"schema":{"type":"object","properties":{},"description":"Empty response on successful verification submission."}}}}}}},"/v1/kraken_embed/users/{user_id}/verification_urls":{"post":{"tags":["Kraken Embed"],"operationId":"submitUserVerificationFromUrl","summary":"Submit User Verification from URLs","description":"Submit identity verification details for a Kraken Embed user using presigned URLs to documents. This endpoint accepts JSON payloads with URLs to verification documents instead of multipart file uploads. Supports identity documents, residence documents, tax IDs, selfies, and watchlists.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["identity_document"]},"metadata":{"type":"object","properties":{"verifier":{"type":"string"},"verified_at":{"type":"string","format":"date-time"},"verifier_response":{},"external_verification_id":{"type":["string","null"]},"expiration_date":{"type":["string","null"],"format":"date"},"identity":{"type":"object","properties":{"full_name":{"$ref":"#/components/schemas/KrakenEmbedFullName"},"date_of_birth":{"type":"string","format":"date"}},"required":["full_name","date_of_birth"],"additionalProperties":false},"document_type":{"type":"string","enum":["passport","drivers_license","id_card","residence_card","special_permanent_residence_card"]},"document_number":{"type":"string"},"issuing_country":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","AC","AN","AP","CP","DG","EA","EU","IC","JX","TA","QO","XK","0C"]},"nationality":{"type":["string","null"],"enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","AC","AN","AP","CP","DG","EA","EU","IC","JX","TA","QO","XK","0C"]}},"required":["verifier","verified_at","identity","document_type","document_number","issuing_country"],"additionalProperties":false},"front_url":{"type":"string","format":"uri"},"back_url":{"type":["string","null"],"format":"uri"},"verifier_response_url":{"type":["string","null"],"format":"uri"}},"required":["type","metadata","front_url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["residence_document"]},"metadata":{"type":"object","properties":{"verifier":{"type":"string"},"verified_at":{"type":"string","format":"date-time"},"verifier_response":{},"external_verification_id":{"type":["string","null"]},"expiration_date":{"type":["string","null"],"format":"date"},"address":{"type":"object","properties":{"line1":{"type":"string"},"line2":{"type":["string","null"]},"city":{"type":"string"},"postal_code":{"type":"string"},"province":{"type":["string","null"]},"country":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","AC","AN","AP","CP","DG","EA","EU","IC","JX","TA","QO","XK","0C"]}},"required":["line1","city","postal_code","country"],"additionalProperties":false},"document_type":{"type":"string","enum":["bank_statement","credit_card_statement","employer_letter_or_work_contract","government_issued_document","home_or_rental_insurance","internet_or_cable_bill","mobile_phone_bill","mortgage_statement","official_government_letter","passport_address_page","rental_or_lease_agreement","residence_certificate","social_insurance_payment_receipt","tax_receipt","tax_return","utility_bill","other"]}},"required":["verifier","verified_at","address","document_type"],"additionalProperties":false},"document_url":{"type":"string","format":"uri"},"verifier_response_url":{"type":["string","null"],"format":"uri"}},"required":["type","metadata","document_url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["tax_id_document"]},"metadata":{"type":"object","properties":{"verifier":{"type":"string"},"verified_at":{"type":"string","format":"date-time"},"verifier_response":{},"external_verification_id":{"type":["string","null"]},"expiration_date":{"type":["string","null"],"format":"date"},"tax_id_type":{"type":"string","enum":["ssn","sin","cpf","curp","tax_identification_number","national_insurance_number","personal_public_service_number","individual_taxpayer_identification_number"]},"document_type":{"type":"string","enum":["tax_return","other"]},"country":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","AC","AN","AP","CP","DG","EA","EU","IC","JX","TA","QO","XK","0C"]}},"required":["verifier","verified_at","tax_id_type","document_type","country"],"additionalProperties":false},"tax_id_url":{"type":"string","format":"uri"},"verifier_response_url":{"type":["string","null"],"format":"uri"}},"required":["type","metadata","tax_id_url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["selfie"]},"metadata":{"type":"object","properties":{"verifier":{"type":"string"},"verified_at":{"type":"string","format":"date-time"},"verifier_response":{},"external_verification_id":{"type":["string","null"]},"expiration_date":{"type":["string","null"],"format":"date"},"selfie_type":{"type":"string","enum":["selfie","selfie_capture_video"]}},"required":["verifier","verified_at","selfie_type"],"additionalProperties":false},"selfie_url":{"type":"string","format":"uri"},"verifier_response_url":{"type":["string","null"],"format":"uri"}},"required":["type","metadata","selfie_url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["watchlists"]},"metadata":{"type":"object","properties":{"sanctions":{"type":["object","null"],"properties":{"verifier":{"type":"string"},"verified_at":{"type":"string","format":"date-time"},"verifier_response":{},"external_verification_id":{"type":["string","null"]},"expiration_date":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["Cleared","Matched"]}},"required":["verifier","verified_at","status"],"additionalProperties":false},"negative_news":{"type":["object","null"],"properties":{"verifier":{"type":"string"},"verified_at":{"type":"string","format":"date-time"},"verifier_response":{},"external_verification_id":{"type":["string","null"]},"expiration_date":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["Cleared","Matched"]}},"required":["verifier","verified_at","status"],"additionalProperties":false},"pep":{"type":["object","null"],"properties":{"verifier":{"type":"string"},"verified_at":{"type":"string","format":"date-time"},"verifier_response":{},"external_verification_id":{"type":["string","null"]},"expiration_date":{"type":["string","null"],"format":"date"},"status":{"type":"string","enum":["Cleared","Matched"]}},"required":["verifier","verified_at","status"],"additionalProperties":false}},"additionalProperties":false},"verifier_response_url":{"type":["string","null"],"format":"uri"},"sanctions_verifier_response_url":{"type":["string","null"],"format":"uri"},"pep_verifier_response_url":{"type":["string","null"],"format":"uri"},"negative_news_verifier_response_url":{"type":["string","null"],"format":"uri"}},"required":["type","metadata"],"additionalProperties":false}],"example":{"type":"identity_document","metadata":{"verifier":"example_kyc_provider","verified_at":"2024-04-15T10:00:00Z","identity":{"full_name":{"first_name":"John","middle_name":null,"last_name":"Doe"},"date_of_birth":"1990-01-15"},"document_type":"passport","document_number":"P123456789","issuing_country":"US","nationality":"US"},"front_url":"https://example.com/presigned-url/front.jpg","back_url":"https://example.com/presigned-url/back.jpg","verifier_response_url":"https://example.com/presigned-url/response.pdf"}}}}},"responses":{"200":{"description":"Verification submitted successfully. Returns the verification ID for tracking.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"result":{"type":"object","properties":{"verification_id":{"type":"string"}},"required":["verification_id"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"result":{"verification_id":"verif_abc123def456"}}}}}}}}}},"/v1/kraken_embed/assets":{"get":{"tags":["Kraken Embed"],"operationId":"listAssets","summary":"List Assets","description":"Get a list of all available assets for trading on Kraken Embed, with optional filtering and pagination.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"filter[user]","in":"query"},{"schema":{"type":"array","items":{"type":"string","maxLength":16}},"required":false,"name":"filter[assets]","in":"query"},{"schema":{"type":"array","items":{"anyOf":[{"type":"string","enum":["enabled","deposit_only","withdrawal_only","funding_temporarily_disabled","disabled"]},{"type":"string"}]}},"required":false,"name":"filter[platform_statuses]","in":"query"},{"schema":{"type":["boolean","null"]},"required":false,"name":"filter[tradable_only]","in":"query"},{"schema":{"type":"string","maxLength":16},"required":false,"name":"quote","in":"query"},{"schema":{"type":"string","enum":["trending","market_cap_rank","-market_cap_rank","symbol","-symbol","name","-name","change_percent_1h","-change_percent_1h","change_percent_24h","-change_percent_24h","change_percent_7d","-change_percent_7d","change_percent_30d","-change_percent_30d","change_percent_1y","-change_percent_1y","listing_date","-listing_date"]},"required":false,"name":"sort","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"page[size]","in":"query"},{"schema":{"type":"integer","minimum":1},"required":false,"name":"page[number]","in":"query"},{"schema":{"type":"string","pattern":"^([a-zA-Z]{1,8})(-[a-zA-Z\\d]{1,8})*$"},"required":false,"name":"lang","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"List of available assets with pagination information.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"assets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":16},"disabled_against":{"type":"array","items":{"type":"string","maxLength":16}},"decimals":{"type":"integer","minimum":0},"display_decimals":{"type":"integer","minimum":0},"platform_status":{"anyOf":[{"type":"string","enum":["enabled","deposit_only","withdrawal_only","funding_temporarily_disabled","disabled"]},{"type":"string"},{"type":"null"}]},"links":{"type":"object","properties":{"self":{"type":"object","properties":{"href":{"type":"string"},"type":{"type":["string","null"]}},"required":["href"],"additionalProperties":false},"logo":{"type":"object","properties":{"href":{"type":"string"},"type":{"type":["string","null"]},"width":{"type":"integer","minimum":0},"height":{"type":"integer","minimum":0}},"required":["href","width","height"],"additionalProperties":false}},"required":["self","logo"],"additionalProperties":false},"collateral_value":{"type":["number","null"]},"user_status":{"anyOf":[{"type":"string","enum":["tradable","available_soon","temporarily_disabled","disabled"]},{"type":"string"},{"type":"null"}]},"simple_trade_decimals":{"type":["integer","null"],"minimum":0},"english_name":{"type":["string","null"]},"circulating_supply":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"circulating_supply_value":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"total_supply":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"total_supply_value":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"max_supply":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"max_supply_value":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"price":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"trending_rank":{"type":["integer","null"],"minimum":0},"market_cap_rank":{"type":["integer","null"],"minimum":0},"market_cap_value":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"change_percent_1h":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"change_percent_24h":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"change_percent_7d":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"change_percent_30d":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"change_percent_1y":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"volume_value_24h":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"listing_date":{"type":["string","null"]},"ath_value":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"ath_date":{"type":["string","null"]}},"required":["id","disabled_against","decimals","display_decimals","platform_status","links"],"additionalProperties":false}},"links":{"type":"object","properties":{"self":{"type":["string","null"]},"first":{"type":["string","null"]},"last":{"type":["string","null"]},"prev":{"type":["string","null"]},"next":{"type":["string","null"]}},"additionalProperties":false},"meta":{"type":"object","properties":{"total_items":{"type":["integer","null"],"minimum":0},"total_pages":{"type":["integer","null"],"minimum":0},"page_size":{"type":["integer","null"],"minimum":0},"page_number":{"type":["integer","null"],"minimum":0}},"additionalProperties":false}},"required":["assets","links","meta"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"errors":[],"error":[],"result":{"assets":[{"id":"BTC","disabled_against":[],"decimals":8,"display_decimals":8,"platform_status":"enabled","links":{"self":{"href":"/assets/BTC?lang=en&quote=USD","type":"application/json"},"logo":{"href":"https://assets.privy.io/kraken_embed/logos/BTC.webp","type":"image/webp","width":400,"height":400}},"english_name":"Bitcoin","price":"66000.00","market_cap_rank":1,"market_cap_value":"1300000000000.00","change_percent_1h":"0.50","change_percent_24h":"2.30","change_percent_7d":"5.20","change_percent_30d":"12.50","change_percent_1y":"150.00","volume_value_24h":"35000000000.00","circulating_supply":"19500000.00","circulating_supply_value":"1287000000000.00","total_supply":"19500000.00","total_supply_value":"1287000000000.00","max_supply":"21000000.00","max_supply_value":"1386000000000.00"}],"links":{"self":"/b2b/assets?page[size]=50&page[number]=1","first":"/b2b/assets?page[size]=50&page[number]=1","last":"/b2b/assets?page[size]=50&page[number]=3","prev":null,"next":"/b2b/assets?page[size]=50&page[number]=2"},"meta":{"total_items":150,"total_pages":3,"page_size":50,"page_number":1}}}}}}}}}}},"/v1/kraken_embed/assets/{asset_id}":{"get":{"tags":["Kraken Embed"],"operationId":"getAsset","summary":"Get Asset Details","description":"Get detailed information about a specific asset including pricing, market data, and trading capabilities.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":16,"description":"The asset identifier (e.g., BTC, ETH)"},"required":true,"name":"asset_id","in":"path"},{"schema":{"type":"string","maxLength":16,"description":"Quote currency for pricing information."},"required":false,"name":"quote","in":"query"},{"schema":{"type":"string","pattern":"^([a-zA-Z]{1,8})(-[a-zA-Z\\d]{1,8})*$","description":"RFC5646 language tag for localized content."},"required":false,"name":"lang","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Asset details retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"symbol":{"type":"string","maxLength":16},"links":{"type":"object","properties":{"self":{"type":"object","properties":{"href":{"type":"string"},"type":{"type":["string","null"]}},"required":["href"],"additionalProperties":false},"logo":{"type":"object","properties":{"href":{"type":"string"},"type":{"type":["string","null"]},"width":{"type":"integer","minimum":0},"height":{"type":"integer","minimum":0}},"required":["href","width","height"],"additionalProperties":false}},"required":["self","logo"],"additionalProperties":false},"english_name":{"type":["string","null"]},"description":{"type":["string","null"]},"bearish_insights":{"type":["string","null"]},"bullish_insights":{"type":["string","null"]},"circulating_supply":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"total_supply":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"max_supply":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"market_cap_value":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"change_value_24h":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"change_percent_24h":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"volume_value_24h":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"ath_value":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"ath_date":{"type":["string","null"]}},"required":["symbol","links"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"errors":[],"error":[],"result":{"symbol":"BTC","links":{"self":{"href":"/assets/BTC","type":"application/json"},"logo":{"href":"https://assets.kraken.com/marketing/web/icons-uni-webp/s_btc.webp","type":"image/webp","width":400,"height":400}},"english_name":"Bitcoin","description":"Bitcoin is the world's largest cryptocurrency project.","bearish_insights":"<p>Bitcoin has some challenges...</p>","bullish_insights":"<p>Bitcoin has strong fundamentals...</p>","circulating_supply":"19940768","total_supply":null,"max_supply":"21000000","market_cap_value":"2304382465497","change_value_24h":"41170105372","change_percent_24h":"1.8191","volume_value_24h":"64775687006","ath_value":"126080","ath_date":"2025-10-06"}}}}}}}}}},"/v1/kraken_embed/assets/{asset_id}/rates":{"get":{"tags":["Kraken Embed"],"operationId":"listAssetRates","summary":"Get Asset Historical Rates","description":"Get historical price rates for a specific asset with optional time range and interval filtering.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":16,"description":"The asset identifier (e.g., BTC, ETH)"},"required":true,"name":"asset_id","in":"path"},{"schema":{"type":"string","maxLength":16},"required":false,"name":"quote","in":"query"},{"schema":{"type":"string","format":"date-time"},"required":false,"name":"start_time","in":"query"},{"schema":{"type":"string","format":"date-time"},"required":false,"name":"end_time","in":"query"},{"schema":{"type":"string"},"required":false,"name":"interval","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Historical rates retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"rates":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time"},"price":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["timestamp","price"],"additionalProperties":false}},"meta":{"type":"object","properties":{"page_oldest_rate":{"type":["object","null"],"properties":{"timestamp":{"type":"string","format":"date-time"},"price":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["timestamp","price"],"additionalProperties":false},"page_newest_rate":{"type":["object","null"],"properties":{"timestamp":{"type":"string","format":"date-time"},"price":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["timestamp","price"],"additionalProperties":false},"page_price_change_value":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"page_price_change_percent":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"additionalProperties":false}},"required":["rates","meta"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"errors":[],"error":[],"result":{"rates":[{"timestamp":"2025-10-20T00:00:00.0+00:00","price":"110575.61"},{"timestamp":"2025-10-21T00:00:00.0+00:00","price":"108376.01"},{"timestamp":"2025-10-22T00:00:00.0+00:00","price":"107591.76"}],"meta":{"page_oldest_rate":{"timestamp":"2025-10-20T00:00:00.0+00:00","price":"110575.61"},"page_newest_rate":{"timestamp":"2025-10-22T00:00:00.0+00:00","price":"107591.76"},"page_price_change_value":"-2983.85","page_price_change_percent":"-2.70"}}}}}}}}}}},"/v1/kraken_embed/users/{user_id}/details":{"get":{"tags":["Kraken Embed"],"operationId":"getPortfolioDetails","summary":"Get Portfolio Details","description":"Get detailed portfolio information for a user including asset balances, values, and positions.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","maxLength":16},"required":false,"name":"quote","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Portfolio details retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"timestamp":{"type":"string","format":"date-time"},"currency":{"type":"string","maxLength":16},"assets":{"type":"array","items":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"class":{"type":["string","null"],"enum":["currency","commodity","stock","bond","derivative"]},"cash_balance":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"index_price":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"cash_value":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"held_orders_spot":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"avail_trade":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"avail_trade_value":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"credit_line_used":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"credit_line_available":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"lots_upnl":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"avg_entry_price":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"cost_basis":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","class","cash_balance","index_price","cash_value","held_orders_spot","avail_trade","avail_trade_value","lots_upnl"],"additionalProperties":false}}},"required":["timestamp","currency","assets"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"result":{"timestamp":"2024-04-15T12:00:00Z","currency":"USD","assets":[{"asset":"BTC","class":"currency","cash_balance":"0.15000000","index_price":"66000.00","cash_value":"9900.00","held_orders_spot":"0.00000000","avail_trade":"0.15000000","avail_trade_value":"9900.00","lots_upnl":"0.00","avg_entry_price":"65000.00","cost_basis":"9750.00"}]}}}}}}}}}},"/v1/kraken_embed/users/{user_id}/summary":{"get":{"tags":["Kraken Embed"],"operationId":"getPortfolioSummary","summary":"Get Portfolio Summary","description":"Get a high-level summary of a user's portfolio including total value, available balance, and unrealized P&L.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","maxLength":16},"required":false,"name":"quote","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include[current_day_pnl]","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Portfolio summary retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KrakenEmbedGetPortfolioSummaryResponse"}}}}}}},"/v1/kraken_embed/master_account/summary":{"get":{"tags":["Kraken Embed"],"operationId":"getMasterAccountPortfolioSummary","summary":"Get Master Account Portfolio Summary","description":"Get a high-level summary of the master account's portfolio including total value, available balance, and unrealized P&L.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":16},"required":false,"name":"quote","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include[current_day_pnl]","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Portfolio summary retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KrakenEmbedGetPortfolioSummaryResponse"}}}}}}},"/v1/kraken_embed/master_account/details":{"get":{"tags":["Kraken Embed"],"operationId":"getMasterAccountPortfolioDetails","summary":"Get Master Account Portfolio Details","description":"Get detailed portfolio information for the master account including asset balances, values, and positions.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","maxLength":16},"required":false,"name":"quote","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Portfolio details retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"timestamp":{"type":"string","format":"date-time"},"currency":{"type":"string","maxLength":16},"assets":{"type":"array","items":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"class":{"type":["string","null"],"enum":["currency","commodity","stock","bond","derivative"]},"cash_balance":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"index_price":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"cash_value":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"held_orders_spot":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"avail_trade":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"avail_trade_value":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"credit_line_used":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"credit_line_available":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"lots_upnl":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"avg_entry_price":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"cost_basis":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","class","cash_balance","index_price","cash_value","held_orders_spot","avail_trade","avail_trade_value","lots_upnl"],"additionalProperties":false}}},"required":["timestamp","currency","assets"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}}}}}}},"/v1/kraken_embed/master_account/history":{"get":{"tags":["Kraken Embed"],"operationId":"getMasterAccountPortfolioHistory","summary":"Get Master Account Portfolio History","description":"Get historical balances and valuations over time for the master account's portfolio with optional filtering by assets and date range.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"anyOf":[{"type":"array","items":{"type":"string","maxLength":16}},{"type":"string","maxLength":16},{"type":"null"}]},"required":false,"name":"include[assets]","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include[total_balance]","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include[total_pnl]","in":"query"},{"schema":{"type":["string","null"],"format":"date"},"required":false,"name":"start_date","in":"query"},{"schema":{"type":["string","null"],"format":"date"},"required":false,"name":"end_date","in":"query"},{"schema":{"type":"string","enum":["hourly","daily"]},"required":false,"name":"interval","in":"query"},{"schema":{"type":["integer","null"],"minimum":0},"required":false,"name":"resolution","in":"query"},{"schema":{"type":["string","null"],"maxLength":16},"required":false,"name":"quote","in":"query"},{"schema":{"type":["string","null"]},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Portfolio history retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"},"next_cursor":{"type":["string","null"]},"currency":{"type":["string","null"],"maxLength":16},"total_pnl":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"total_pnl_pct":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"history":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date"},"timestamp":{"type":"string","format":"date-time"},"total_balance":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"total_pnl":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"total_pnl_pct":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"assets":{"type":["object","null"],"additionalProperties":{"type":"object","properties":{"balance":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"additionalProperties":false}}},"required":["date"],"additionalProperties":false}}},"required":["start_date","end_date","history"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}}}}}}},"/v1/kraken_embed/master_account/transactions":{"get":{"tags":["Kraken Embed"],"operationId":"getMasterAccountPortfolioTransactions","summary":"Get Master Account Portfolio Transactions","description":"Get transaction history for the master account's portfolio with filtering and pagination options.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["simple_order","simple_order_failed","earn_reward"]}},"required":false,"name":"types","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":25},"required":false,"name":"page_size","in":"query"},{"schema":{"type":"array","items":{"type":"string","maxLength":16}},"required":false,"name":"assets","in":"query"},{"schema":{"type":"string","format":"date-time"},"required":false,"name":"from_time","in":"query"},{"schema":{"type":"string","format":"date-time"},"required":false,"name":"until_time","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["unspecified","in_progress","successful","failed"]}},"required":false,"name":"statuses","in":"query"},{"schema":{"type":"array","items":{"type":"string"}},"required":false,"name":"ids","in":"query"},{"schema":{"type":"string","enum":["descending","ascending"]},"required":false,"name":"sorting","in":"query"},{"schema":{"type":"string","maxLength":16},"required":false,"name":"quote","in":"query"},{"schema":{"type":"array","items":{"$ref":"#/components/schemas/KrakenEmbedPortfolioTransactionRefId"}},"required":false,"name":"ref_ids","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Transaction history retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"transactions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"time":{"type":"string","format":"date-time"},"type":{"type":"string","enum":["simple_order","simple_order_failed","earn_reward"]},"status":{"type":["string","null"],"enum":["unspecified","in_progress","successful","failed"]},"ref_id":{"type":"string"},"ref_id2":{"type":["string","null"]},"spend":{"type":["object","null"],"properties":{"ledger_id":{"type":["string","null"]},"time":{"type":["string","null"],"format":"date-time"},"amount":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"quoted_amount":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"fee":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"quoted_fee":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"total":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"quoted_total":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"balance":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false}},"required":["amount","total"],"additionalProperties":false},"receive":{"type":["object","null"],"properties":{"ledger_id":{"type":["string","null"]},"time":{"type":["string","null"],"format":"date-time"},"amount":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"quoted_amount":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"fee":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"quoted_fee":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"total":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"quoted_total":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"balance":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false}},"required":["amount","total"],"additionalProperties":false},"details":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["simple_order"]},"quote_id":{"type":"string"},"trade_type":{"type":"string","enum":["unspecified","buy","sell","convert"]},"parent_transaction":{"type":["string","null"]}},"required":["type","quote_id","trade_type","parent_transaction"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["simple_order_failed"]},"receive_asset":{"type":"object","properties":{"asset":{"type":"string"},"class":{"type":"string","enum":["currency"]}},"required":["asset","class"],"additionalProperties":false},"spend_asset":{"type":"object","properties":{"asset":{"type":"string"},"class":{"type":"string","enum":["currency"]}},"required":["asset","class"],"additionalProperties":false},"trade_type":{"type":"string","enum":["unspecified","buy","sell","convert"]},"failure_reason":{"type":"string","enum":["other","insufficient_funds","card_issue","user_account_issue"]}},"required":["type","receive_asset","spend_asset","trade_type","failure_reason"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["earn_reward"]}},"required":["type"],"additionalProperties":false},{"type":"null"}]}},"required":["id","time","type","ref_id","spend","receive","details"],"additionalProperties":false}},"stats":{"type":["object","null"],"properties":{"transactions_seen":{"type":["integer","null"],"minimum":0}},"required":["transactions_seen"],"additionalProperties":false},"next_cursor":{"type":["string","null"]}},"required":["transactions","stats","next_cursor"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}}}}}}},"/v1/kraken_embed/master_account/funds/withdrawals":{"post":{"tags":["Kraken Embed"],"operationId":"initiateMasterAccountWithdrawal","summary":"Initiate Master Account Fiat Withdrawal","description":"Initiate a withdrawal of funds from the master account.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"key":{"type":"string","minLength":1},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"idempotency_token":{"type":"string","format":"uuid"}},"required":["asset","key","amount"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success result with a reference ID.","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"reference_id":{"type":"string"}},"required":["reference_id"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}}}}}}},"/v1/kraken_embed/users/{user_id}/history":{"get":{"tags":["Kraken Embed"],"operationId":"getProtfolioHistoryForUser","summary":"Get Portfolio History","description":"Get historical balances and valuations over time for a user's portfolio with optional filtering by assets and date range.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"path"},{"schema":{"anyOf":[{"type":"array","items":{"type":"string","maxLength":16}},{"type":"string","maxLength":16},{"type":"null"}]},"required":false,"name":"include[assets]","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include[total_balance]","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include[total_pnl]","in":"query"},{"schema":{"type":["string","null"],"format":"date"},"required":false,"name":"start_date","in":"query"},{"schema":{"type":["string","null"],"format":"date"},"required":false,"name":"end_date","in":"query"},{"schema":{"type":"string","enum":["hourly","daily"]},"required":false,"name":"interval","in":"query"},{"schema":{"type":["integer","null"],"minimum":0},"required":false,"name":"resolution","in":"query"},{"schema":{"type":["string","null"],"maxLength":16},"required":false,"name":"quote","in":"query"},{"schema":{"type":["string","null"]},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Portfolio history retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"},"next_cursor":{"type":["string","null"]},"currency":{"type":["string","null"],"maxLength":16},"total_pnl":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"total_pnl_pct":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"history":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date"},"timestamp":{"type":"string","format":"date-time"},"total_balance":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"total_pnl":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"total_pnl_pct":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"assets":{"type":["object","null"],"additionalProperties":{"type":"object","properties":{"balance":{"type":["string","null"],"minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"additionalProperties":false}}},"required":["date"],"additionalProperties":false}}},"required":["start_date","end_date","history"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"result":{"start_date":"2024-01-01","end_date":"2024-12-31","next_cursor":null,"currency":"USD","total_pnl":"1500.00","total_pnl_pct":"15.00","history":[{"date":"2024-01-01","total_balance":"10000.00","total_pnl":"0.00","total_pnl_pct":"0.00","assets":{"BTC":{"balance":"0.15000000"},"ETH":{"balance":"5.00000000"}}},{"date":"2024-12-31","total_balance":"11500.00","total_pnl":"1500.00","total_pnl_pct":"15.00","assets":{"BTC":{"balance":"0.16000000"},"ETH":{"balance":"5.20000000"}}}]}}}}}}}}}},"/v1/kraken_embed/users/{user_id}/transactions":{"get":{"tags":["Kraken Embed"],"operationId":"getPortfolioTransactions","summary":"Get Portfolio Transactions","description":"Get transaction history for a user's portfolio with filtering and pagination options.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["simple_order","simple_order_failed","earn_reward"]}},"required":false,"name":"types","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":25},"required":false,"name":"page_size","in":"query"},{"schema":{"type":"array","items":{"type":"string","maxLength":16}},"required":false,"name":"assets","in":"query"},{"schema":{"type":"string","format":"date-time"},"required":false,"name":"from_time","in":"query"},{"schema":{"type":"string","format":"date-time"},"required":false,"name":"until_time","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["unspecified","in_progress","successful","failed"]}},"required":false,"name":"statuses","in":"query"},{"schema":{"type":"array","items":{"type":"string"}},"required":false,"name":"ids","in":"query"},{"schema":{"type":"string","enum":["descending","ascending"]},"required":false,"name":"sorting","in":"query"},{"schema":{"type":"string","maxLength":16},"required":false,"name":"quote","in":"query"},{"schema":{"type":"array","items":{"$ref":"#/components/schemas/KrakenEmbedPortfolioTransactionRefId"}},"required":false,"name":"ref_ids","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Transaction history retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"transactions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"time":{"type":"string","format":"date-time"},"type":{"type":"string","enum":["simple_order","simple_order_failed","earn_reward"]},"status":{"type":["string","null"],"enum":["unspecified","in_progress","successful","failed"]},"ref_id":{"type":"string"},"ref_id2":{"type":["string","null"]},"spend":{"type":["object","null"],"properties":{"ledger_id":{"type":["string","null"]},"time":{"type":["string","null"],"format":"date-time"},"amount":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"quoted_amount":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"fee":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"quoted_fee":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"total":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"quoted_total":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"balance":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false}},"required":["amount","total"],"additionalProperties":false},"receive":{"type":["object","null"],"properties":{"ledger_id":{"type":["string","null"]},"time":{"type":["string","null"],"format":"date-time"},"amount":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"quoted_amount":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"fee":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"quoted_fee":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"total":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"quoted_total":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false},"balance":{"type":["object","null"],"properties":{"asset":{"type":"string","maxLength":16},"asset_class":{"type":["string","null"],"enum":["currency"]},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"}},"required":["asset","asset_class","amount"],"additionalProperties":false}},"required":["amount","total"],"additionalProperties":false},"details":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["simple_order"]},"quote_id":{"type":"string"},"trade_type":{"type":"string","enum":["unspecified","buy","sell","convert"]},"parent_transaction":{"type":["string","null"]}},"required":["type","quote_id","trade_type","parent_transaction"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["simple_order_failed"]},"receive_asset":{"type":"object","properties":{"asset":{"type":"string"},"class":{"type":"string","enum":["currency"]}},"required":["asset","class"],"additionalProperties":false},"spend_asset":{"type":"object","properties":{"asset":{"type":"string"},"class":{"type":"string","enum":["currency"]}},"required":["asset","class"],"additionalProperties":false},"trade_type":{"type":"string","enum":["unspecified","buy","sell","convert"]},"failure_reason":{"type":"string","enum":["other","insufficient_funds","card_issue","user_account_issue"]}},"required":["type","receive_asset","spend_asset","trade_type","failure_reason"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["earn_reward"]}},"required":["type"],"additionalProperties":false},{"type":"null"}]}},"required":["id","time","type","ref_id","spend","receive","details"],"additionalProperties":false}},"stats":{"type":["object","null"],"properties":{"transactions_seen":{"type":["integer","null"],"minimum":0}},"required":["transactions_seen"],"additionalProperties":false},"next_cursor":{"type":["string","null"]}},"required":["transactions","stats","next_cursor"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"result":{"transactions":[{"id":"TXN-12345","time":"2024-04-15T11:00:00Z","type":"simple_order","status":"successful","ref_id":"REF-12345","ref_id2":"QTE-12345-ABCDE","spend":{"ledger_id":"LED-001","time":"2024-04-15T11:00:00Z","amount":{"asset":"USD","asset_class":"currency","amount":"100.00"},"quoted_amount":null,"fee":{"asset":"USD","asset_class":"currency","amount":"1.00"},"quoted_fee":null,"total":{"asset":"USD","asset_class":"currency","amount":"101.00"},"quoted_total":null,"balance":{"asset":"USD","asset_class":"currency","amount":"899.00"}},"receive":{"ledger_id":"LED-002","time":"2024-04-15T11:00:00Z","amount":{"asset":"BTC","asset_class":"currency","amount":"0.00150000"},"quoted_amount":null,"fee":{"asset":"BTC","asset_class":"currency","amount":"0.00000150"},"quoted_fee":null,"total":{"asset":"BTC","asset_class":"currency","amount":"0.00149850"},"quoted_total":null,"balance":{"asset":"BTC","asset_class":"currency","amount":"0.00149850"}},"details":{"type":"simple_order","quote_id":"QTE-12345-ABCDE","trade_type":"buy","parent_transaction":null}}],"stats":{"transactions_seen":1},"next_cursor":"next_page_token_xyz"}}}}}}}}}},"/v1/kraken_embed/funds/withdrawals":{"post":{"tags":["Kraken Embed"],"operationId":"withdrawFunds","summary":"Withdraw funds","description":"Currently, this is a master-only operation. Therefore, no User parameter exists.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"string","maxLength":16},"key":{"type":"string","minLength":1},"amount":{"type":"string","minLength":1,"maxLength":64,"pattern":"^-?[0-9]+(\\.[0-9]+)?$"},"idempotency_token":{"type":"string","format":"uuid"}},"required":["asset","key","amount"],"additionalProperties":false,"example":{"amount":"100.00","asset":"BTC","key":"key"}}}}},"responses":{"200":{"description":"Success result with a reference ID.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{}},"error":{"type":"array","items":{}},"result":{"type":["object","null"],"properties":{"reference_id":{"type":"string"}},"required":["reference_id"],"additionalProperties":false}},"required":["result"],"additionalProperties":false}},"required":["data"],"example":{"data":{"errors":[],"error":[],"result":{"reference_id":"reference_123"}}}}}}}}}},"/v1/kraken_embed/users/{user_id}/start_verification_urls":{"post":{"tags":["Kraken Embed"],"operationId":"startVerificationFromUrl","summary":"Start Verification from URL","description":"Start KYC verification for a user by submitting documents via presigned URLs. Unlike the submit verification endpoints which allow partners to submit already-trusted verification results, this endpoint initiates Kraken-side verification checks to validate the user.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KrakenEmbedStartVerificationUrlInput"}}}},"responses":{"200":{"description":"Verification started successfully. Returns the verification ID.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KrakenEmbedStartVerificationUrlResponse"}},"required":["data"]}}}}}}},"/v1/kraken_embed/custom_orders":{"post":{"tags":["Kraken Embed"],"operationId":"createCustomOrder","summary":"Create Custom Order","description":"Submit a custom order with a specified trigger condition. The order will execute automatically when the trigger condition is met.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KrakenEmbedCreateCustomOrderInput"}}}},"responses":{"200":{"description":"Custom order created successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KrakenEmbedCreateCustomOrderResponse"}},"required":["data"]}}}}}},"get":{"tags":["Kraken Embed"],"operationId":"listCustomOrders","summary":"List Custom Orders","description":"Get a list of custom orders that were previously submitted.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"query"},{"schema":{"type":"string","description":"Status filter. Possible values: active, paused, cancelled, completed."},"required":false,"name":"statuses","in":"query"},{"schema":{"type":"string","description":"Pagination cursor for fetching the next set of results."},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"List of custom orders.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KrakenEmbedListCustomOrdersResponse"}},"required":["data"]}}}}}}},"/v1/kraken_embed/custom_orders/{order_id}":{"get":{"tags":["Kraken Embed"],"operationId":"getCustomOrder","summary":"Get Custom Order","description":"Get a single custom order by ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Unique identifier for the custom order."},"required":true,"name":"order_id","in":"path"},{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Custom order details.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KrakenEmbedGetCustomOrderResponse"}},"required":["data"]}}}}}}},"/v1/kraken_embed/custom_orders/{order_id}/cancel":{"post":{"tags":["Kraken Embed"],"operationId":"cancelCustomOrder","summary":"Cancel Custom Order","description":"Cancel an active custom order. Once cancelled, the order cannot be reactivated.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Unique identifier for the custom order."},"required":true,"name":"order_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KrakenEmbedCancelCustomOrderInput"}}}},"responses":{"200":{"description":"Custom order cancelled successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KrakenEmbedCancelCustomOrderResponse"}},"required":["data"]}}}}}}},"/v1/kraken_embed/custom_orders/{order_id}/history":{"get":{"tags":["Kraken Embed"],"operationId":"getCustomOrderHistory","summary":"Get Custom Order History","description":"Get execution history for a single custom order.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"Unique identifier for the custom order."},"required":true,"name":"order_id","in":"path"},{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Custom order execution history.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KrakenEmbedGetCustomOrderHistoryResponse"}},"required":["data"]}}}}}}},"/v1/kraken_embed/users/{user_id}/earn_summary":{"get":{"tags":["Kraken Embed"],"operationId":"getEarnSummary","summary":"Get Earn Summary","description":"Get Earn summary of a user including Auto-Earn status, total rewards, and upcoming payouts. For per-asset granularity, use GET /v1/kraken_embed/earn/assets.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"string","maxLength":16},"required":true,"name":"currency","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Earn summary retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KrakenEmbedGetEarnSummaryResponse"}}}}}}},"/v1/kraken_embed/earn/assets":{"get":{"tags":["Kraken Embed"],"operationId":"listEarnAssets","summary":"List Earn Assets","description":"List Earn Assets with APR estimates. Optionally filter by asset or user to include active allocations.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"array","items":{"type":"string","maxLength":16}},"required":false,"name":"assets","in":"query"},{"schema":{"type":"string","minLength":14,"maxLength":42},"required":false,"name":"user","in":"query"},{"schema":{"type":"string","maxLength":16},"required":false,"name":"currency","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Earn assets listed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KrakenEmbedGetEarnAssetsResponse"}}}}}}},"/v1/kraken_embed/users/{user_id}/auto_earn":{"put":{"tags":["Kraken Embed"],"operationId":"toggleAutoEarn","summary":"Toggle Auto-Earn","description":"Toggle Auto-Earn of a user. This is an async operation. To fetch the current status, use GET /v1/kraken_embed/users/{user_id}/earn_summary.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the Privy user."},"required":true,"name":"user_id","in":"path"},{"schema":{"type":"boolean"},"required":true,"name":"want_enabled","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Auto-Earn toggle operation triggered successfully. Response body is empty.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KrakenEmbedToggleAutoEarnResponse"}}}}}}},"/v1/wallets/{wallet_id}/ethereum_yield_deposit":{"post":{"tags":["Yield"],"operationId":"ethereumYieldDeposit","summary":"Deposit into Vault","description":"Deposit assets from a wallet into an ERC-4626 vault. This endpoint generates and broadcasts the necessary approval and deposit transactions.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthereumYieldDepositInput"}}}},"responses":{"200":{"description":"Yield sweep created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthereumYieldSweepResponse"}}}}}}},"/v1/wallets/{wallet_id}/ethereum_yield_withdraw":{"post":{"tags":["Yield"],"operationId":"ethereumYieldWithdraw","summary":"Withdraw from Vault","description":"Withdraw assets from an ERC-4626 vault back to a wallet. This endpoint generates and broadcasts the withdrawal transaction.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthereumYieldWithdrawInput"}}}},"responses":{"200":{"description":"Yield sweep created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthereumYieldSweepResponse"}}}}}}},"/v1/wallets/{wallet_id}/ethereum_yield_vault":{"get":{"tags":["Yield"],"operationId":"getEthereumYieldPosition","summary":"Get Ethereum Yield Vault Position","description":"Retrieve a wallet's current position in a specific ethereum yield vault. Returns the vault shares and asset values.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"The vault ID to get position for."},"required":true,"name":"vault_id","in":"query"},{"schema":{"type":"boolean","description":"Include archived wallets in lookup. Defaults to false."},"required":false,"name":"include_archived","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Yield position retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthereumYieldPositionResponse"}}}}}}},"/v1/ethereum_yield_vault/{vault_id}":{"get":{"tags":["Yield"],"operationId":"getEthereumYieldVault","summary":"Get Ethereum Vault Details","description":"Retrieve detailed information about an ethereum yield vault, including current APY and liquidity.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The Privy vault ID."},"required":true,"name":"vault_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Vault details retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthereumVaultDetailsResponse"}}}}}}},"/v1/ethereum_yield_sweep/{id}":{"get":{"tags":["Yield"],"operationId":"getEthereumYieldSweep","summary":"Get Yield Sweep","description":"Retrieve a yield sweep (deposit or withdrawal) by its ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The yield sweep ID."},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Yield sweep retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthereumYieldSweepResponse"}}}}}}},"/v1/wallets/{wallet_id}/ethereum_yield_claim":{"post":{"tags":["Yield"],"operationId":"ethereumYieldClaim","summary":"Claim Yield Rewards","description":"Claim incentive rewards accrued from vault participation on the specified chain via Merkl.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthereumYieldClaimInput"}}}},"responses":{"200":{"description":"Claim transaction submitted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthereumYieldClaimResponse"}}}}}}},"/v1/ethereum_yield_claim/{id}":{"get":{"tags":["Yield"],"operationId":"getEthereumYieldClaim","summary":"Get Yield Reward Claim","description":"Retrieve a yield reward claim transaction by its ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The yield claim transaction ID."},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Yield reward claim retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthereumYieldClaimResponse"}}}}}}},"/v1/accounts":{"post":{"tags":["Accounts"],"operationId":"createAccount","summary":"Create account","description":"Creates a new account with associated wallets.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountInput"},"example":{"display_name":"My Account","wallets_configuration":[{"chain_type":"ethereum"}]}}}},"responses":{"200":{"description":"The created account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResponse"}}}}}},"get":{"tags":["Accounts"],"operationId":"listAccounts","summary":"List accounts","description":"List all accounts in your app.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"},{"schema":{"type":["number","null"],"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"Optional search term to filter accounts by display name, account ID, or wallet address."},"required":false,"name":"search","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Paginated list of accounts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountsListResponse"}}}}}}},"/v1/accounts/{account_id}":{"get":{"tags":["Accounts"],"operationId":"getAccount","summary":"Get account","description":"Get an account by account ID.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"ID of the account."},"required":true,"name":"account_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"The requested account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResponse"}}}}}},"patch":{"tags":["Accounts"],"operationId":"updateAccount","summary":"Update account","description":"Update an account by account ID. Supports updating the display name and adding new wallets.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"ID of the account."},"required":true,"name":"account_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAccountInput"},"example":{"display_name":"Updated Account Name","wallets_configuration":[{"chain_type":"ethereum"},{"chain_type":"solana"}]}}}},"responses":{"200":{"description":"The updated account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResponse"}}}}}}},"/v1/accounts/{account_id}/balance":{"get":{"tags":["Accounts"],"operationId":"getAccountBalance","summary":"Get account balance","description":"Get the balance of an account, aggregated across all wallets and supported chains.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"ID of the account."},"required":true,"name":"account_id","in":"path"},{"schema":{"$ref":"#/components/schemas/ChainTestnetMode"},"required":false,"name":"testnet_mode","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"The account balance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountBalanceResponse"}}}}}}},"/v1/wallets/{wallet_id}/swap/quote":{"post":{"tags":["Swaps"],"operationId":"swapQuote","summary":"Get Swap Quote","description":"Get a price quote for swapping tokens within a wallet.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapQuoteRequestBody"},"example":{"base_amount":"1000000000000000000","amount_type":"exact_input","source":{"asset_address":"native","caip2":"eip155:1"},"destination":{"asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","caip2":"eip155:1"}}}}},"responses":{"200":{"description":"Swap quote retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapQuoteResponse"},"example":{"caip2":"eip155:1","input_token":"native","output_token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","input_amount":"1000000000000000000","est_output_amount":"2000000000","minimum_output_amount":"1980000000","gas_estimate":"150000"}}}}}}},"/v1/wallets/{wallet_id}/swap":{"post":{"tags":["Swaps"],"operationId":"swapTokens","summary":"Swap Tokens","description":"Execute a token swap within a wallet.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapRequestBody"},"example":{"base_amount":"1000000000000000000","amount_type":"exact_input","source":{"asset_address":"native","caip2":"eip155:1"},"destination":{"asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","caip2":"eip155:1"},"slippage_bps":50}}}},"responses":{"200":{"description":"Swap initiated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapActionResponse"},"example":{"id":"cm7oxq1el000e11o8iwp7d0d0","status":"pending","wallet_id":"fmfdj6yqly31huorjqzq38zc","caip2":"eip155:1","input_token":"native","output_token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","input_amount":"1000000000000000000"}}}}}}},"/v1/wallets/{wallet_id}/actions":{"get":{"tags":["Wallet Actions"],"operationId":"listWalletActions","summary":"List wallet actions","description":"List all wallet actions for a wallet, with optional filtering by type and status. Supports cursor-based pagination.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","minLength":1},"required":false,"name":"cursor","in":"query"},{"schema":{"type":["number","null"],"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"$ref":"#/components/schemas/WalletActionType"},"required":false,"name":"type","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"}],"responses":{"200":{"description":"Paginated list of wallet actions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWalletActionsResponse"}}}}}}},"/v1/wallets/{wallet_id}/actions/{action_id}":{"get":{"tags":["Wallet Actions"],"operationId":"getWalletAction","summary":"Get wallet action","description":"Get the current status of a wallet action by its ID. Use `?include=steps` to include step-level details.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","format":"uuid","description":"ID of the wallet action."},"required":true,"name":"action_id","in":"path"},{"schema":{"allOf":[{"$ref":"#/components/schemas/WalletActionInclude"},{"description":"Include step-level details in the response."}]},"required":false,"name":"include","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"}],"responses":{"200":{"description":"The wallet action with its current status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionResponse"},"example":{"id":"cm7oxq1el000e11o8iwp7d0d0","status":"pending","wallet_id":"fmfdj6yqly31huorjqzq38zc","type":"swap","caip2":"eip155:1","input_token":"native","output_token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","input_amount":null,"output_amount":null}}}}}}},"/v1/wallets/{wallet_id}/transfer":{"post":{"tags":["Wallet Actions"],"operationId":"transfer","summary":"Transfer","description":"Transfer tokens from a wallet to a destination address.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRequestBody"},"example":{"amount_type":"exact_input","source":{"asset":"usdc","amount":"10.5","chain":"base"},"destination":{"asset":"usdc","chain":"base","address":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2"},"slippage_bps":100}}}},"responses":{"200":{"description":"Transfer initiated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferActionResponse"},"example":{"id":"550e8400-e29b-41d4-a716-446655440000","status":"pending","wallet_id":"fmfdj6yqly31huorjqzq38zc","type":"transfer","source_asset":"usdc","source_amount":"10.5","source_chain":"base","destination_address":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2"}}}}}}},"/v1/wallets/{wallet_id}/transfer/quote":{"post":{"tags":["Wallet Actions"],"operationId":"transferQuote","summary":"Get Transfer Quote","description":"Get a price quote for a cross-asset or cross-chain (DADC) transfer. Only available for named-asset transfers where the source and destination asset or chain differ.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferQuoteRequestBody"},"example":{"source":{"asset":"usdc","amount":"10.5","chain":"base"},"destination":{"asset":"usdc","chain":"arbitrum","address":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2"}}}}},"responses":{"200":{"description":"Transfer quote retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferQuoteResponse"},"example":{"source":{"asset":"usdc","amount":"10.50","chain":"base"},"destination":{"address":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2","asset":"usdc","chain":"arbitrum"},"estimated_output_amount":"10.45","estimated_fees":[{"type":"relayer","amount":"0.20"},{"type":"privy","amount":"0.05"}],"expires_at":1715200000}}}}}}},"/v1/wallets/{wallet_id}/earn/ethereum/deposit":{"post":{"tags":["Wallet Actions"],"operationId":"ethereumEarnDeposit","summary":"Earn deposit","description":"Deposit assets into an ERC-4626 vault.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarnDepositRequestBody"},"example":{"vault_id":"cm7oxq1el000e11o8iwp7d0d0","amount":"1.5"}}}},"responses":{"200":{"description":"Earn deposit initiated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarnDepositActionResponse"},"example":{"id":"550e8400-e29b-41d4-a716-446655440000","status":"pending","wallet_id":"fmfdj6yqly31huorjqzq38zc","type":"earn_deposit","caip2":"eip155:8453","vault_id":"cm7oxq1el000e11o8iwp7d0d0","vault_address":"0x1234567890abcdef1234567890abcdef12345678","asset":"usdc","asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","decimals":6,"amount":"1.5","raw_amount":"1500000","share_amount":null}}}}}}},"/v1/wallets/{wallet_id}/earn/ethereum/withdraw":{"post":{"tags":["Wallet Actions"],"operationId":"ethereumEarnWithdraw","summary":"Earn withdraw","description":"Withdraw assets from an ERC-4626 vault.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarnWithdrawRequestBody"},"example":{"vault_id":"cm7oxq1el000e11o8iwp7d0d0","amount":"1.5"}}}},"responses":{"200":{"description":"Earn withdraw initiated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarnWithdrawActionResponse"},"example":{"id":"550e8400-e29b-41d4-a716-446655440000","status":"pending","wallet_id":"fmfdj6yqly31huorjqzq38zc","type":"earn_withdraw","caip2":"eip155:8453","vault_id":"cm7oxq1el000e11o8iwp7d0d0","vault_address":"0x1234567890abcdef1234567890abcdef12345678","asset":"usdc","asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","decimals":6,"amount":"1.5","raw_amount":"1500000","share_amount":null}}}}}}},"/v1/wallets/{wallet_id}/earn/ethereum/incentive/claim":{"post":{"tags":["Wallet Actions"],"operationId":"ethereumEarnIncentiveClaim","summary":"Earn incentive claim","description":"Claim incentive rewards for a wallet.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"},{"schema":{"type":"string","description":"Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed."},"required":false,"name":"privy-request-expiry","in":"header"},{"schema":{"type":"string","description":"Idempotency keys ensure API requests are executed only once within a 24-hour window."},"required":false,"name":"privy-idempotency-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarnIncentiveClaimRequestBody"},"example":{"chain":"base"}}}},"responses":{"200":{"description":"Earn incentive claim initiated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarnIncentiveClaimActionResponse"},"example":{"id":"550e8400-e29b-41d4-a716-446655440000","status":"pending","wallet_id":"fmfdj6yqly31huorjqzq38zc","type":"earn_incentive_claim","chain":"base","rewards":null}}}}}},"get":{"tags":["Wallet Actions"],"operationId":"getEthereumEarnIncentiveRewards","summary":"Get incentive rewards","description":"Retrieve all incentive rewards for a wallet on a given chain, with claimed and claimable amounts per token.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"Chain name to fetch rewards for (e.g. \"base\", \"ethereum\")."},"required":true,"name":"chain","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Incentive rewards retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarnIncentiveRewardsResponse"}}}}}}},"/v1/wallets/{wallet_id}/earn/ethereum/vaults":{"get":{"tags":["Wallet Actions"],"operationId":"getEthereumEarnPosition","summary":"Get earn vault position","description":"Retrieve a wallet's current position in a specific earn vault, including deposit/withdraw totals and current onchain vault shares.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"The vault ID to get position for."},"required":true,"name":"vault_id","in":"query"},{"schema":{"type":"boolean","description":"Include archived wallets in lookup. Defaults to false."},"required":false,"name":"include_archived","in":"query"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Earn vault position retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthereumEarnPositionResponse"}}}}}}},"/v1/earn/ethereum/vaults/{vault_id}":{"get":{"tags":["Wallet Actions"],"operationId":"getEthereumEarnVaultDetails","summary":"Get earn vault details","description":"Retrieve detailed information about an earn vault, including current APY and liquidity.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The Privy vault ID."},"required":true,"name":"vault_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"}],"responses":{"200":{"description":"Vault details retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EthereumEarnVaultDetailsResponse"}}}}}}},"/v1/wallets/{wallet_id}/experimental/solana/advanced-swap":{"post":{"tags":["Wallet Actions"],"operationId":"advancedSwap","summary":"Advanced swap","description":"Execute a synchronous Solana token swap: fetch a quote, sign via the enclave, submit to Jito, and return the signed transaction and quote details — all in a single request.","security":[{"appSecretAuth":[]}],"parameters":[{"schema":{"type":"string","description":"ID of the wallet."},"required":true,"name":"wallet_id","in":"path"},{"schema":{"type":"string","description":"ID of your Privy app."},"required":true,"name":"privy-app-id","in":"header"},{"schema":{"type":"string","description":"Request authorization signature. If multiple signatures are required, they should be comma separated."},"required":false,"name":"privy-authorization-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdvancedSwapRequestBody"},"example":{"input_token":"So11111111111111111111111111111111111111112","output_token":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","caip2":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","amount":"1000000000","slippage_bps":50,"platform_fee_bps":100,"fee_recipient":"FeeAcct..."}}}},"responses":{"200":{"description":"Swap executed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdvancedSwapResponse"},"example":{"transaction_hash":"5K4f...base58sig","submission_status":"accepted","signed_transaction":"AQAAAA...base64...","provider":"dflow","input_token":"So11111111111111111111111111111111111111112","output_token":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","in_amount":"1000000000","out_amount":"173500000","min_out_amount":"172632500","slippage_bps":50,"platform_fee":{"amount":"1735000","bps":100,"token":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}}}}}}}}},"webhooks":{"user.created":{"post":{"summary":"User created","description":"Fired when a new user is created in your app.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreatedWebhookPayload"},"examples":{"user-created":{"value":{"type":"user.created","user":{"id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_at":1716153600,"linked_accounts":[],"mfa_methods":[],"has_accepted_terms":true,"is_guest":false}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"user.authenticated":{"post":{"summary":"User authenticated","description":"Fired when a user successfully authenticates (logs in) to your app.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAuthenticatedWebhookPayload"},"examples":{"email-authentication":{"value":{"type":"user.authenticated","user":{"id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_at":1716153600,"linked_accounts":[{"type":"email","address":"user@example.com","verified_at":1716153600,"first_verified_at":1716153600,"latest_verified_at":1716153600}],"mfa_methods":[{"type":"totp","verified_at":1716153600}],"has_accepted_terms":true,"is_guest":false},"account":{"type":"email","address":"user@example.com","verified_at":1716153600,"first_verified_at":1716153600,"latest_verified_at":1716153600}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"user.linked_account":{"post":{"summary":"User linked account","description":"Fired when a user links a new account (email, phone, wallet, social login, etc.) to their profile.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLinkedAccountWebhookPayload"},"examples":{"email-account":{"value":{"type":"user.linked_account","user":{"id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_at":1716153600,"linked_accounts":[],"mfa_methods":[],"has_accepted_terms":true,"is_guest":false},"account":{"type":"email","address":"user@example.com","verified_at":1716153600,"first_verified_at":1716153600,"latest_verified_at":1716153600}}},"ethereum-wallet":{"value":{"type":"user.linked_account","user":{"id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_at":1716153600,"linked_accounts":[],"mfa_methods":[],"has_accepted_terms":true,"is_guest":false},"account":{"type":"wallet","address":"0x1234567890123456789012345678901234567890","chain_type":"ethereum","verified_at":1716153600,"first_verified_at":1716153600,"latest_verified_at":1716153600,"wallet_client":"unknown","wallet_client_type":"unknown","connector_type":"unknown"}}},"google-oauth":{"value":{"type":"user.linked_account","user":{"id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_at":1716153600,"linked_accounts":[],"mfa_methods":[],"has_accepted_terms":true,"is_guest":false},"account":{"type":"google_oauth","subject":"110248495921238986420","email":"test@gmail.com","name":"Test User","verified_at":1716153600,"first_verified_at":1716153600,"latest_verified_at":1716153600}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"user.unlinked_account":{"post":{"summary":"User unlinked account","description":"Fired when a user unlinks an account from their profile.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUnlinkedAccountWebhookPayload"},"examples":{"user-unlinked-account":{"value":{"type":"user.unlinked_account","user":{"id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_at":1716153600,"linked_accounts":[],"mfa_methods":[],"has_accepted_terms":true,"is_guest":false},"account":{"type":"email","address":"user@example.com","verified_at":1716153600,"first_verified_at":1716153600,"latest_verified_at":1716153600}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"user.updated_account":{"post":{"summary":"User updated account","description":"Fired when a user updates one of their linked accounts.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdatedAccountWebhookPayload"},"examples":{"user-updated-account":{"value":{"type":"user.updated_account","user":{"id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_at":1716153600,"linked_accounts":[],"mfa_methods":[],"has_accepted_terms":true,"is_guest":false},"account":{"type":"email","address":"user@example.com","verified_at":1716153600,"first_verified_at":1716153600,"latest_verified_at":1716153600}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"user.transferred_account":{"post":{"summary":"User transferred account","description":"Fired when an account is transferred from one user to another.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTransferredAccountWebhookPayload"},"examples":{"user-transferred-account":{"value":{"type":"user.transferred_account","fromUser":{"id":"did:privy:clu2wsin402h9h9kt6ae7dfuh"},"toUser":{"id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_at":1716153600,"linked_accounts":[],"mfa_methods":[],"has_accepted_terms":true,"is_guest":false},"account":{"type":"email","address":"user@example.com","verified_at":1716153600,"first_verified_at":1716153600,"latest_verified_at":1716153600},"deletedUser":true}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"user.wallet_created":{"post":{"summary":"User wallet created","description":"Fired when an embedded wallet is created for a user.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserWalletCreatedWebhookPayload"},"examples":{"user-wallet-created":{"value":{"type":"user.wallet_created","user":{"id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_at":1716153600,"linked_accounts":[],"mfa_methods":[],"has_accepted_terms":true,"is_guest":false},"wallet":{"type":"wallet","address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","chain_type":"ethereum"}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"transaction.broadcasted":{"post":{"summary":"Transaction broadcasted","description":"Fired when a transaction is successfully broadcast to the blockchain network.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionBroadcastedWebhookPayload"},"examples":{"transaction-broadcasted":{"value":{"type":"transaction.broadcasted","wallet_id":"fmfdj6yqly31huorjqzq38zc","transaction_id":"36d384ec-4e62-4332-ae6f-9ded2c27c680","caip2":"eip155:1","transaction_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"transaction.confirmed":{"post":{"summary":"Transaction confirmed","description":"Fired when a transaction is confirmed on-chain.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionConfirmedWebhookPayload"},"examples":{"transaction-confirmed":{"value":{"type":"transaction.confirmed","wallet_id":"fmfdj6yqly31huorjqzq38zc","transaction_id":"36d384ec-4e62-4332-ae6f-9ded2c27c680","caip2":"eip155:1","transaction_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"transaction.execution_reverted":{"post":{"summary":"Transaction execution reverted","description":"Fired when a transaction execution reverts on-chain.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionExecutionRevertedWebhookPayload"},"examples":{"transaction-execution-reverted":{"value":{"type":"transaction.execution_reverted","wallet_id":"r3mbxxfmzsuxxw3guxxha2xx","transaction_id":"537e327d-7382-4e61-93e5-0241c72d0793","caip2":"eip155:1","transaction_hash":"0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"transaction.still_pending":{"post":{"summary":"Transaction still pending","description":"Fired when a transaction has been pending for an extended period without confirmation.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionStillPendingWebhookPayload"},"examples":{"transaction-still-pending":{"value":{"type":"transaction.still_pending","wallet_id":"fmfdj6yqly31huorjqzq38zc","transaction_id":"9a8b7c6d-5e4f-3a2b-1c0d-ef9876543210","caip2":"eip155:1","transaction_hash":"0x1234abcd5678ef901234abcd5678ef901234abcd5678ef901234abcd5678ef90","transaction_request":{"from":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","to":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","value":"0x0","data":"0x","gas":"0x5208","gasPrice":"0x4a817c800"}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"transaction.failed":{"post":{"summary":"Transaction failed","description":"Fired when a transaction fails.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionFailedWebhookPayload"},"examples":{"transaction-failed":{"value":{"type":"transaction.failed","wallet_id":"fmfdj6yqly31huorjqzq38zc","transaction_id":"36d384ec-4e62-4332-ae6f-9ded2c27c680","caip2":"eip155:1","transaction_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"transaction.replaced":{"post":{"summary":"Transaction replaced","description":"Fired when a transaction is replaced by another transaction (e.g., speed-up or cancellation).","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionReplacedWebhookPayload"},"examples":{"transaction-replaced":{"value":{"type":"transaction.replaced","wallet_id":"fmfdj6yqly31huorjqzq38zc","transaction_id":"36d384ec-4e62-4332-ae6f-9ded2c27c680","caip2":"eip155:1","transaction_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"transaction.provider_error":{"post":{"summary":"Transaction provider error","description":"Fired when there is an error from the transaction provider.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionProviderErrorWebhookPayload"},"examples":{"transaction-provider-error":{"value":{"type":"transaction.provider_error","wallet_id":"fmfdj6yqly31huorjqzq38zc","transaction_id":"36d384ec-4e62-4332-ae6f-9ded2c27c680","caip2":"eip155:1","transaction_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"user_operation.completed":{"post":{"summary":"User operation completed","description":"Fired when an ERC-4337 UserOperation lands on-chain.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOperationCompletedWebhookPayload"},"examples":{"user-operation-completed":{"value":{"type":"user_operation.completed","user_op_hash":"0xabc123def456789abc123def456789abc123def456789abc123def456789abc1","sender":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","paymaster":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","nonce":"0x1","success":true,"actual_gas_cost":"0x2386f26fc10000","actual_gas_used":"0x5208","caip2":"eip155:8453","transaction_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c","block_number":12345678,"log_index":0}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet.funds_deposited":{"post":{"summary":"Funds deposited","description":"Fired when funds are deposited into a wallet.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FundsDepositedWebhookPayload"},"examples":{"native-token":{"value":{"type":"wallet.funds_deposited","wallet_id":"fmfdj6yqly31huorjqzq38zc","idempotency_key":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","caip2":"eip155:1","asset":{"type":"native-token","address":null},"amount":"1000000000000000000","transaction_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c","sender":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","recipient":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","block":{"number":19832451,"timestamp":1715000003}}},"erc20-token":{"value":{"type":"wallet.funds_deposited","wallet_id":"fmfdj6yqly31huorjqzq38zc","idempotency_key":"b2c3d4e5-f6a7-8901-bcde-f12345678901","caip2":"eip155:1","asset":{"type":"erc20","address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},"amount":"10000000","transaction_hash":"0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890","sender":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","recipient":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","block":{"number":19832450,"timestamp":1714999991}}},"spl-token":{"value":{"type":"wallet.funds_deposited","wallet_id":"r3mbxxfmzsuxxw3guxxha2xx","idempotency_key":"c3d4e5f6-a7b8-9012-cdef-123456789012","caip2":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":{"type":"spl","mint":"So11111111111111111111111111111111111111112"},"amount":"1000000000","transaction_hash":"5UfDuX7hXbMjRHzbMbLFnCejwdSJYhEFjGHxaGeFMpQPeMzPcpBLQNHXcPhPrNBRGdxkVPcBYAMW4os8qoEzQwVE","sender":"DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK","recipient":"7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV","block":{"number":259830245,"timestamp":1714999800}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet.funds_withdrawn":{"post":{"summary":"Funds withdrawn","description":"Fired when funds are withdrawn from a wallet.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FundsWithdrawnWebhookPayload"},"examples":{"native-token":{"value":{"type":"wallet.funds_withdrawn","wallet_id":"fmfdj6yqly31huorjqzq38zc","idempotency_key":"d4e5f6a7-b8c9-0123-defa-234567890123","caip2":"eip155:1","asset":{"type":"native-token","address":null},"amount":"1000000000000000000","transaction_hash":"0x3a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b","sender":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","recipient":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","block":{"number":19832455,"timestamp":1715000051}}},"erc20-token":{"value":{"type":"wallet.funds_withdrawn","wallet_id":"fmfdj6yqly31huorjqzq38zc","idempotency_key":"e5f6a7b8-c9d0-1234-efab-345678901234","caip2":"eip155:1","asset":{"type":"erc20","address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},"amount":"10000000","transaction_hash":"0x1234abcd5678ef901234abcd5678ef901234abcd5678ef901234abcd5678ef90","sender":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","recipient":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","block":{"number":19832456,"timestamp":1715000063}}},"spl-token":{"value":{"type":"wallet.funds_withdrawn","wallet_id":"r3mbxxfmzsuxxw3guxxha2xx","idempotency_key":"f6a7b8c9-d0e1-2345-fabc-456789012345","caip2":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":{"type":"spl","mint":"So11111111111111111111111111111111111111112"},"amount":"1000000000","transaction_hash":"3Mq7Dw4yvbRPKBEQ9Nb2yER3pGCbsEQCiKBdFpHuNDFvhWfnQRpL2fG1RAVRyS5sij2eKBnNoCmL8y7h8YMWV5T","sender":"7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV","recipient":"DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK","block":{"number":259830300,"timestamp":1715000022}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet.private_key_export":{"post":{"summary":"Private key export","description":"Fired when a user exports the private key of their embedded wallet.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivateKeyExportWebhookPayload"},"examples":{"private-key-export":{"value":{"type":"wallet.private_key_export","user_id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","wallet_id":"fmfdj6yqly31huorjqzq38zc","wallet_address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet.recovery_setup":{"post":{"summary":"Wallet recovery setup","description":"Fired when a user sets up recovery for their embedded wallet.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletRecoverySetupWebhookPayload"},"examples":{"wallet-recovery-setup":{"value":{"type":"wallet.recovery_setup","user_id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","wallet_id":"fmfdj6yqly31huorjqzq38zc","wallet_address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","method":"recovery_encryption_key"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet.recovered":{"post":{"summary":"Wallet recovered","description":"Fired when a user recovers their embedded wallet.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletRecoveredWebhookPayload"},"examples":{"wallet-recovered":{"value":{"type":"wallet.recovered","user_id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","wallet_id":"fmfdj6yqly31huorjqzq38zc","wallet_address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet.archived":{"post":{"summary":"Wallet archived","description":"Fired when a wallet is archived.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletArchivedWebhookPayload"},"examples":{"wallet-archived":{"value":{"type":"wallet.archived","wallet_id":"fmfdj6yqly31huorjqzq38zc","wallet_address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","chain_type":"ethereum","archived_at":1715000003}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet.restored":{"post":{"summary":"Wallet restored","description":"Fired when a wallet is restored from archive.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletRestoredWebhookPayload"},"examples":{"wallet-restored":{"value":{"type":"wallet.restored","wallet_id":"fmfdj6yqly31huorjqzq38zc","wallet_address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","chain_type":"ethereum"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.swap.created":{"post":{"summary":"Swap created","description":"Fired when a wallet action is created and execution has begun. The action is now pending.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionSwapCreatedWebhookPayload"},"examples":{"wallet-action-swap-created":{"value":{"type":"wallet_action.swap.created","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"swap","status":"pending","created_at":"2026-06-15T15:24:00.000Z","caip2":"eip155:8453","input_token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","output_token":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","input_amount":null}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.swap.succeeded":{"post":{"summary":"Swap succeeded","description":"Fired when all steps of a wallet action have been confirmed onchain. The action is complete.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionSwapSucceededWebhookPayload"},"examples":{"wallet-action-swap-succeeded":{"value":{"type":"wallet_action.swap.succeeded","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"swap","status":"succeeded","created_at":"2026-06-15T15:24:00.000Z","completed_at":"2026-06-15T15:24:12.000Z","caip2":"eip155:8453","input_token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","output_token":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","input_amount":"1000000","output_amount":"550000000000000","steps":[{"type":"evm_transaction","status":"confirmed","caip2":"eip155:8453","transaction_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c"}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.swap.rejected":{"post":{"summary":"Swap rejected","description":"Fired when a wallet action fails before any onchain effects (e.g. policy rejection, simulation failure). Safe to retry.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionSwapRejectedWebhookPayload"},"examples":{"wallet-action-swap-rejected":{"value":{"type":"wallet_action.swap.rejected","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"swap","status":"rejected","created_at":"2026-06-15T15:24:00.000Z","rejected_at":"2026-06-15T15:24:12.000Z","caip2":"eip155:8453","input_token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","output_token":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","input_amount":null,"failure_reason":{"message":"Transaction simulation reverted"},"steps":[{"type":"evm_transaction","status":"rejected","caip2":"eip155:8453","transaction_hash":null,"failure_reason":{"message":"Transaction simulation reverted"}}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.swap.failed":{"post":{"summary":"Swap failed","description":"Fired when a wallet action fails after at least one transaction was broadcast. There may be onchain state changes; inspect the steps for details.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionSwapFailedWebhookPayload"},"examples":{"wallet-action-swap-failed":{"value":{"type":"wallet_action.swap.failed","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"swap","status":"failed","created_at":"2026-06-15T15:24:00.000Z","failed_at":"2026-06-15T15:24:12.000Z","caip2":"eip155:8453","input_token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","output_token":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","input_amount":"1000000","failure_reason":{"message":"Transaction execution reverted"},"steps":[{"type":"evm_transaction","status":"confirmed","caip2":"eip155:8453","transaction_hash":"0x1111111111111111111111111111111111111111111111111111111111111111"},{"type":"evm_transaction","status":"reverted","caip2":"eip155:8453","transaction_hash":"0x2222222222222222222222222222222222222222222222222222222222222222","failure_reason":{"message":"Transaction execution reverted"}}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.transfer.created":{"post":{"summary":"Transfer created","description":"Fired when a wallet action is created and execution has begun. The action is now pending.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionTransferCreatedWebhookPayload"},"examples":{"wallet-action-transfer-created":{"value":{"type":"wallet_action.transfer.created","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"transfer","status":"pending","created_at":"2026-06-15T15:24:00.000Z","source_asset":"usdc","source_amount":"1.5","source_chain":"base","destination_address":"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.transfer.succeeded":{"post":{"summary":"Transfer succeeded","description":"Fired when all steps of a wallet action have been confirmed onchain. The action is complete.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionTransferSucceededWebhookPayload"},"examples":{"wallet-action-transfer-succeeded":{"value":{"type":"wallet_action.transfer.succeeded","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"transfer","status":"succeeded","created_at":"2026-06-15T15:24:00.000Z","completed_at":"2026-06-15T15:24:12.000Z","source_asset":"usdc","source_amount":"1.5","source_chain":"base","destination_address":"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18","steps":[{"type":"evm_transaction","status":"confirmed","caip2":"eip155:8453","transaction_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c"}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.transfer.rejected":{"post":{"summary":"Transfer rejected","description":"Fired when a wallet action fails before any onchain effects (e.g. policy rejection, simulation failure). Safe to retry.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionTransferRejectedWebhookPayload"},"examples":{"wallet-action-transfer-rejected":{"value":{"type":"wallet_action.transfer.rejected","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"transfer","status":"rejected","created_at":"2026-06-15T15:24:00.000Z","rejected_at":"2026-06-15T15:24:12.000Z","source_asset":"usdc","source_amount":"1.5","source_chain":"base","destination_address":"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18","failure_reason":{"message":"Transaction simulation reverted"},"steps":[{"type":"evm_transaction","status":"rejected","caip2":"eip155:8453","transaction_hash":null,"failure_reason":{"message":"Transaction simulation reverted"}}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.transfer.failed":{"post":{"summary":"Transfer failed","description":"Fired when a wallet action fails after at least one transaction was broadcast. There may be onchain state changes; inspect the steps for details.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionTransferFailedWebhookPayload"},"examples":{"wallet-action-transfer-failed":{"value":{"type":"wallet_action.transfer.failed","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"transfer","status":"failed","created_at":"2026-06-15T15:24:00.000Z","failed_at":"2026-06-15T15:24:12.000Z","source_asset":"usdc","source_amount":"1.5","source_chain":"base","destination_address":"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18","failure_reason":{"message":"Transaction execution reverted"},"steps":[{"type":"evm_transaction","status":"reverted","caip2":"eip155:8453","transaction_hash":"0x2222222222222222222222222222222222222222222222222222222222222222","failure_reason":{"message":"Transaction execution reverted"}}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.earn_deposit.created":{"post":{"summary":"Earn deposit created","description":"Fired when a wallet action is created and execution has begun. The action is now pending.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionEarnDepositCreatedWebhookPayload"},"examples":{"wallet-action-earn_deposit-created":{"value":{"type":"wallet_action.earn_deposit.created","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"earn_deposit","status":"pending","created_at":"2026-06-15T15:24:00.000Z","caip2":"eip155:8453","vault_id":"cm7oxq1el000e11o8iwp7d0d0","vault_address":"0x1234567890abcdef1234567890abcdef12345678","asset":"usdc","asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","decimals":6,"amount":"1","raw_amount":"1000000"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.earn_deposit.succeeded":{"post":{"summary":"Earn deposit succeeded","description":"Fired when all steps of a wallet action have been confirmed onchain. The action is complete.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionEarnDepositSucceededWebhookPayload"},"examples":{"wallet-action-earn_deposit-succeeded":{"value":{"type":"wallet_action.earn_deposit.succeeded","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"earn_deposit","status":"succeeded","created_at":"2026-06-15T15:24:00.000Z","completed_at":"2026-06-15T15:24:12.000Z","caip2":"eip155:8453","vault_id":"cm7oxq1el000e11o8iwp7d0d0","vault_address":"0x1234567890abcdef1234567890abcdef12345678","asset":"usdc","asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","decimals":6,"amount":"1","raw_amount":"1000000","share_amount":"999500","steps":[{"type":"evm_user_operation","status":"confirmed","caip2":"eip155:8453","user_operation_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c","bundle_transaction_hash":"0x3557f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c","entrypoint_version":"0.7"}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.earn_deposit.rejected":{"post":{"summary":"Earn deposit rejected","description":"Fired when a wallet action fails before any onchain effects (e.g. policy rejection, simulation failure). Safe to retry.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionEarnDepositRejectedWebhookPayload"},"examples":{"wallet-action-earn_deposit-rejected":{"value":{"type":"wallet_action.earn_deposit.rejected","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"earn_deposit","status":"rejected","created_at":"2026-06-15T15:24:00.000Z","rejected_at":"2026-06-15T15:24:12.000Z","caip2":"eip155:8453","vault_id":"cm7oxq1el000e11o8iwp7d0d0","vault_address":"0x1234567890abcdef1234567890abcdef12345678","asset":"usdc","asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","decimals":6,"amount":"1","raw_amount":"1000000","failure_reason":{"message":"Transaction simulation reverted"},"steps":[{"type":"evm_user_operation","status":"rejected","caip2":"eip155:8453","user_operation_hash":null,"bundle_transaction_hash":null,"entrypoint_version":"0.7","failure_reason":{"message":"Transaction simulation reverted"}}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.earn_deposit.failed":{"post":{"summary":"Earn deposit failed","description":"Fired when a wallet action fails after at least one transaction was broadcast. There may be onchain state changes; inspect the steps for details.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionEarnDepositFailedWebhookPayload"},"examples":{"wallet-action-earn_deposit-failed":{"value":{"type":"wallet_action.earn_deposit.failed","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"earn_deposit","status":"failed","created_at":"2026-06-15T15:24:00.000Z","failed_at":"2026-06-15T15:24:12.000Z","caip2":"eip155:8453","vault_id":"cm7oxq1el000e11o8iwp7d0d0","vault_address":"0x1234567890abcdef1234567890abcdef12345678","asset":"usdc","asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","decimals":6,"amount":"1","raw_amount":"1000000","failure_reason":{"message":"Transaction execution reverted"},"steps":[{"type":"evm_user_operation","status":"reverted","caip2":"eip155:8453","user_operation_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c","bundle_transaction_hash":"0x3557f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c","entrypoint_version":"0.7","failure_reason":{"message":"Transaction execution reverted"}}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.earn_withdraw.created":{"post":{"summary":"Earn withdraw created","description":"Fired when a wallet action is created and execution has begun. The action is now pending.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionEarnWithdrawCreatedWebhookPayload"},"examples":{"wallet-action-earn_withdraw-created":{"value":{"type":"wallet_action.earn_withdraw.created","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"earn_withdraw","status":"pending","created_at":"2026-06-15T15:24:00.000Z","caip2":"eip155:8453","vault_id":"cm7oxq1el000e11o8iwp7d0d0","vault_address":"0x1234567890abcdef1234567890abcdef12345678","asset":"usdc","asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","decimals":6,"amount":"1","raw_amount":"1000000"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.earn_withdraw.succeeded":{"post":{"summary":"Earn withdraw succeeded","description":"Fired when all steps of a wallet action have been confirmed onchain. The action is complete.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionEarnWithdrawSucceededWebhookPayload"},"examples":{"wallet-action-earn_withdraw-succeeded":{"value":{"type":"wallet_action.earn_withdraw.succeeded","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"earn_withdraw","status":"succeeded","created_at":"2026-06-15T15:24:00.000Z","completed_at":"2026-06-15T15:24:12.000Z","caip2":"eip155:8453","vault_id":"cm7oxq1el000e11o8iwp7d0d0","vault_address":"0x1234567890abcdef1234567890abcdef12345678","asset":"usdc","asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","decimals":6,"amount":"1","raw_amount":"1000000","share_amount":"999500","steps":[{"type":"evm_transaction","status":"confirmed","caip2":"eip155:8453","transaction_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c"}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.earn_withdraw.rejected":{"post":{"summary":"Earn withdraw rejected","description":"Fired when a wallet action fails before any onchain effects (e.g. policy rejection, simulation failure). Safe to retry.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionEarnWithdrawRejectedWebhookPayload"},"examples":{"wallet-action-earn_withdraw-rejected":{"value":{"type":"wallet_action.earn_withdraw.rejected","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"earn_withdraw","status":"rejected","created_at":"2026-06-15T15:24:00.000Z","rejected_at":"2026-06-15T15:24:12.000Z","caip2":"eip155:8453","vault_id":"cm7oxq1el000e11o8iwp7d0d0","vault_address":"0x1234567890abcdef1234567890abcdef12345678","asset":"usdc","asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","decimals":6,"amount":"1","raw_amount":"1000000","failure_reason":{"message":"Transaction simulation reverted"},"steps":[{"type":"evm_transaction","status":"rejected","caip2":"eip155:8453","transaction_hash":null,"failure_reason":{"message":"Transaction simulation reverted"}}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.earn_withdraw.failed":{"post":{"summary":"Earn withdraw failed","description":"Fired when a wallet action fails after at least one transaction was broadcast. There may be onchain state changes; inspect the steps for details.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionEarnWithdrawFailedWebhookPayload"},"examples":{"wallet-action-earn_withdraw-failed":{"value":{"type":"wallet_action.earn_withdraw.failed","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"earn_withdraw","status":"failed","created_at":"2026-06-15T15:24:00.000Z","failed_at":"2026-06-15T15:24:12.000Z","caip2":"eip155:8453","vault_id":"cm7oxq1el000e11o8iwp7d0d0","vault_address":"0x1234567890abcdef1234567890abcdef12345678","asset":"usdc","asset_address":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","decimals":6,"amount":"1","raw_amount":"1000000","failure_reason":{"message":"Transaction execution reverted"},"steps":[{"type":"evm_transaction","status":"reverted","caip2":"eip155:8453","transaction_hash":"0x2222222222222222222222222222222222222222222222222222222222222222","failure_reason":{"message":"Transaction execution reverted"}}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.earn_incentive_claim.created":{"post":{"summary":"Earn incentive claim created","description":"Fired when a wallet action is created and execution has begun. The action is now pending.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionEarnIncentiveClaimCreatedWebhookPayload"},"examples":{"wallet-action-earn_incentive_claim-created":{"value":{"type":"wallet_action.earn_incentive_claim.created","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"earn_incentive_claim","status":"pending","created_at":"2026-06-15T15:24:00.000Z","chain":"base","rewards":null}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.earn_incentive_claim.succeeded":{"post":{"summary":"Earn incentive claim succeeded","description":"Fired when all steps of a wallet action have been confirmed onchain. The action is complete.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionEarnIncentiveClaimSucceededWebhookPayload"},"examples":{"wallet-action-earn_incentive_claim-succeeded":{"value":{"type":"wallet_action.earn_incentive_claim.succeeded","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"earn_incentive_claim","status":"succeeded","created_at":"2026-06-15T15:24:00.000Z","completed_at":"2026-06-15T15:24:12.000Z","chain":"base","rewards":[{"token_address":"0x58D97B57BB95320F9a05dC918Aef65434969c2B2","token_symbol":"MORPHO","token_decimals":18,"amount":"1000000000000000000"}],"steps":[{"type":"evm_transaction","status":"confirmed","caip2":"eip155:8453","transaction_hash":"0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c"}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.earn_incentive_claim.rejected":{"post":{"summary":"Earn incentive claim rejected","description":"Fired when a wallet action fails before any onchain effects (e.g. policy rejection, simulation failure). Safe to retry.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionEarnIncentiveClaimRejectedWebhookPayload"},"examples":{"wallet-action-earn_incentive_claim-rejected":{"value":{"type":"wallet_action.earn_incentive_claim.rejected","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"earn_incentive_claim","status":"rejected","created_at":"2026-06-15T15:24:00.000Z","rejected_at":"2026-06-15T15:24:12.000Z","chain":"base","rewards":null,"failure_reason":{"message":"No claimable rewards found"},"steps":[{"type":"evm_transaction","status":"rejected","caip2":"eip155:8453","transaction_hash":null,"failure_reason":{"message":"No claimable rewards found"}}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"wallet_action.earn_incentive_claim.failed":{"post":{"summary":"Earn incentive claim failed","description":"Fired when a wallet action fails after at least one transaction was broadcast. There may be onchain state changes; inspect the steps for details.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletActionEarnIncentiveClaimFailedWebhookPayload"},"examples":{"wallet-action-earn_incentive_claim-failed":{"value":{"type":"wallet_action.earn_incentive_claim.failed","wallet_action_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","wallet_id":"fmfdj6yqly31huorjqzq38zc","action_type":"earn_incentive_claim","status":"failed","created_at":"2026-06-15T15:24:00.000Z","failed_at":"2026-06-15T15:24:12.000Z","chain":"base","rewards":[{"token_address":"0x58D97B57BB95320F9a05dC918Aef65434969c2B2","token_symbol":"MORPHO","token_decimals":18,"amount":"1000000000000000000"}],"failure_reason":{"message":"Transaction execution reverted"},"steps":[{"type":"evm_transaction","status":"reverted","caip2":"eip155:8453","transaction_hash":"0x2222222222222222222222222222222222222222222222222222222222222222","failure_reason":{"message":"Transaction execution reverted"}}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"mfa.enabled":{"post":{"summary":"MFA enabled","description":"Fired when a user enables multi-factor authentication.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaEnabledWebhookPayload"},"examples":{"mfa-enabled":{"value":{"type":"mfa.enabled","user_id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","method":"totp"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"mfa.disabled":{"post":{"summary":"MFA disabled","description":"Fired when a user disables multi-factor authentication.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MfaDisabledWebhookPayload"},"examples":{"mfa-disabled":{"value":{"type":"mfa.disabled","user_id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","method":"sms"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"intent.created":{"post":{"summary":"Intent created","description":"Fired when a new intent is created.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntentCreatedWebhookPayload"},"examples":{"intent-creation":{"value":{"type":"intent.created","intent_id":"cm5abc123def456ghi789jkl","intent_type":"WALLET","status":"pending","created_by_id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_by_display_name":"alice@example.com","resource_id":"fmfdj6yqly31huorjqzq38zc","created_at":1772193600000,"expires_at":1772452800000,"authorization_details":[{"threshold":2,"display_name":"Admin Key Quorum","members":[{"type":"user","user_id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","signed_at":null},{"type":"user","user_id":"did:privy:xyzabc123def456ghi789","signed_at":1709128800000}]}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"intent.authorized":{"post":{"summary":"Intent authorized","description":"Fired when a user authorizes (signs) an intent.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntentAuthorizedWebhookPayload"},"examples":{"intent-authorized":{"value":{"type":"intent.authorized","intent_id":"cm5abc123def456ghi789jkl","intent_type":"WALLET","status":"pending","created_by_id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_by_display_name":"alice@example.com","resource_id":"fmfdj6yqly31huorjqzq38zc","created_at":1772193600000,"expires_at":1772452800000,"authorized_at":1772202600000,"member":{"type":"user","user_id":"did:privy:xyzabc123def456ghi789","signed_at":1709042400000}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"intent.rejected":{"post":{"summary":"Intent rejected","description":"Fired when an intent is rejected.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntentRejectedWebhookPayload"},"examples":{"intent-rejected":{"value":{"type":"intent.rejected","intent_id":"cm5abc123def456ghi789jkl","intent_type":"WALLET","status":"rejected","created_by_id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_by_display_name":"alice@example.com","created_at":1772193600000,"expires_at":1772452800000,"rejected_at":1772200000000}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"intent.executed":{"post":{"summary":"Intent executed","description":"Fired when an intent is successfully executed (2xx response from enclave).","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntentExecutedWebhookPayload"},"examples":{"intent-executed":{"value":{"type":"intent.executed","intent_id":"cm5abc123def456ghi789jkl","intent_type":"WALLET","status":"executed","created_by_id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_by_display_name":"alice@example.com","created_at":1772193600000,"expires_at":1772452800000,"action_result":{"status_code":200,"executed_at":1772210000000,"authorized_by_id":"kq_abc123def456","authorized_by_display_name":"Admin Key Quorum","response_body":{"id":"wallet_123","chain_type":"ethereum"}}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"intent.failed":{"post":{"summary":"Intent failed","description":"Fired when an intent execution fails (non-2xx response from enclave).","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntentFailedWebhookPayload"},"examples":{"intent-failed":{"value":{"type":"intent.failed","intent_id":"cm5abc123def456ghi789jkl","intent_type":"RPC","status":"failed","created_by_id":"did:privy:cfbsvtqo2c22202mo08847jdux2z","created_by_display_name":"alice@example.com","created_at":1772193600000,"expires_at":1772452800000,"action_result":{"status_code":500,"executed_at":1772210000000,"authorized_by_id":"kq_abc123def456","authorized_by_display_name":"Admin Key Quorum","response_body":{"error":"Transaction reverted"}}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"yield.deposit.confirmed":{"post":{"summary":"Yield deposit confirmed","description":"Fired when a deposit into an ERC-4626 yield vault is confirmed on-chain.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/YieldDepositConfirmedWebhookPayload"},"examples":{"yield-deposit-confirmed":{"value":{"type":"yield.deposit.confirmed","vault_address":"0x1234567890abcdef1234567890abcdef12345678","caip2":"eip155:1","sender":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","owner":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","assets":"1000000000000000000","shares":"950000000000000000"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"yield.withdraw.confirmed":{"post":{"summary":"Yield withdraw confirmed","description":"Fired when a withdrawal from an ERC-4626 yield vault is confirmed on-chain.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/YieldWithdrawConfirmedWebhookPayload"},"examples":{"yield-withdraw-confirmed":{"value":{"type":"yield.withdraw.confirmed","vault_address":"0x1234567890abcdef1234567890abcdef12345678","caip2":"eip155:1","sender":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","owner":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","receiver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","assets":"1000000000000000000","shares":"950000000000000000"}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}},"yield.claim.confirmed":{"post":{"summary":"Yield claim confirmed","description":"Fired when a yield reward claim transaction is confirmed on-chain.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/YieldClaimConfirmedWebhookPayload"},"examples":{"yield-claim-confirmed":{"value":{"type":"yield.claim.confirmed","wallet_id":"fmfdj6yqly31huorjqzq38zc","caip2":"eip155:1","transaction_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","rewards":[{"token_address":"0x1234567890abcdef1234567890abcdef12345678","token_symbol":"MORPHO","amount":"115631364898103632676"}]}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the webhook was received successfully."}}}}}}