A cross-chain application that transfers USDC tokens from an EVM-compatible chain (Sepolia) to Solana Devnet using Wormhole SDK and Circle’s CCTP.
Built for blockchain scalability, trust minimization, and practical multi-chain interoperability.
- 🔗 Cross-chain transfer: Seamless transfer of stablecoins between Ethereum (Sepolia) and Solana.
- 🪙 Circle CCTP integration: Uses Circle's native USDC transfer mechanism for real-world bridging.
- 🛠️ EVM & Solana support: Uses Wormhole plugins for both ecosystems.
- ⏱️ Attestation timeout handling: Waits for VAA proofs to ensure security before finalizing transfers.
- 📦 Clean modular structure: Easy to extend or migrate to production/mainnet.
evm-solana-usdc-bridge/
├── src/
│ ├── main.ts # Main transfer logic
│ ├── singer.ts # Loads wallets/signers for EVM & Solana
│ ├── config.ts # Transfer params, chains, tokens, timeouts
│ ├── utils.ts # Utils used in the project
├── .env # Store private keys securely
├── tsconfig.json # TypeScript configuration
├── package.json # Project dependencies and scripts
- Node.js ≥ 18
- Sepolia ETH and Solana Devnet airdrop
- Circle CCTP supported tokens (e.g., USDC)
.envfile with:
ETH_PRIVATE_KEY="your-evm-private-key"
SOL_PRIVATE_KEY="your-solana-private-key"# Install dependencies
npm install
# Run transfer script
npx ts-node src/main.tsOr using npm run
npm run startEdit src/config.ts to modify:
CHAINS.FROM/CHAINS.TO: e.g.,'Sepolia'→'Avalanche','Solana'USDC.AMOUNT: amount in tokens (0.1 USDC)TIMEOUTS.ATTESTATION: milliseconds to wait for VAACIRCLE.AUTOMATIC: toggle auto-complete of transfer
- @wormhole-foundation/sdk – Core SDK for chain abstraction
- Circle CCTP – Cross-chain USDC attestation and minting
- Solana Web3 & Ethers.js (under the hood via Wormhole)
- TypeScript, Node.js, dotenv
This project showcases:
- Practical interoperability using real-world tooling (Circle & Wormhole)
- Secure bridging with VAA-based attestation
- Developer fluency across EVM and Solana ecosystems
- Readiness for production-grade multi-chain architecture
Inspired by Wormhole examples and Circle developer docs.
MIT – Free to use, fork, and adapt.