svm-pay
Version:
A payment solution for SVM networks (Solana, Sonic SVM, Eclipse, s00n)
178 lines (133 loc) • 4.55 kB
Markdown
<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!
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));
```
SVM-Pay includes a built-in CLI tool for managing payments:
```bash
npm install -g svm-pay
svm-pay setup -k <your-private-key> -a <your-api-key>
svm-pay balance
svm-pay usage
svm-pay pay -a 0.1 -r "API usage payment"
svm-pay history
```
See [CLI Integration](CLI-INTEGRATION.md) for complete CLI documentation.
```
```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
<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>
```
```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);
}
}
```
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
SVM-Pay is built with security in mind. For security recommendations and best practices, see the [Security Recommendations](docs/security-recommendations.md) document.
MIT
Contributions are welcome! Please see the [Contributing Guidelines](CONTRIBUTING.md) for more information.