UNPKG

svm-pay

Version:

A payment solution for SVM networks (Solana, Sonic SVM, Eclipse, s00n)

178 lines (133 loc) 4.55 kB
# SVM-Pay: Cross-Network Payment Solution <img width="287" alt="logo" src="https://github.com/user-attachments/assets/92d72516-b163-4b81-bf5f-e0a574d41225" /> Pay from anywhere from any solana-vm based network! ## Overview SVM-Pay is a payment solution for SVM networks (Solana, Sonic SVM, Eclipse, s00n) that enables developers to easily integrate payment functionality into their applications. Inspired by Solana Pay, SVM-Pay extends the concept to work across all SVM networks with a one-click integration approach for developers. ## Features - **Cross-Network Compatibility**: Support for Solana, Sonic SVM, Eclipse, and s00n networks - **Simple Integration**: One-click integration for developers - **Comprehensive SDK**: JavaScript/TypeScript SDK with React, Vue, and Angular components - **Mobile Support**: iOS and Android SDK for mobile applications - **No Fees**: SVM-Pay itself charges no fees (only standard network transaction fees apply) - **Secure**: Built with security best practices for blockchain payments - **Flexible**: Support for different payment scenarios (e-commerce, point-of-sale, subscriptions) ## Quick Links - [Documentation](docs/documentation.md) - [Developer Guide](docs/developer-guide.md) - [Architecture](docs/architecture.md) - [Security Recommendations](docs/security-recommendations.md) - [Examples](examples/) - [CLI Integration](CLI-INTEGRATION.md) ## Installation ```bash npm install svm-pay ``` ## Basic Usage ```javascript import { SVMPay } from 'svm-pay'; // Initialize the SDK const svmPay = new SVMPay({ defaultNetwork: 'solana', // 'solana', 'sonic', 'eclipse', or 'soon' }); // Create a payment URL const url = svmPay.createTransferUrl( 'YOUR_WALLET_ADDRESS', '1.0', // Amount { label: 'Your Store', message: 'Payment for Order #123', references: ['order-123'] } ); console.log(url); // Output: solana:YOUR_WALLET_ADDRESS?amount=1.0&label=Your%20Store&message=Payment%20for%20Order%20%23123&reference=order-123 // CLI Integration - access CLI functionality programmatically // Check wallet balance (requires CLI setup) svmPay.checkWalletBalance() .then(balance => console.log('Wallet balance:', balance)) .catch(error => console.error('Balance check failed:', error)); ``` ## CLI Tool SVM-Pay includes a built-in CLI tool for managing payments: ```bash # Install globally npm install -g svm-pay # Setup configuration svm-pay setup -k <your-private-key> -a <your-api-key> # Check wallet balance svm-pay balance # Check API usage svm-pay usage # Make a payment svm-pay pay -a 0.1 -r "API usage payment" # View payment history svm-pay history ``` See [CLI Integration](CLI-INTEGRATION.md) for complete CLI documentation. ``` ## Framework Integration ### React ```jsx import { SVMPayProvider, PaymentButton } from 'svm-pay/react'; function App() { return ( <SVMPayProvider> <PaymentButton recipient="YOUR_WALLET_ADDRESS" amount="1.0" onComplete={(status, signature) => { console.log(`Payment ${status}`, signature); }} /> </SVMPayProvider> ); } ``` ### Vue ```vue <template> <svm-pay-button recipient="YOUR_WALLET_ADDRESS" amount="1.0" @complete="handleComplete" /> </template> <script> export default { methods: { handleComplete(status, signature) { console.log(`Payment ${status}`, signature); } } } </script> ``` ### Angular ```typescript @Component({ selector: 'app-root', template: ` <svm-pay-button recipient="YOUR_WALLET_ADDRESS" amount="1.0" (complete)="handleComplete($event)" ></svm-pay-button> ` }) export class AppComponent { handleComplete(event: {status: string, signature?: string}) { console.log(`Payment ${event.status}`, event.signature); } } ``` ## Demo Applications SVM-Pay includes several demo applications to showcase its functionality: - [Web Payment Demo](examples/web-payment-demo.jsx): A simple web application for accepting payments - [Point-of-Sale Demo](examples/point-of-sale-demo.tsx): A point-of-sale application for in-person payments - [Subscription Payment Demo](examples/subscription-payment-demo.tsx): A subscription service application ## Security SVM-Pay is built with security in mind. For security recommendations and best practices, see the [Security Recommendations](docs/security-recommendations.md) document. ## License MIT ## Contributing Contributions are welcome! Please see the [Contributing Guidelines](CONTRIBUTING.md) for more information.