BeamLink makes Solana token transfers as simple as sharing a link. Send SOL, USDC, or any SPL token via SMS, WhatsApp, Telegram, QR code, or gift card — no wallet address required.
App: https://beamlink.app
- Frontend (this app): https://github.com/bakoushin/beamlink
- Smart Contract: https://github.com/bakoushin/beamlink-program
- Create & send: Deposit tokens and get a BeamLink to share (text, chat, QR, gift card).
- Recipient claims: They open the link and claim with any Solana wallet (devnet).
- Done: Tokens are securely transferred to the recipient’s wallet.
- Escrow smart contract: Each deposit is held in escrow and bound to a unique link.
- Link = private key: A BeamLink acts as a private key used to authorize withdrawal.
- Gasless withdrawals: A relayer can execute the claim for recipients.
- Gas grant: SOL locked for account rent is routed to claimants for immediate fees.
- Node.js 18+ and npm
npm installnpm run devThis starts the Vite dev server. The app is configured to use Solana devnet by default and supports Phantom, Solflare, and a burner wallet.
npm run buildThis runs TypeScript build and Vite production build.
npm run previewThe app will use a public devnet RPC by default. To use Alchemy devnet RPC, create a .env file in the project root:
VITE_ALCHEMY_API_KEY=your_alchemy_api_keyThis repository includes helper scripts for a local validator and seeded SPL token mints. The UI currently targets devnet in code; if you want to point the UI to localnet, update the endpoint in src/App.tsx accordingly.
Available scripts:
- Setup mints:
npm run localnet:setup - Start validator:
npm run localnet:start - Stop validator:
npm run localnet:stop - Status:
npm run localnet:status - Airdrop tokens:
npm run localnet:airdrop - Full reset:
npm run localnet:reset
Assets for localnet (mints and accounts) live under localnet-tokens/ and test-ledger/.