{"openapi":"3.1.0","info":{"version":"0.0.1","title":"Privy API","contact":{"email":"support@privy.io"}},"tags":[{"name":"Shared","description":"Common schemas shared across resources"},{"name":"Wallets","description":"Operations related to wallets"},{"name":"Policies","description":"Operations related to policies"},{"name":"Condition Sets","description":"Operations related to condition sets"},{"name":"Transactions","description":"Operations related to transactions"},{"name":"Key quorums","description":"Operations related to key quorums"},{"name":"Aggregations","description":"Operations related to aggregations for tracking and measuring metrics"},{"name":"Users","description":"Operations related to users"},{"name":"User signers","description":"Operations related to user signers"},{"name":"Fiat","description":"Operations related to fiat onramping and offramping"},{"name":"Kraken Embed","description":"Operations for Kraken Embed integration, including quotes, trades, user management, and portfolio operations"},{"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)"},{"name":"Apps","description":"Operations related to app settings and allowlist management"},{"name":"Accounts","description":"Operations related to asset accounts"},{"name":"Swaps","description":"Operations for swapping tokens within wallets"},{"name":"Wallet Actions","description":"Operations related to wallet actions"}],"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":{"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","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","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","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"],"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":{"allOf":[{"$ref":"#/components/schemas/KeyQuorumId"},{"type":["string","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"},"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"],"description":"The chain type of the wallet to import. Currently supports `ethereum` and `solana`.","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"},"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","description":"A hex-encoded string prefixed with '0x'.","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"},"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","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"},"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"},"UnsignedEthereumTransaction":{"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 Ethereum transaction object.","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"},"EthereumPersonalSignRpcInputParams":{"type":"object","properties":{"message":{"type":"string"},"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"},"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},"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"},"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"},"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"},"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"},"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},"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"},"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"]}},"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"},"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."},"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},"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."}]}},"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":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"},"additional_signers":{"$ref":"#/components/schemas/AdditionalSignerInput"}},"description":"Request body for updating a wallet.","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}},{"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/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","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/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","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"},"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"},"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"},"WalletActionStepType":{"type":"string","enum":["evm_transaction","evm_user_operation","svm_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"},"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"},"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","finalized","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"},"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"},"WalletActionStep":{"oneOf":[{"$ref":"#/components/schemas/EVMTransactionWalletActionStep"},{"$ref":"#/components/schemas/EVMUserOperationWalletActionStep"},{"$ref":"#/components/schemas/SVMTransactionWalletActionStep"}],"discriminator":{"propertyName":"type","mapping":{"evm_transaction":"#/components/schemas/EVMTransactionWalletActionStep","evm_user_operation":"#/components/schemas/EVMUserOperationWalletActionStep","svm_transaction":"#/components/schemas/SVMTransactionWalletActionStep"}},"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."}},"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"]},"source_asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\")."},"source_amount":{"type":"string","description":"Decimal amount as the user provided (e.g. \"1.5\")."},"source_chain":{"type":"string","description":"Chain name (e.g. \"base\", \"ethereum\")."},"destination_address":{"type":"string","description":"Recipient address."}},"required":["id","status","wallet_id","created_at","type","source_asset","source_amount","source_chain","destination_address"],"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\")."},"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"},"TokenTransferSource":{"type":"object","properties":{"asset":{"type":"string","description":"The asset to transfer. Supported: 'usdc', 'usdb', 'usdt' (stablecoins), 'eth' (native Ethereum), 'sol' (native Solana)."},"amount":{"type":"string","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). Not in the smallest on-chain unit (wei, lamports, etc.)."},"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."}},"required":["asset","amount","chain"],"additionalProperties":false,"description":"The source asset, amount, and chain for a token transfer.","title":"TokenTransferSource","example":{"asset":"usdc","amount":"10.5","chain":"base"},"x-stainless-model":"wallets.token_transfer_source"},"TokenTransferDestination":{"type":"object","properties":{"address":{"type":"string","description":"Recipient address (hex for EVM, base58 for Solana)"}},"required":["address"],"additionalProperties":false,"description":"The destination address for a token transfer.","title":"TokenTransferDestination","example":{"address":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2"},"x-stainless-model":"wallets.token_transfer_destination"},"TransferRequestBody":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/TokenTransferSource"},"destination":{"$ref":"#/components/schemas/TokenTransferDestination"}},"required":["source","destination"],"additionalProperties":false,"description":"Request body for initiating a sponsored token transfer from an embedded wallet.","title":"TransferRequestBody","example":{"source":{"asset":"usdc","amount":"10.5","chain":"base"},"destination":{"address":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2"}},"x-stainless-model":"wallets.transfer_request_body"},"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":{"type":"object","properties":{"public_key":{"type":"string"},"display_name":{"type":["string","null"],"maxLength":50}},"required":["public_key","display_name"]}},"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."},"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."},"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."}},"description":"Request input for creating a key quorum.","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.","title":"KeyQuorumUpdateRequestBody","x-stainless-model":"key_quorums.key_quorum_update_request_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","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"},"SmartWalletType":{"type":"string","enum":["safe","kernel","light_account","biconomy","coinbase_smart_wallet","thirdweb"],"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"},"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"},"custom_oauth_providers":{"type":"array","items":{"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"]}},"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"},"custom_jwt_auth":{"type":"boolean"},"disable_plus_emails":{"type":"boolean"},"allowlist_enabled":{"type":"boolean"},"allowlist_config":{"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"]},"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":{"type":["string","null"],"enum":["turnstile","hcaptcha"]},"twitter_oauth_on_mobile_enabled":{"type":"boolean"},"mfa_methods":{"type":"array","items":{"type":"string","enum":["sms","totp","passkey"]}},"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"}},"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","custom_oauth_providers","farcaster_auth","passkey_auth","passkeys_for_signup_enabled","telegram_auth","guest_auth","solana_wallet_auth","custom_jwt_auth","disable_plus_emails","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"],"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"},"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"},"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":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"}},"required":["name"],"additionalProperties":false,"description":"Request body for creating a condition set.","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":{"allOf":[{"$ref":"#/components/schemas/KeyQuorumId"},{"description":"The key quorum ID of the owner of the condition set."}]},"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":{"$ref":"#/components/schemas/OwnerInput"},"owner_id":{"$ref":"#/components/schemas/OwnerIdInput"}},"additionalProperties":false,"description":"Request body for updating a condition set.","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"},"GasSponsorshipConfigurationInput":{"type":"object","properties":{"sponsorship_enabled":{"type":"boolean"},"configured_networks":{"type":"array","items":{"$ref":"#/components/schemas/CAIP2"}},"require_app_secret":{"type":"boolean"}},"description":"Input for configuring gas sponsorship settings for an app.","title":"GasSponsorshipConfigurationInput","x-stainless-model":"apps.gas_sponsorship_configuration_input"},"GasSponsorshipConfiguration":{"type":"object","properties":{"sponsorship_enabled":{"type":"boolean"},"configured_networks":{"type":"array","items":{"$ref":"#/components/schemas/CAIP2"}},"require_app_secret":{"type":"boolean"}},"required":["sponsorship_enabled","configured_networks","require_app_secret"],"description":"Gas sponsorship configuration for an app.","title":"GasSponsorshipConfiguration","x-stainless-model":"apps.gas_sponsorship_configuration"},"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":"","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"},"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"},"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"},"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"},"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":"client_auth.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":"client_auth.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":"client_auth.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":"client_auth.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":"client_auth.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":"client_auth.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":"client_auth.fiat_currency_code"},"CryptoCurrencyCode":{"type":"string","pattern":"^[A-Z0-9]{2,10}$","description":"Cryptocurrency symbol. Uppercase alphanumeric, 2-10 characters.","title":"CryptoCurrencyCode","example":"USDC","x-stainless-model":"client_auth.crypto_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":"client_auth.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":"client_auth.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":"client_auth.fiat_onramp_source"},"FiatOnrampDestination":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/CryptoCurrencyCode"},"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":"USDC","chain":"eip155:42161","address":"0x1234567890abcdef1234567890abcdef12345678"},"x-stainless-model":"client_auth.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":"client_auth.fiat_onramp_environment"},"FiatOnrampProvider":{"type":"string","enum":["meld","meld-sandbox","moonpay","moonpay-sandbox","coinbase","coinbase-sandbox"],"description":"The fiat onramp provider to use.","title":"FiatOnrampProvider","example":"meld","x-stainless-model":"client_auth.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":"USDC","chain":"eip155:42161","address":"0x1234567890abcdef1234567890abcdef12345678"},"environment":"production"},"x-stainless-model":"client_auth.get_fiat_onramp_quotes_input"},"FiatOnrampQuote":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/FiatOnrampProvider"},"sub_provider":{"type":["string","null"]},"payment_method":{"type":"string"},"source_currency_code":{"type":["string","null"]},"source_amount":{"type":["number","null"]},"destination_currency_code":{"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":"CREDIT_DEBIT_CARD","source_currency_code":"USD","source_amount":100,"destination_currency_code":"USDC"},"x-stainless-model":"client_auth.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":"client_auth.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"}}},"required":["quotes"],"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"}]},"x-stainless-model":"client_auth.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":"USDC","chain":"eip155:42161","address":"0x1234567890abcdef1234567890abcdef12345678"},"provider":"meld","sub_provider":"TRANSAK","payment_method":"CREDIT_DEBIT_CARD"},"x-stainless-model":"client_auth.get_fiat_onramp_url_input"},"GetFiatOnrampUrlResponse":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"session_id":{"type":"string"}},"required":["url","session_id"],"description":"The response containing a fiat onramp provider session URL.","title":"GetFiatOnrampUrlResponse","example":{"url":"https://meld.io/widget/session/abc123","session_id":"cm8g7t2kw0001qjpfxhz6dn4r"},"x-stainless-model":"client_auth.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":"client_auth.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":"client_auth.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":"client_auth.get_fiat_onramp_transaction_status_response"},"BridgeDestinationAsset":{"type":"string","enum":["usdb","usdc","usdt","dai","pyusd","eurc"],"description":"","title":"BridgeDestinationAsset","x-stainless-model":"client_auth.bridge_destination_asset"},"BridgeSourceAsset":{"type":"string","enum":["usd","eur","mxn","brl","gbp"],"description":"","title":"BridgeSourceAsset","x-stainless-model":"client_auth.bridge_source_asset"},"BridgeFiatVirtualAccountSource":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/BridgeSourceAsset"}},"required":["asset"],"description":"","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":"","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"},"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"},"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"},"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":{"type":"string","enum":["transaction","plain"]}},"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":{"type":"string","enum":["transaction","plain"]},"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":{"type":"string","enum":["transaction","plain"]},"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":{"type":"string","enum":["transaction","plain"]}},"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"},"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"],"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"},"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 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"},"EthereumTypedDataMessageCondition":{"type":"object","properties":{"field_source":{"type":"string","enum":["ethereum_typed_data_message"]},"field":{"type":"string","title":"EthereumTypedDataMessageConditionField"},"typed_data":{"type":"object","properties":{"types":{"$ref":"#/components/schemas/TypedDataTypesInputParams"},"primary_type":{"type":"string"}},"required":["types","primary_type"]},"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"},"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/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/AggregationCondition"}],"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","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","reference":"#/components/schemas/AggregationCondition"}},"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","eth_sign7702Authorization","wallet_sendCalls","signTransaction","signAndSendTransaction","exportPrivateKey","exportSeedPhrase","signTransactionBytes","*"],"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":{"allOf":[{"$ref":"#/components/schemas/KeyQuorumId"},{"type":["string","null"],"description":"The key quorum ID of the owner of the policy."}]},"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"},"AggregationWindow":{"oneOf":[{"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":"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","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"},"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":{"type":"object","properties":{},"default":{},"x-stainless-empty-object":true}},"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"},"IntentAuthorizationKeyQuorumMember":{"oneOf":[{"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"],"title":"User member"},{"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"],"title":"Key member"}],"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"},"IntentAuthorizationMember":{"oneOf":[{"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"],"title":"User member"},{"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"],"title":"Key member"},{"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"],"title":"Key quorum member"}],"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"},"RuleIntentResponse":{"allOf":[{"$ref":"#/components/schemas/BaseIntentResponse"},{"type":"object","properties":{"intent_type":{"type":"string","enum":["RULE"]},"request_details":{"$ref":"#/components/schemas/RuleIntentRequestDetails"},"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"}]},"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 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"},"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":{"type":"string","enum":["sms","totp","passkey"],"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":{"type":"string","enum":["sms","totp","passkey"],"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/UnsignedEthereumTransaction"},{"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"},"UserTransferredAccountWebhookPayload":{"type":"object","properties":{"type":{"type":"string","enum":["user.transferred_account"],"description":"The type of webhook event."},"fromUser":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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 on-chain confirmation."}},"required":["type","wallet_action_id","wallet_id","action_type","status","caip2","input_token","output_token","input_amount"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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 on-chain confirmation."},"output_amount":{"type":["string","null"],"description":"Amount of output token received, in base units. Populated after on-chain confirmation."},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action, including transaction hashes."}},"required":["type","wallet_action_id","wallet_id","action_type","status","caip2","input_token","output_token","input_amount","output_amount","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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 on-chain confirmation."},"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."}},"required":["type","wallet_action_id","wallet_id","action_type","status","caip2","input_token","output_token","input_amount","failure_reason","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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 on-chain confirmation."},"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."}},"required":["type","wallet_action_id","wallet_id","action_type","status","caip2","input_token","output_token","input_amount","failure_reason","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"source_asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\")."},"source_amount":{"type":"string","description":"Decimal amount as provided by the user (e.g. \"1.5\")."},"source_chain":{"type":"string","description":"Chain name (e.g. \"base\", \"ethereum\")."},"destination_address":{"type":"string","description":"Recipient address."}},"required":["type","wallet_action_id","wallet_id","action_type","status","source_asset","source_amount","source_chain","destination_address"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"source_asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\")."},"source_amount":{"type":"string","description":"Decimal amount as provided by the user (e.g. \"1.5\")."},"source_chain":{"type":"string","description":"Chain name (e.g. \"base\", \"ethereum\")."},"destination_address":{"type":"string","description":"Recipient address."},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action, including transaction hashes."}},"required":["type","wallet_action_id","wallet_id","action_type","status","source_asset","source_amount","source_chain","destination_address","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"source_asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\")."},"source_amount":{"type":"string","description":"Decimal amount as provided by the user (e.g. \"1.5\")."},"source_chain":{"type":"string","description":"Chain name (e.g. \"base\", \"ethereum\")."},"destination_address":{"type":"string","description":"Recipient address."},"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."}},"required":["type","wallet_action_id","wallet_id","action_type","status","source_asset","source_amount","source_chain","destination_address","failure_reason","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"source_asset":{"type":"string","description":"Asset identifier (e.g. \"usdc\", \"eth\")."},"source_amount":{"type":"string","description":"Decimal amount as provided by the user (e.g. \"1.5\")."},"source_chain":{"type":"string","description":"Chain name (e.g. \"base\", \"ethereum\")."},"destination_address":{"type":"string","description":"Recipient address."},"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."}},"required":["type","wallet_action_id","wallet_id","action_type","status","source_asset","source_amount","source_chain","destination_address","failure_reason","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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\")."}},"required":["type","wallet_action_id","wallet_id","action_type","status","caip2","vault_id","vault_address","asset_address","raw_amount"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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."},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action, including transaction hashes."}},"required":["type","wallet_action_id","wallet_id","action_type","status","caip2","vault_id","vault_address","asset_address","raw_amount","share_amount","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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\")."},"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."}},"required":["type","wallet_action_id","wallet_id","action_type","status","caip2","vault_id","vault_address","asset_address","raw_amount","failure_reason","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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\")."},"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."}},"required":["type","wallet_action_id","wallet_id","action_type","status","caip2","vault_id","vault_address","asset_address","raw_amount","failure_reason","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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\")."}},"required":["type","wallet_action_id","wallet_id","action_type","status","caip2","vault_id","vault_address","asset_address","raw_amount"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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."},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action, including transaction hashes."}},"required":["type","wallet_action_id","wallet_id","action_type","status","caip2","vault_id","vault_address","asset_address","raw_amount","share_amount","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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\")."},"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."}},"required":["type","wallet_action_id","wallet_id","action_type","status","caip2","vault_id","vault_address","asset_address","raw_amount","failure_reason","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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\")."},"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."}},"required":["type","wallet_action_id","wallet_id","action_type","status","caip2","vault_id","vault_address","asset_address","raw_amount","failure_reason","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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":["type","wallet_action_id","wallet_id","action_type","status","chain","rewards"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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."},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WalletActionStep"},"description":"The steps of the wallet action, including transaction hashes."}},"required":["type","wallet_action_id","wallet_id","action_type","status","chain","rewards","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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."},"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."}},"required":["type","wallet_action_id","wallet_id","action_type","status","chain","rewards","failure_reason","steps"],"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"},"status":{"allOf":[{"$ref":"#/components/schemas/WalletActionStatus"},{"description":"The status of the wallet action."}]},"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."},"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."}},"required":["type","wallet_action_id","wallet_id","action_type","status","chain","rewards","failure_reason","steps"],"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"},"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"},"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"}],"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":{"type":"object","properties":{"number":{"type":"number","description":"The block number."},"timestamp":{"type":"number","description":"The block timestamp."}},"required":["number","timestamp"]},"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":{"type":"object","properties":{"number":{"type":"number","description":"The block number."},"timestamp":{"type":"number","description":"The block timestamp."}},"required":["number","timestamp"]},"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"},"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"},"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":{"type":"object","properties":{"token_address":{"type":"string"},"token_symbol":{"type":"string"},"amount":{"type":"string"}},"required":["token_address","token_symbol","amount"]}}},"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/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/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"},"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"},"CreateAccountInput":{"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.","title":"CreateAccountInput","x-stainless-model":"accounts.create_account_input"},"UpdateAccountInput":{"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.","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"},"AccountBalanceParams":{"type":"object","properties":{"testnet_mode":{"type":"string","enum":["true","false"],"description":"When set to true, returns balances from testnet chains instead of mainnets."}},"description":"Query parameters for the account balance endpoint.","title":"AccountBalanceParams","x-stainless-model":"accounts.account_balance_params"},"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."}},"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"},"EthereumVaultPosition":{"type":"object","properties":{"asset":{"type":"object","properties":{"address":{"type":"string","description":"Token contract address."},"symbol":{"type":"string","description":"Token symbol (e.g., \"USDC\")."}},"required":["address","symbol"]},"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":{"type":"object","properties":{"address":{"type":"string","description":"Token contract address."},"symbol":{"type":"string","description":"Token symbol (e.g., \"USDC\")."}},"required":["address","symbol"]},"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"},"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"},"SwapAmountType":{"type":"string","enum":["exact_input","exact_output"],"description":"Whether the swap amount refers to the input token or output token.","title":"SwapAmountType","x-stainless-model":"swaps.swap_amount_type"},"SwapQuoteRequestBody":{"type":"object","properties":{"caip2":{"type":"string","description":"Chain identifier (e.g., \"eip155:1\" for Ethereum mainnet)."},"input_token":{"type":"string","description":"Token address to sell, or \"native\" for the chain's native token."},"output_token":{"type":"string","description":"Token address to buy, or \"native\" for the chain's native token."},"amount":{"type":"string","description":"Amount in base units (e.g., wei for ETH)."},"amount_type":{"allOf":[{"$ref":"#/components/schemas/SwapAmountType"},{"default":"exact_input","description":"Whether the amount refers to the input token (exact_input) or output token (exact_output)."}]},"slippage_bps":{"type":"number","description":"Maximum slippage tolerance in basis points (e.g., 50 for 0.5%). If omitted, auto-slippage is used."}},"required":["caip2","input_token","output_token","amount"],"additionalProperties":false,"description":"Input for requesting a token swap quote.","title":"SwapQuoteRequestBody","example":{"caip2":"eip155:1","input_token":"native","output_token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","amount":"1000000000000000000","amount_type":"exact_input"},"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."}},"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":{"caip2":{"type":"string","description":"Chain identifier (e.g., \"eip155:1\" for Ethereum mainnet)."},"input_token":{"type":"string","description":"Token address to sell, or \"native\" for the chain's native token."},"output_token":{"type":"string","description":"Token address to buy, or \"native\" for the chain's native token."},"amount":{"type":"string","description":"Amount in base units (e.g., wei for ETH)."},"amount_type":{"allOf":[{"$ref":"#/components/schemas/SwapAmountType"},{"default":"exact_input","description":"Whether the amount refers to the input token (exact_input) or output token (exact_output)."}]},"slippage_bps":{"type":"number","description":"Maximum slippage tolerance in basis points (e.g., 50 for 0.5%)."},"recipient":{"type":"string","description":"Address to receive the output tokens. Defaults to the wallet address if not specified."}},"required":["caip2","input_token","output_token","amount"],"additionalProperties":false,"description":"Input for executing a token swap.","title":"SwapRequestBody","example":{"caip2":"eip155:1","input_token":"native","output_token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","amount":"1000000000000000000","amount_type":"exact_input","slippage_bps":50},"x-stainless-model":"swaps.swap_request_body"},"WalletEthereumAsset":{"type":"string","enum":["usdc","usdc.e","eth","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"},"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","base","tempo","linea","optimism","polygon","solana","zksync_era","sepolia","arbitrum_sepolia","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","base","tempo","linea","optimism","polygon","solana","zksync_era","sepolia","arbitrum_sepolia","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"},"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"},"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"},"KrakenEmbedGetPortfolioSummaryResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"string"}},"error":{"type":"array","items":{"type":"string"}},"result":{"type":["object","null"],"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}},"required":["result"],"additionalProperties":false}},"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"},"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":{"type":"object","properties":{"type":{"type":"string","enum":["simple_order_quote","simple_order_quote_failed"]},"ref_id":{"type":"string","maxLength":64}},"required":["type","ref_id"],"additionalProperties":false}}},"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"},"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"}}},"required":["connections"],"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"}},"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":"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":"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}]},"required":false,"name":"asset","in":"query"},{"schema":{"anyOf":[{"type":"string","enum":["ethereum","arbitrum","base","tempo","linea","optimism","polygon","solana","zksync_era","sepolia","arbitrum_sepolia","base_sepolia","linea_testnet","optimism_sepolia","polygon_amoy","solana_devnet","solana_testnet"]},{"type":"array","items":{"type":"string","enum":["ethereum","arbitrum","base","tempo","linea","optimism","polygon","solana","zksync_era","sepolia","arbitrum_sepolia","base_sepolia","linea_testnet","optimism_sepolia","polygon_amoy","solana_devnet","solana_testnet"]},"maxItems":10}]},"required":false,"name":"chain","in":"query"},{"schema":{"type":"string","enum":["usd","eur"]},"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\")."},"required":false,"name":"token","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","base","tempo","linea","optimism","polygon","solana","zksync_era","sepolia","arbitrum_sepolia","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":4}]},"required":true,"name":"asset","in":"query"},{"schema":{"type":"string"},"required":false,"name":"tx_hash","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":"Obtain a session key to enable wallet access.","description":"Obtain a session key to enable wallet 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":{"anyOf":[{"type":"object","properties":{"encrypted_authorization_key":{"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":"The encrypted authorization key data."},"expires_at":{"type":"number","description":"The expiration time of the authorization key in seconds since the epoch."},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/Wallet"}}},"required":["encrypted_authorization_key","expires_at","wallets"],"title":"With encryption","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},{"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}]}},{"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 seconds since the epoch."},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/Wallet"}}},"required":["authorization_key","expires_at","wallets"],"title":"Without encryption"}]}}}}}}},"/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/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"}}}}}}},"/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 an associated recovery user.","description":"Create wallets with an associated recovery user.","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":{"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"],"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},{"id":"sb4y18l68xze8gfszafmyv3q","address":"9wtGmqMamnKfz49XBwnJASbjcVnnKnT78qKopCL54TAk","chain_type":"solana","policy_ids":[],"additional_signers":[],"created_at":1744300912644,"owner_id":"lzjb3xnjk2ntod3w1hgwa358","exported_at":null,"imported_at":null}],"recovery_user_id":"so6bsadjfi3ihhkyt9hlqv6x"}}}}}}}},"/v1/user_signers/authenticate":{"post":{"tags":["Embedded wallets"],"operationId":"authenticateUserSigner","summary":"Obtain a user session signer to enable wallet access.","description":"Obtain a user session signer to enable wallet access.","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":{"anyOf":[{"type":"object","properties":{"encrypted_authorization_key":{"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":"The encrypted authorization key data."},"expires_at":{"type":"number","description":"The expiration time of the authorization key in seconds since the epoch."},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/Wallet"}}},"required":["encrypted_authorization_key","expires_at","wallets"],"title":"With encryption","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},{"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}]}},{"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 seconds since the epoch."},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/Wallet"}}},"required":["authorization_key","expires_at","wallets"],"title":"Without encryption"}],"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},{"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}]}}}}}}}},"/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":"createRpc","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":"createTransfer","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":"updateWallet","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":"updatePolicy","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":"createPolicyRule","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/RuleIntentResponse"}}}}}}},"/v1/intents/policies/{policy_id}/rules/{rule_id}":{"patch":{"tags":["Intents"],"operationId":"updatePolicyRule","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/RuleIntentResponse"}}}}}},"delete":{"tags":["Intents"],"operationId":"deletePolicyRule","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/RuleIntentResponse"}}}}}}},"/v1/intents/key_quorums/{key_quorum_id}":{"patch":{"tags":["Intents"],"operationId":"updateKeyQuorum","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/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/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":{"type":"object","properties":{"first_name":{"type":"string"},"middle_name":{"type":["string","null"]},"last_name":{"type":"string"}},"required":["first_name","last_name"],"additionalProperties":false},"date_of_birth":{"type":"string","format":"date"},"residence":{"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},"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":{"type":"object","properties":{"first_name":{"type":"string"},"middle_name":{"type":["string","null"]},"last_name":{"type":"string"}},"required":["first_name","last_name"],"additionalProperties":false},"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":["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"},"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":{"type":"object","properties":{"type":{"type":"string","enum":["simple_order_quote","simple_order_quote_failed"]},"ref_id":{"type":"string","maxLength":64}},"required":["type","ref_id"],"additionalProperties":false}},"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":["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"},"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":{"type":"object","properties":{"type":{"type":"string","enum":["simple_order_quote","simple_order_quote_failed"]},"ref_id":{"type":"string","maxLength":64}},"required":["type","ref_id"],"additionalProperties":false}},"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/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":"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":{"type":"string","enum":["true","false"],"description":"When set to true, returns balances from testnet chains instead of mainnets."},"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":{"caip2":"eip155:1","input_token":"native","output_token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","amount":"1000000000000000000","amount_type":"exact_input"}}}},"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":{"caip2":"eip155:1","input_token":"native","output_token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","amount":"1000000000000000000","amount_type":"exact_input","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/{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":{"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"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferRequestBody"},"example":{"source":{"asset":"usdc","amount":"10.5","chain":"base"},"destination":{"address":"0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2"}}}}},"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}/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"}],"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"}],"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"}],"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}}}}}}}},"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}}},"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}}},"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}}}}}}},"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}}},"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}}},"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}}}}}}},"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_action.swap.created":{"post":{"summary":"Wallet action 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","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":"Wallet action swap succeeded","description":"Fired when all steps of a wallet action have been confirmed on-chain. 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","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":"Wallet action swap rejected","description":"Fired when a wallet action fails before any on-chain 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","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":"Wallet action swap failed","description":"Fired when a wallet action fails after at least one transaction was broadcast. There may be on-chain 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","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":"Wallet action 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","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":"Wallet action transfer succeeded","description":"Fired when all steps of a wallet action have been confirmed on-chain. 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","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":"Wallet action transfer rejected","description":"Fired when a wallet action fails before any on-chain 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","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":"Wallet action transfer failed","description":"Fired when a wallet action fails after at least one transaction was broadcast. There may be on-chain 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","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":"Wallet action 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","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":"Wallet action earn_deposit succeeded","description":"Fired when all steps of a wallet action have been confirmed on-chain. 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","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":"Wallet action earn_deposit rejected","description":"Fired when a wallet action fails before any on-chain 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","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":"Wallet action earn_deposit failed","description":"Fired when a wallet action fails after at least one transaction was broadcast. There may be on-chain 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","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":"Wallet action 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","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":"Wallet action earn_withdraw succeeded","description":"Fired when all steps of a wallet action have been confirmed on-chain. 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","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":"Wallet action earn_withdraw rejected","description":"Fired when a wallet action fails before any on-chain 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","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":"Wallet action earn_withdraw failed","description":"Fired when a wallet action fails after at least one transaction was broadcast. There may be on-chain 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","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":"Wallet action 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","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":"Wallet action earn_incentive_claim succeeded","description":"Fired when all steps of a wallet action have been confirmed on-chain. 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","chain":"base","rewards":[{"token_address":"0x58D97B57BB95320F9a05dC918Aef65434969c2B2","token_symbol":"MORPHO","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":"Wallet action earn_incentive_claim rejected","description":"Fired when a wallet action fails before any on-chain 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","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":"Wallet action earn_incentive_claim failed","description":"Fired when a wallet action fails after at least one transaction was broadcast. There may be on-chain 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","chain":"base","rewards":[{"token_address":"0x58D97B57BB95320F9a05dC918Aef65434969c2B2","token_symbol":"MORPHO","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.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."}}}}}}