Best Practices
Configuration
Environment Variables
// .env
PAYMENT_WALLET_ADDRESS=YourWalletAddress
TOKEN_MINT=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
SOLANA_NETWORK=solana-mainnet
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
WALLET_SECRET_KEY=YourBase64EncodedSecretKeyInitialize Once
// config/x402.ts
import { initX402 } from '@shade402/express';
let initialized = false;
export function initializeX402() {
if (initialized) return;
initX402({
paymentAddress: process.env.PAYMENT_WALLET_ADDRESS!,
tokenMint: process.env.TOKEN_MINT!,
network: process.env.SOLANA_NETWORK!,
rpcUrl: process.env.SOLANA_RPC_URL,
autoVerify: true,
});
initialized = true;
}Default Values
Payment Amounts
Set Appropriate Amounts
Maximum Payment Limits
Payment Tiers
Error Handling
Comprehensive Error Handling
Server-side Error Middleware
Client Management
Always Close Clients
Reuse Clients When Possible
Wallet Management
Logging and Monitoring
Log Payment Transactions
Monitor Payment Metrics
Error Monitoring
Performance
Connection Pooling
Async Operations
Testing
Test with Devnet
Test Payment Flows
Integration Tests
Documentation
Code Documentation
API Documentation
Code Organization
Separate Concerns
Use Middleware
Summary
Next Steps
Last updated
