Link2Pay is a full-stack application that allows users to create, share, and manage cryptocurrency payment links. It simplifies the process of receiving crypto payments by generating links with predefined parameters like wallet address, amount, and currency.
This project is a practical implementation of a concept shared in a viral tweet about simplified cryptocurrency payments. The tweet highlighted the need for an easy way to create and share payment links for crypto transactions without complex wallet interactions.
Link2Pay demonstrates how such an idea can be built into a functional product that addresses real user needs in the cryptocurrency space. While the original tweet proposed a simple concept, this implementation expands on it with additional features like multi-chain support, QR code generation, and wallet integration.
- Multi-Chain Support: Generate payment links for Ethereum, Bitcoin, Solana, Polygon, BNB Chain, and Avalanche
- Customizable Parameters: Set wallet address, amount, currency, memo, and more
- QR Code Generation: Create scannable QR codes for easier mobile payments
- Wallet Integration: Direct open-in-wallet functionality for supported cryptocurrency wallets
- Block Explorer Integration: View wallet addresses on blockchain explorers
- Shareable Links: Easily share payment links via URL or QR code
- Link Management: Create, view, edit, and delete payment links
- Click Tracking: Monitor link usage with integrated click counter
- Node.js & Express
- MongoDB with Mongoose
- RESTful API architecture
- Input validation with Joi
- Next.js 13+ with App Router
- TypeScript for type safety
- Tailwind CSS for styling
- React Hook Form for form management
link2pay/
├── backend/ # Express backend
│ ├── src/
│ │ ├── controllers/ # Request handlers
│ │ ├── models/ # Mongoose schemas
│ │ ├── routes/ # API routes
│ │ ├── utils/ # Utility functions
│ │ └── index.js # Entry point
│ ├── .env # Environment variables
│ └── package.json # Dependencies
│
├── frontend/ # Next.js frontend
│ ├── src/
│ │ ├── app/ # Next.js app directory
│ │ ├── components/ # React components
│ │ └── utils/ # Utility functions
│ ├── .env.local # Environment variables
│ └── package.json # Dependencies
│
└── README.md # Project documentation
- Node.js (v14+)
- MongoDB (local or Atlas)
- npm or yarn
- Navigate to the backend directory
cd backend- Install dependencies
npm install- Create a
.envfile based on.env.example
cp .env.example .env- Start the development server
npm run devThe backend will run on http://localhost:3001
- Navigate to the frontend directory
cd frontend- Install dependencies
npm install- Create a
.env.localfile
echo "NEXT_PUBLIC_API_URL=http://localhost:3001/api" > .env.local- Start the development server
npm run devThe frontend will run on http://localhost:3000
- Navigate to the "Create Link" page
- Fill in the required fields:
- Wallet Address: Your cryptocurrency address
- Blockchain: Select the blockchain network (Ethereum, Bitcoin, etc.)
- Currency: The cryptocurrency symbol (ETH, BTC, SOL, etc.)
- Amount (optional): The payment amount
- Title: A title for the payment link
- Description (optional): Additional details about the payment
- Click "Create Payment Link"
- From the dashboard, find the payment link you want to share
- Copy the payment URL or share it directly
- Alternatively, view the payment details page to access the QR code
- Open the payment link in a web browser
- Scan the QR code with a cryptocurrency wallet app
- Or click "Open in Wallet" to launch a compatible wallet application
- Complete the transaction in your wallet app
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/payments | Get all payment links |
| GET | /api/payments/:linkId | Get a specific payment link |
| POST | /api/payments | Create a new payment link |
| PUT | /api/payments/:linkId | Update a payment link |
| DELETE | /api/payments/:linkId | Delete a payment link |
- User authentication and accounts
- Transaction status tracking
- Additional blockchain support
- Payment analytics and reporting
- Webhook notifications
- Customizable payment page themes
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.