Production Ready

Pay Portal
The Future of Web3 Payments

Self-hosted payment gateway with native $PP token integration.
Accept crypto payments across multiple chains with automatic verification.

Multi-Chain
EVM + Solana
Multi-Currency
ETH, SOL, USDC, $PP
Self-Hosted
Full Control
Scroll to explore
01

What is Pay Portal?

Pay Portal is a self-hosted payment gateway that enables merchants to accept cryptocurrency payments through a simple, standardized protocol. Built on the HTTP 402 Payment Required standard, it provides automatic blockchain payment verification, multi-chain support, and native integration with the $PP token.

Unlike traditional payment processors, Pay Portal gives you complete control. You host your own server, use your own RPC nodes, and maintain full custody of all funds. No intermediaries, no platform fees—just direct blockchain payments with instant verification.

🔒
Self-Hosted

Run your own server with full control

⛓️
Multi-Chain

Ethereum, Polygon, Solana, and more

💱
Multi-Currency

Accept multiple tokens per payment link

🔄
Subscriptions

Recurring payments with automatic billing

Quick Start
const { createServer } = require('@payportal/portal');

const server = createServer({
  port: 3000,
  apiKey: 'your-secret-key',
  chains: [
    {
      chainId: 1,
      name: 'Ethereum',
      symbol: 'ETH',
      rpcUrl: 'https://eth-rpc.com'
    },
    {
      chainId: 101,
      name: 'Solana',
      symbol: 'SOL',
      rpcUrl: 'https://api.mainnet-beta.solana.com',
      type: 'solana'
    }
  ]
});

server.start();
02

$PP Token Integration

$PP Native Token
Chain Solana
Decimals 6

Holder Discount Tiers

Diamond 1M+ $PP 50% OFF
Platinum 500K+ $PP 30% OFF
Gold 100K+ $PP 20% OFF
Silver 10K+ $PP 10% OFF
Bronze 1K+ $PP 5% OFF

Pay Portal features native $PP token integration, providing exclusive benefits to token holders and creating real utility for the $PP ecosystem.

Payment Discounts

When customers pay with $PP tokens, they automatically receive a 10% discount on all payments. This incentivizes adoption and creates natural demand for the token.

Holder Discounts

Users holding $PP tokens in their wallet receive additional discounts based on their balance. The more $PP you hold, the bigger your discount—up to 50% off for Diamond tier holders.

Discounts are automatically calculated and applied when creating payment links. The system checks the customer's wallet balance and applies the appropriate tier discount in real-time.

Discount Configuration
const server = createServer({
  // ... other config
  portalToken: {
    rpcUrl: 'https://api.mainnet-beta.solana.com',
    enableTokenPayments: true,
    tokenPaymentDiscount: 10, // 10% off when paying with $PP
    enableHolderDiscounts: true,
    discountTiers: [
      { minBalance: 1_000_000, discountPercent: 50, name: 'Diamond' },
      { minBalance: 500_000, discountPercent: 30, name: 'Platinum' },
      { minBalance: 100_000, discountPercent: 20, name: 'Gold' },
      { minBalance: 10_000, discountPercent: 10, name: 'Silver' },
      { minBalance: 1_000, discountPercent: 5, name: 'Bronze' }
    ]
  }
});
03

Why Invest in $PP?

💎

Real Utility

$PP isn't just a token—it's the native currency of a production-ready payment gateway. Every merchant using Pay Portal creates demand for $PP through discounts and payment options.

📈

Growing Ecosystem

As more merchants adopt Pay Portal, the utility and value of $PP increases. Each new integration creates more use cases and demand for the token.

🎯

Holder Benefits

Token holders receive automatic discounts on all payments—up to 50% off for Diamond tier. This creates a strong incentive to hold and accumulate $PP.

🔐

Self-Hosted Model

Unlike centralized payment processors, Pay Portal is self-hosted. Merchants control their own infrastructure, creating a decentralized ecosystem powered by $PP.

Multi-Chain Support

Pay Portal works across Ethereum, Solana, and other major chains. $PP serves as the universal discount token across all supported networks.

🚀

Early Adoption

Get in early on a token with real utility and a working product. Pay Portal is production-ready and actively being used by merchants today.

04

How It Works

1

Create Payment Link

Merchants create payment links via API or admin panel, specifying price, currency, and destination URL.

POST /api/links
{
  "targetUrl": "https://example.com/premium",
  "price": { "amount": "0.01", "tokenSymbol": "ETH", "chainId": 1 },
  "recipientAddress": "0x..."
}
2

Customer Visits Link

Customer visits the payment link. Server returns HTTP 402 with payment details and QR code.

GET /pay/abc123
→ 402 Payment Required
{
  "protocol": "402-payportal-v1",
  "payment": {
    "amount": "0.01",
    "tokenSymbol": "ETH",
    "recipient": "0x..."
  }
}
3

Customer Pays

Customer scans QR code or pays manually. Payment is sent directly to merchant's wallet on-chain.

4

Automatic Verification

Customer submits transaction hash. Server verifies payment on-chain and grants access.

POST /pay/abc123/confirm
{ "txHash": "0x..." }
→ Payment verified ✅
→ 302 Redirect to target URL
05

Key Features

🔗

Payment Links

Create unique payment links with automatic verification. Support for one-time payments, usage limits, and expiration dates.

💱

Multi-Currency

Accept multiple tokens on a single payment link. Customers can choose their preferred currency—ETH, SOL, USDC, or $PP.

🔄

Subscriptions

Recurring payment links with automatic billing cycles. Support for monthly, weekly, or custom intervals with trial periods.

📱

QR Codes

Generate QR codes with wallet deep links. Compatible with Solana Pay and EIP-681 for seamless mobile payments.

🔔

Webhooks

Real-time notifications for payment events. Get notified when payments are confirmed, pending, or failed.

⛓️

Multi-Chain

Support for Ethereum, Polygon, Solana, and any EVM-compatible chain. Add multiple chains to a single server instance.

06

Get Started

Installation
npm install @payportal/portal
CLI Usage
# Start with Ethereum and Solana
npx portal \
  --chain 1:Ethereum:ETH:https://eth-rpc.com \
  --solana https://api.mainnet-beta.solana.com \
  --api-key your-secret-key
Create Payment Link
const response = await fetch('http://localhost:3000/api/links', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'your-secret-key'
  },
  body: JSON.stringify({
    targetUrl: 'https://example.com/premium-content',
    price: {
      amount: '0.01',
      tokenSymbol: 'ETH',
      chainId: 1
    },
    recipientAddress: '0xYourWalletAddress',
    description: 'Premium content access',
    maxUses: 100
  })
});

const { link } = await response.json();
console.log('Payment link:', link.url);
Multi-Currency Payment Link
const response = await fetch('http://localhost:3000/api/links', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'your-secret-key'
  },
  body: JSON.stringify({
    targetUrl: 'https://example.com/product',
    price: {
      amount: '0.01',
      tokenSymbol: 'ETH',
      chainId: 1
    },
    paymentOptions: [
      {
        amount: '0.5',
        tokenSymbol: 'SOL',
        chainId: 101,
        recipientAddress: 'SolanaWalletAddress'
      },
      {
        amount: '10',
        tokenSymbol: 'USDC',
        chainId: 1,
        recipientAddress: '0xYourWalletAddress'
      }
    ],
    recipientAddress: '0xYourWalletAddress'
  })
});
Subscription Link
const response = await fetch('http://localhost:3000/api/links', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'your-secret-key'
  },
  body: JSON.stringify({
    targetUrl: 'https://example.com/subscription',
    price: {
      amount: '0.1',
      tokenSymbol: 'ETH',
      chainId: 1
    },
    recipientAddress: '0xYourWalletAddress',
    subscription: {
      interval: 'month',
      intervalCount: 1,
      gracePeriodHours: 24,
      maxCycles: 12,
      trialDays: 7
    }
  })
});
07

Technical Architecture

HTTP 402/403 Protocol

Pay Portal implements the standard HTTP 402 Payment Required protocol. When a customer visits a payment link, the server returns a 402 status with payment details. After payment verification, subsequent requests return 302 redirects to the target URL.

Blockchain Verification

All payments are verified on-chain using RPC nodes. The server checks transaction confirmations, validates amounts, and verifies recipient addresses. Support for both EVM chains (via eth_getTransactionByHash) and Solana (via getTransaction).

Self-Hosted Architecture

Each merchant runs their own Pay Portal server instance. You control your RPC endpoints, API keys, and infrastructure. No central authority, no platform fees—just direct blockchain payments.

Storage & Webhooks

Payment links and transactions are stored in-memory by default (with optional database integration). Webhooks provide real-time notifications for payment events, subscription renewals, and link status changes.

Try Pay Portal Live!

Test the complete payment flow with our interactive demo. Create payment links, generate QR codes, and see automatic blockchain verification in action.

✨ No signup required ⚡ Instant mock payments 🔗 Full API access

Ready to Get Started?

Start accepting crypto payments today with Pay Portal. Self-hosted, production-ready, and powered by $PP.