Wallet Management
Connect your external wallets or create a Balchemy-managed custodial wallet to enable on-chain trading on Solana and Base.
What is this?
The Wallets page (/studio/wallets) is where you manage every wallet associated with your Balchemy account. Balchemy supports two distinct wallet types across two chains:
- Custodial wallets — Generated and secured by Balchemy. The private key is stored server-side using AES-256-GCM encryption with a DEK (data encryption key) envelope. You do not need to sign individual transactions; your bot signs automatically.
- Delegate wallets (external) — Wallets you own and connect by providing their address. These are tracked for balance display but Balchemy does not hold their private keys.
Without at least one primary wallet on a chain, your bots cannot execute trades on that chain.
Prerequisites
- An active Balchemy account (wallet-based login via Solana SIWS or EVM SIWE)
- For adding an external EVM wallet: the wallet address in
0x…hex format - For creating a Solana custodial wallet: no additional requirements — the platform generates it for you
Wallets page overview
The page is split into two sections:
- Solana Wallets — Shows your custodial Solana wallet (one per account) and any linked external Solana addresses.
- EVM / Base Wallets — Shows all custodial and external EVM wallets on Base (chain ID 8453).
Each wallet card displays:
- Truncated address (hover or click the copy button for the full address)
- Chain badge (Solana or EVM/Base)
- Wallet type badge (custodial or delegate)
- Current balance
- Primary star indicator (if this wallet is the default for that chain)
Step-by-step: create a custodial Solana wallet
You need a Solana custodial wallet before your bots can trade Solana tokens.
- Navigate to Studio → Wallets in the left sidebar.
- Under Solana Wallets, click Create Wallet.
- A confirmation dialog appears showing the target chain. Click Create.
- The wallet is generated server-side. Your new wallet card appears in the grid within a few seconds.
- If this is your first Solana wallet, it is automatically set as primary.
Tip: You can only have one custodial Solana wallet per account. If you already have one, the Create Wallet button is disabled. Use the existing wallet and fund it to enable trading.
Step-by-step: create a custodial EVM wallet
Your bots need a custodial EVM wallet on Base to execute EVM trades.
- Navigate to Studio → Wallets.
- Under EVM / Base Wallets, click Create Wallet.
- Confirm the chain shown in the dialog (EVM/Base).
- Click Create. The wallet is provisioned on Base (chain ID 8453).
- If this is your first EVM wallet, it becomes the primary automatically.
Tip: You can create multiple custodial EVM wallets to separate funds between strategies. Set the wallet you want bots to use by default as Primary.
Step-by-step: add an external EVM wallet
If you prefer to track a wallet you already own (without giving Balchemy custody), add it as an external delegate wallet.
- Under EVM / Base Wallets, click Add External (the text link next to Create Wallet).
- In the dialog, paste your wallet address in
0x…hex format (40 hex characters after0x). - Select EVM / Base from the chain dropdown.
- Click Add Wallet.
- Balchemy validates the format. If the address is invalid (not a 40-character hex string), an inline error appears.
- The external wallet card appears in the grid with a delegate badge.
Warning: External (delegate) wallets cannot sign transactions on your behalf. Balchemy cannot trade from a delegate wallet. To enable automated trading, use a custodial wallet.
Step-by-step: set a wallet as primary
Your bots use the primary wallet when no specific wallet is specified in a trade command. Only one wallet per chain can be primary at a time.
- On the Wallets page, find the wallet card you want to promote.
- Click Set as Primary (the link appears only on non-primary cards).
- The star icon appears on the card to confirm the change.
Warning: Changing the primary wallet on a chain affects all bots using that chain. Any in-flight orders that were assigned to the previous primary wallet will continue executing with the old wallet until they settle. Only new orders will use the updated primary.
Token approvals (EVM)
For EVM trading, your bot may request a token approval before it can execute a swap. An ERC-20 approval grants the 0x exchange contract (or another spender) permission to move a specific token from your wallet up to an approved amount.
Why approvals are needed:
EVM tokens require an explicit on-chain approve() call before any DEX can spend them on your behalf. Without approval, a swap transaction will revert on-chain.
Viewing approvals: Each wallet card shows an expandable Token Approvals section. Click it to see every active approval: the token name, spender address (truncated, with a copy button), and approved amount.
Revoking an approval:
- Expand the Token Approvals section on a wallet card.
- Find the approval you want to remove.
- Click Revoke next to that approval.
- Confirm in the dialog.
Warning: Revoking a token approval will cause future trades involving that token to fail until a new approval is granted. Your bot will automatically request a new approval the next time it needs to swap that token.
Revoking a wallet
To permanently remove a wallet from your account:
- Hover over the wallet card — a Revoke button appears in the bottom-right corner.
- Click Revoke.
- Read the warning in the confirmation dialog: any pending orders using this wallet will be cancelled and the action cannot be undone.
- Click Revoke to confirm.
Warning: Revoking your only primary wallet on a chain will leave your bots unable to trade on that chain. Create or set a new primary wallet before revoking the current one.
Wallet security
Custodial wallets in Balchemy are protected with a two-layer encryption model:
| Layer | Mechanism |
|---|---|
| Data Encryption Key (DEK) | AES-256-GCM, generated per wallet |
| Key Encryption Key (KEK) | Wrapped either by a local master key or AWS KMS |
| Signing | Transaction signing happens server-side within the trading engine |
You never see the raw private key. The key material is never transmitted over the network in plaintext. If you require custody of your own private keys, use an external delegate wallet with a hardware wallet or MPC solution, and interact with Balchemy through the chat interface only (the bot will present trade summaries but cannot execute them automatically from a delegate wallet).
Supported chains
| Chain | Type | Chain ID | Notes |
|---|---|---|---|
| Solana | L1 | — | One custodial wallet per account; Jupiter aggregation |
| Base | EVM L2 | 8453 | Multiple custodial wallets supported; 0x aggregation |
Additional EVM chains (Ethereum mainnet, Arbitrum, Optimism) are not supported in the current release.
Trading prerequisite: primary wallet on chain
Your bots enforce a custodial wallet gate: before any trade is executed on a chain, the system checks that you have a custodial primary wallet on that chain. If no primary wallet exists:
- Solana trades will return an error:
No custodial Solana wallet found for user - EVM trades will return an error:
No default EVM wallet configured
The fix is to create a custodial wallet (steps above) and fund it before asking your bot to trade.
Common issues
"Create Wallet" button is disabled for Solana. You already have a custodial Solana wallet. Each account is limited to one. Fund the existing wallet and use it.
My wallet balance shows $0.00 but I know it has funds. Balance data is fetched from the trading engine on page load. Try refreshing the page. If the balance is still incorrect after a minute, the trading engine may be experiencing a short delay in syncing on-chain state.
I added an external EVM wallet but the address shows as invalid.
Check that the address is exactly 42 characters long (0x + 40 hex digits). ENS names (like vitalik.eth) are not supported — use the resolved hex address.
I can't set my custodial Solana wallet as primary — the button is greyed out. The custodial Solana wallet is always primary by default since there is only one. If you see a non-primary indicator, wait a few seconds and refresh — the state may still be syncing.
Token approval revocation is failing. On-chain approval revocation requires a transaction. Ensure your wallet has enough SOL (Solana) or ETH/ETH on Base to cover gas. If the wallet balance is zero, fund it first.
Related pages
- Trading Dashboard — View live positions and orders
- Solana Trading — How Solana swaps work via Jupiter
- EVM Trading — How Base swaps work via 0x
- Your First Bot — Set up and activate your first trading bot