Wallet Providers
Spice Flow supports two wallet providers. Choose the one that fits your needs.Privy
Best for embedded wallets and social logins. This is the recommended provider for most integrations.| Option | Type | Description |
|---|---|---|
privyAppId | string | Your Privy application ID (required for Privy) |
embeddedWalletConfig | object | Embedded wallet behavior |
embeddedWalletConfig.createOnLogin | "off" | "users-without-wallets" | "all-users" | When to create embedded wallets |
- Sign up at privy.io
- Create a new app
- Copy your App ID from the dashboard
Dynamic
Best for multi wallet support and flexible authentication.- Sign up at dynamic.xyz
- Create a new project
- Copy your Environment ID from settings
Execution Modes
Spice Flow supports three execution modes.7702 Mode (Default)
Uses EIP 7702 with embedded wallets. The solver executes transactions on behalf of the user via delegate contracts. This is the default and recommended mode for most chains.Presign Mode
Users sign all transactions upfront using their external wallet. Used for chains that don’t support EIP 7702.Ondemand Mode
Each transaction is signed on demand during execution. The app handles execution viaonDepositExecute / onWithdrawExecute callbacks.
In
presign and ondemand modes, the embedded wallet flow is skipped. Components use callback props (like onDepositExecute) instead of the solver execution path.Network Configuration
Set the network to control which chains are available:Default Chains by Network
Mainnet: Ethereum (1), Base (8453), Arbitrum (42161), Citrea (4114) Testnet: Sepolia (11155111), Arbitrum Sepolia (421614), Citrea Testnet (5115), Base Sepolia (84532)Custom Chain IDs
Override the defaults withsupportedChainIds:
Theming
Set your app’s visual identity through thetheme prop. All SDK components inherit these values.
API URL Override
By default, the SDK connects to the Spicenet relayer. Override this if you’re proxying requests or using a custom deployment:Complete Provider Reference
| Prop | Type | Default | Description |
|---|---|---|---|
provider | "privy" | "dynamic" | Required | Wallet provider |
network | "mainnet" | "testnet" | "testnet" | Network environment |
nativeChainId | number | User’s default chain | |
theme | SpiceTheme | Colors, dark mode, surfaces, fonts, app name | |
privyAppId | string | Privy app ID | |
dynamicEnvironmentId | string | Dynamic environment ID | |
supportedChainIds | number[] | Per network | Override supported chains |
mode | "7702" | "presign" | "ondemand" | "7702" | Execution mode |
appName | string | "Spicenet" | Application name |
apiUrl | string | Override relayer API URL | |
embeddedWalletConfig | object | Embedded wallet settings |
Next Steps
Styling
Customize component appearance
Components
Explore available components
Examples
See complete examples
Best Practices
Security and integration patterns
