Step 1: Generate a Programmable Address
Call the API to generate a programmable address for your Solana wallet.| Field | Type | Description |
|---|---|---|
chainId | number | Source chain ID. Currently only Base (8453) is supported |
solanaAddress | string | Your Solana wallet address (base58, 32-44 characters) |
depositor | string | EVM address authorized to claim refunds if the intent expires unfulfilled |
evmDepositAddress is your programmable address—where you’ll send tokens.
Step 2: Send Tokens
Transfer USDC to your programmable address on Base. The sender makes a normal ERC-20 transfer—no special app or bridge UI required.Step 3: Automatic Processing
Once tokens arrive at the programmable address, the pre-programmed logic executes automatically:- Detects the deposit - Balance monitoring detects the incoming tokens
- Deploys the contract - If not already deployed, the contract is deployed via the factory
- Executes the action - For cross-chain deposits,
createIntent()is called - Publishes to Portal - The intent is published to the Routes Portal
- Solver fulfillment - Solvers compete to fulfill the intent on Solana
Step 4: Check Status
Query the programmable address to check its status.| Field | Description |
|---|---|
isDeployed | true once the contract is deployed |
lastCheckedBalance | Current token balance at the address |
deploymentTxHash | Transaction hash of the contract deployment |
Validation rules
The API validates input parameters:- solanaAddress: Must be a valid base58 Solana address (32-44 characters)
- depositor: Must be a valid Ethereum address
- chainId: Must be a number >= 1
