Skip to content

feat: Solana wallet and send support#51

Open
blakecduncan wants to merge 2 commits intoreleasefrom
blake/solana-wallet
Open

feat: Solana wallet and send support#51
blakecduncan wants to merge 2 commits intoreleasefrom
blake/solana-wallet

Conversation

@blakecduncan
Copy link
Copy Markdown

Summary

  • Solana wallet in wallet create: Generates both EVM and Solana (Ed25519) keypairs in a single command using @solana/kit. Stores Solana secret key in standard JSON array format alongside EVM keys. wallet address and wallet qr updated to support both chains.
  • Solana send: The send command auto-detects Solana networks (-n solana-devnet) and routes to a Solana-specific code path. Builds native SOL transfer instructions via @solana-program/system.
  • Solana gas sponsorship: Supports Alchemy's alchemy_requestFeePayer RPC method for fee payer sponsorship. Uses the same --gas-sponsored --gas-policy-id flags as EVM.
  • Send command refactor: Split send.ts into send/index.ts, send/evm.ts, send/solana.ts, and send/shared.ts for maintainability.
  • Shared Solana transaction infra: src/lib/solana-tx.ts provides reusable transaction building, sponsorship, signing, and confirmation polling for future Solana commands (swap, bridge, etc.).
  • New utilities: isSolanaNetwork() in networks.ts, validateSolanaAddress() in validators.ts, resolveSolanaWalletKey() in resolve.ts, errSolanaTransactionFailed() in errors.ts

New dependencies

  • @solana/kit — Solana SDK for keypair generation, transaction building, and signing
  • @solana-program/system — typed system program instructions (SOL transfer)

Test plan

  • alchemy wallet create generates both EVM and Solana keypairs
  • alchemy wallet address shows both EVM and Solana addresses
  • alchemy wallet qr shows EVM QR, alchemy wallet qr --solana shows Solana QR
  • alchemy send <solana-addr> 0.001 -n solana-devnet sends SOL (wallet-paid)
  • alchemy send <solana-addr> 0.001 -n solana-devnet --gas-sponsored --gas-policy-id <id> sends SOL (sponsored)
  • alchemy send <evm-addr> 0.001 -n eth-sepolia still works (EVM path unchanged)
  • alchemy config list shows Solana wallet fields
  • All tests pass

🤖 Generated with Claude Code

blakecduncan and others added 2 commits April 8, 2026 13:41
wallet create now generates both EVM and Solana keypairs. Adds Solana
config keys (solana_wallet_key_file, solana_wallet_address), resolve
function, and updates wallet address/qr commands to support both chains.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Route send command to Solana path when network is solana-*. Supports
native SOL transfers with optional gas sponsorship via Alchemy's
alchemy_requestFeePayer RPC method. Refactors send into separate
EVM and Solana modules for clarity.

- src/lib/solana-tx.ts: shared Solana transaction builder with
  sponsorship support, reusable by future Solana commands
- src/commands/send/: split into evm.ts, solana.ts, shared.ts
- src/lib/networks.ts: add isSolanaNetwork() helper
- src/lib/validators.ts: add validateSolanaAddress()
- src/lib/errors.ts: add errSolanaTransactionFailed()

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@blakecduncan blakecduncan requested a review from a team as a code owner April 8, 2026 18:36
@blakecduncan blakecduncan removed the request for review from a team April 8, 2026 18:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant