// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../core/resource'; import * as ClientAuthAPI from './client-auth'; import * as EmbeddedWalletsAPI from './embedded-wallets'; export class Apps extends APIResource {} /** * Confirmation response for deleting an allowlist entry. */ export interface AllowlistDeletionResponse { message: string; } /** * An allowlist entry for an app. */ export interface AllowlistEntry { id: string; acceptedAt: number | null; appId: string; type: string; value: string; } /** * The response for getting an app. */ export interface AppResponse { id: string; accent_color: string | null; allowed_domains: Array; allowed_native_app_ids: Array; allowed_native_app_url_schemes: Array; allowlist_config: AppResponse.AllowlistConfig; allowlist_enabled: boolean; apple_oauth: boolean; captcha_enabled: boolean; custom_api_url: string | null; custom_jwt_auth: boolean; custom_oauth_providers: Array; /** * Indicates that this response contains only publicly accessible data, not a * privileged resource */ data_classification: 'public'; disable_plus_emails: boolean; discord_oauth: boolean; email_auth: boolean; /** * Configuration for embedded wallets including the mode. */ embedded_wallet_config: EmbeddedWalletConfigSchema; enabled_captcha_provider: 'turnstile' | 'hcaptcha' | null; enforce_wallet_uis: boolean; farcaster_auth: boolean; farcaster_link_wallets_enabled: boolean; fiat_on_ramp_enabled: boolean; github_oauth: boolean; google_oauth: boolean; guest_auth: boolean; icon_url: string | null; instagram_oauth: boolean; legacy_wallet_ui_config: boolean; line_oauth: boolean; linkedin_oauth: boolean; logo_url: string | null; max_linked_wallets_per_user: number | null; mfa_methods: Array<'sms' | 'totp' | 'passkey'>; name: string; passkey_auth: boolean; passkeys_for_signup_enabled: boolean; privacy_policy_url: string | null; require_users_accept_terms: boolean | null; show_wallet_login_first: boolean; /** * The configuration object for smart wallets. */ smart_wallet_config: EmbeddedWalletsAPI.SmartWalletConfiguration; sms_auth: boolean; solana_wallet_auth: boolean; spotify_oauth: boolean; telegram_auth: boolean; telegram_oauth: boolean; terms_and_conditions_url: string | null; theme: string; tiktok_oauth: boolean; twitch_oauth: boolean; twitter_oauth: boolean; twitter_oauth_on_mobile_enabled: boolean; verification_key: string; wallet_auth: boolean; wallet_connect_cloud_project_id: string | null; whatsapp_enabled: boolean; captcha_site_key?: string; /** * Configuration for funding and on-ramp options. */ funding_config?: FundingConfigResponseSchema; /** * Configuration for Telegram authentication. */ telegram_auth_config?: TelegramAuthConfigSchema; } export namespace AppResponse { export interface AllowlistConfig { cta_link: string | null; cta_text: string | null; error_detail: string | null; error_title: string | null; } export interface CustomOAuthProvider { enabled: boolean; /** * The ID of a custom OAuth provider, set up for this app. Must start with * "custom:". */ provider: ClientAuthAPI.CustomOAuthProviderID; provider_display_name: string; provider_icon_url: string; } } /** * A valid CAIP-2 chain ID (e.g. 'eip155:1'). */ export type Caip2 = string; /** * A crypto currency identified by a CAIP-2 chain ID and optional asset. */ export interface Currency { /** * A valid CAIP-2 chain ID (e.g. 'eip155:1'). */ chain: Caip2; /** * A currency asset type. */ asset?: CurrencyAsset; } /** * A currency asset type. */ export type CurrencyAsset = 'native-currency' | 'USDC'; /** * An email domain. */ export type EmailDomain = string; /** * Allowlist invite input for an email domain. */ export interface EmailDomainInviteInput { type: 'emailDomain'; /** * An email domain. */ value: EmailDomain; } /** * Allowlist invite input for an email address. */ export interface EmailInviteInput { type: 'email'; value: string; } /** * Chain-specific configuration for embedded wallets. */ export interface EmbeddedWalletChainConfig { /** * Whether to create embedded wallets on login. */ create_on_login: EmbeddedWalletCreateOnLogin; } /** * Configuration for embedded wallets including the mode. */ export interface EmbeddedWalletConfigSchema extends EmbeddedWalletInputSchema { /** * The mode for embedded wallets. */ mode: EmbeddedWalletMode; } /** * Whether to create embedded wallets on login. */ export type EmbeddedWalletCreateOnLogin = 'users-without-wallets' | 'all-users' | 'off'; /** * Input configuration for embedded wallets. */ export interface EmbeddedWalletInputSchema { /** * Whether to create embedded wallets on login. */ create_on_login: EmbeddedWalletCreateOnLogin; /** * Chain-specific configuration for embedded wallets. */ ethereum: EmbeddedWalletChainConfig; /** * Chain-specific configuration for embedded wallets. */ solana: EmbeddedWalletChainConfig; user_owned_recovery_options: Array; require_user_owned_recovery_on_create?: boolean; require_user_password_on_create?: boolean; } /** * The mode for embedded wallets. */ export type EmbeddedWalletMode = 'legacy-embedded-wallets-only' | 'user-controlled-server-wallets-only'; /** * Configuration for funding and on-ramp options. */ export interface FundingConfigResponseSchema { cross_chain_bridging_enabled: boolean; default_recommended_amount: string; /** * A crypto currency identified by a CAIP-2 chain ID and optional asset. */ default_recommended_currency: Currency; methods: Array; options: Array; prompt_funding_on_wallet_creation: boolean; } /** * A funding method for on-ramp. */ export type FundingMethodEnum = 'moonpay' | 'coinbase-onramp' | 'external'; /** * A funding option with method and provider. */ export interface FundingOption { method: string; provider: string; } /** * Currency for gas spend values. */ export type GasSpendCurrency = 'usd'; /** * Query parameters for getting gas spend for a set of wallets. The time range from * `start_timestamp` to `end_timestamp` must not exceed 30 days. */ export interface GasSpendRequestBody { /** * Unix timestamp in milliseconds, exclusive. Must be greater than or equal to * `start_timestamp`, and the range from `start_timestamp` to `end_timestamp` must * not exceed 30 days. */ end_timestamp: number; /** * Unix timestamp in milliseconds, inclusive. Must be less than or equal to * `end_timestamp`, and the range from `start_timestamp` to `end_timestamp` must * not exceed 30 days. */ start_timestamp: number; /** * List of wallet IDs to query gas spend for. Maximum 100. */ wallet_ids: Array; } /** * Aggregated Privy gas credits charged for a set of wallets over a time range. */ export interface GasSpendResponseBody { /** * Currency for gas spend values. */ currency: GasSpendCurrency; /** * Total Privy credits charged as a decimal string. */ value: string; } /** * Allowlist invite input for a phone number. */ export interface PhoneInviteInput { type: 'phone'; value: string; } /** * Configuration for Telegram authentication. */ export interface TelegramAuthConfigSchema { bot_id: string; bot_name: string; link_enabled: boolean; seamless_auth_enabled: boolean; } /** * A test account for an app. */ export interface TestAccount { id: string; created_at: string; email: string; otp_code: string; phone_number: string; updated_at: string; } /** * Response for listing test accounts for an app. */ export interface TestAccountsResponse { data: Array; } /** * Input for adding or removing an allowlist entry. Discriminated by type. */ export type UserInviteInput = | EmailInviteInput | EmailDomainInviteInput | WalletInviteInput | PhoneInviteInput; /** * A user-owned recovery option for embedded wallets. */ export type UserOwnedRecoveryOption = 'user-passcode' | 'google-drive' | 'icloud'; /** * Allowlist invite input for a wallet address. */ export interface WalletInviteInput { type: 'wallet'; value: string; } export declare namespace Apps { export { type AllowlistDeletionResponse as AllowlistDeletionResponse, type AllowlistEntry as AllowlistEntry, type AppResponse as AppResponse, type Caip2 as Caip2, type Currency as Currency, type CurrencyAsset as CurrencyAsset, type EmailDomain as EmailDomain, type EmailDomainInviteInput as EmailDomainInviteInput, type EmailInviteInput as EmailInviteInput, type EmbeddedWalletChainConfig as EmbeddedWalletChainConfig, type EmbeddedWalletConfigSchema as EmbeddedWalletConfigSchema, type EmbeddedWalletCreateOnLogin as EmbeddedWalletCreateOnLogin, type EmbeddedWalletInputSchema as EmbeddedWalletInputSchema, type EmbeddedWalletMode as EmbeddedWalletMode, type FundingConfigResponseSchema as FundingConfigResponseSchema, type FundingMethodEnum as FundingMethodEnum, type FundingOption as FundingOption, type GasSpendCurrency as GasSpendCurrency, type GasSpendRequestBody as GasSpendRequestBody, type GasSpendResponseBody as GasSpendResponseBody, type PhoneInviteInput as PhoneInviteInput, type TelegramAuthConfigSchema as TelegramAuthConfigSchema, type TestAccount as TestAccount, type TestAccountsResponse as TestAccountsResponse, type UserInviteInput as UserInviteInput, type UserOwnedRecoveryOption as UserOwnedRecoveryOption, type WalletInviteInput as WalletInviteInput, }; }