A comprehensive tool for transferring assets from Smart Account vaults across multiple blockchains (Solana, Base, BNB chain, xLayer).
- Node.js 18+
- TypeScript
git clone https://github.com/okx/Wallet-Release.git
cd Wallet Release
npm installCreate .env file:
# EVM
EVM_EOA_PRIVATE_KEY=<your EVM EOA private key>
EVM_DEXTRADING_ADDRESS=<your EVM AA address>
# Solana
SOL_EOA_PRIVATE_KEY=<your solana EOA private key>
SOL_DEXTRADING_ADDRESS=<your solana AA ID>
Notice : For users who use EVM only, they can leave blank to solana fields; vice versa
# Start the web server
npm run webThen open your browser to http://localhost:3000
# Start the terminal
npm run terminalCommon Flow (Both Interfaces):
- Choose chain (Solana/Base/BNB chain/xLayer)
- Select asset type (Native Token/Fungible Token)
- For fungible tokens, input token contract address
- Input recipient address & amount
- Review estimated gas fee and balance
- Confirm transaction
- Get transaction hash for verification
- Solana (Native SOL + SPL tokens)
- Base (Native ETH + ERC-20)
- BNB chain (Native BNB + BEP-20)
- xLayer (Native OKB + ERC-20)
- Private keys are loaded from environment variables
- Memory cleanup patterns implemented for sensitive data
- Both interfaces use identical security practices
- Consider using hardware wallets for production
- Web interface runs on localhost only
- Port already in use: kill process on port 3000
- "Invalid private key": Ensure Solana keys are in correct 64-byte array format
- "SOL_DEXTRADING_ADDRESS not set": Check your
.envfile has all required variables - "Insufficient balance": Verify you have enough tokens/native currency
- "Too many decimals": Check token decimal precision matches your input
All chains require their respective private keys and addresses to be set in .env:
- Solana:
SOL_EOA_PRIVATE_KEY,SOL_DEXTRADING_ADDRESS - EVM chains:
EVM_EOA_PRIVATE_KEY,EVM_DEXTRADING_ADDRESS