pop402 Documentation
pop402 is a facilitator for cryptographic receipts and license management. It allows merchants to verify wallet ownership and license access without running their own infrastructure.
Facilitator URL: https://facilitator.pop402.com
Quick Start
For New Users (Challenge-Response)
- Request Challenge
const challenge = await fetch('https://facilitator.pop402.com/challenge', {
method: 'POST',
body: JSON.stringify({ walletAddress: wallet.publicKey.toBase58(), ttl: 3600 })
}).then(r => r.json());
- Sign Challenge
const message = new TextEncoder().encode(challenge.challenge.message);
const signature = await wallet.signMessage(message);
- Verify Access
const result = await fetch('https://facilitator.pop402.com/verify', {
method: 'POST',
body: JSON.stringify({
paymentPayload: {
x402Meta: {
challengeId: challenge.challenge.id,
signature: bs58.encode(signature),
walletAddress: wallet.publicKey.toBase58(),
sku: 'your-sku'
}
},
paymentRequirements: { network: 'solana' }
})
});
For x402 Migration
If you're migrating from x402, point your /verify and /settle endpoints to https://facilitator.pop402.com and add X-PAYMENT-META header with your SKU information.
Documentation
- Challenge Authentication - Wallet ownership verification
- API Reference - Complete API documentation
- FAQ - Common questions
Key Concepts
Challenge-Response: Server generates a unique message, user signs it to prove wallet ownership
License: Cryptographic receipt that grants access to content based on usage type and expiration
SKU: Stock Keeping Unit - identifier for your content/product
Session: Reusable authentication valid until TTL expires