Set up PayRam in three stages.
PayRam is a crypto payment gateway you run yourself — so no company holds your money, freezes your account, or sees your customers. New to this? You're in the right place. Each stage below has the plain-English idea and the exact steps to follow.
Run PayRam on a server you own.
A payment gateway needs somewhere to live. That's a VPS— a small computer you rent in the cloud for roughly $20–40 a month. Because it's yours, nobody can pause it, close your account, or read your customers' data. Never touched a server? It's one command and a few prompts.
- 1Rent a VPS — Ubuntu 22.04, 2 CPU / 4 GB / 50 GB — and point a domain at it. (Hetzner, AWS, Google Cloud, Azure, Hostinger all work.)
- 2SSH into it as
root. - 3Paste the command below and pick
--mainnetfor real money or--testnetto practise. - 4Answer the prompts: choose a database (managed Postgres for production, or the built-in one to try it), pick SSL (free Let's Encrypt is one keypress), and press Enter to generate the hot-wallet encryption key.
- 5Confirm the review screen. When it prints “installation completed,” open
http://your-server-ipin a browser.
bash <(curl -fsSL https://payram.com/setup_payram.sh) --mainnet
Under 10 minutes, start to finish. The installer checks your system, installs Docker and PostgreSQL, and sets everything up for you.
- 1Open
http://your-server-ip/signupand create your admin account — an email and password. Save them; this is the root account for your server. - 2Name your project (the site or product you're adding payments to) and click
Continue to Dashboard. - 3Go to
Settings → Integrations → Node Details. Keep the built-in public RPC URLs, or paste your own private endpoints for higher reliability. - 4That's the server done. Next: your wallets.
Three wallets. One job each.
The part that makes PayRam different: it never holds your money — you do. Set up three wallets once, and money always flows toward the one only you can open.
The customer pays a one-time address. PayRam sweeps it straight to your vault. The hot wallet just covers the gas.
Master Account
Hands every customer a fresh deposit address and deploys the on-chain contract that moves funds later. The server only ever holds a public address and a salt — never your customers’ private keys.
Cold Wallet
Every deposit is swept here automatically. It’s an address only you control — put it on a hardware wallet. PayRam stores just the address, so money can land in but never leave without you.
Hot Wallet
A small working wallet that funds the network fees for sweeps. Keep a little native coin in it (ETH, POL, TRX). Used on EVM chains and Tron; Bitcoin sweeps are signed from the PayRam app.
Set them up in the dashboard
All in the Wallet Management tab. Do it once per chain you want to accept.
- 1Open
Wallet Management → Deposit Walletand pick your chain. - 2Click
Deploy Contract— a configuration pop-up opens. - 3Connect your Master Account with MetaMask or WalletConnect.
- 4Paste your cold wallet address (a different wallet — never the master), name it, and click
deploy contract. - 5Wait for confirmation. PayRam then shows your fund-sweeper and master addresses.
- 1Open
Wallet Management → Hot Walletand clickAddunder your chain. - 2Choose
Add an existing wallet, thenContinue to add hot wallet. - 3Paste its private key and click
Add Wallet. Keep a little native coin in it for gas.
For Bitcoin, expand Bitcoin & Other Networks, add a wallet with its 12-word seed (kept encrypted, never on a server), then add your cold address. Sweeps to your vault run automatically on EVM and Tron — triggered by a balance threshold, a number of funded addresses, or a set time. Bitcoin sweeps are approved from the PayRam mobile app.
Sweeps run through smart contracts, not stored private keys. So even if someone fully compromised your server, there's nothing to drain — the keys to your vault were never there in the first place.
Connect it to your app.
The whole idea in one sentence: PayRam credits an invoice as the money lands, and your app debits your user when it's paid. You never watch a blockchain or touch a key — you react to one event.
Wire it up in five steps
- 1Grab your Project API Key from your PayRam dashboard.
- 2Create a payment —
POST /api/v1/paymentwith the customer's email, your customer ID, and the USD amount. You get back areference_idand a hosted checkouturl; send the customer there. - 3(Optional) Pin a specific chain's address with
POST /api/v1/deposit-address/reference/{id}. - 4Register your webhook —
Settings → Webhook → Add Endpoint, paste a public HTTPS URL, save, and mark it active. - 5When the webhook arrives, verify its
X-Payram-Signatureand credit your user once the status isFILLED. (The SDK does this for you.)
npm install payram
import { Payram } from 'payram'
const payram = new Payram({
apiKey: process.env.PAYRAM_API_KEY!,
baseUrl: process.env.PAYRAM_BASE_URL!, // your server, e.g. https://your-server.com:8443
})
// When a customer checks out:
const checkout = await payram.payments.initiatePayment({
customerEmail: 'buyer@example.com',
customerId: 'user_123',
amountInUSD: 49.99,
})
// Send them to checkout.url — PayRam handles the rest.One call creates the payment and returns a hosted checkout link. The SDK ships webhook helpers for Express, Fastify, and Next.js too.
Point Cursor, Claude, or Copilot at the PayRam MCP server and it generates the integration and webhook handler for your framework.
{
"mcpServers": {
"payram": {
"url": "https://mcp.payram.com/mcp"
}
}
}Add Credit
Choose an amount to add to your demo account.
The live Add Credit widget, wired to the PayRam sandbox. Pick an amount, send test funds, watch it confirm.
Three stages. You're live.
Your own server, your own wallets, your own app — accepting crypto from anywhere, with the money landing in a vault only you can open. Paying people back out? PayRam does payouts too, the same self-custody way.
Supported Chains & Tokens
20+ tokens across 6 networks. Stablecoin-native — USDT and USDC on every supported chain.
Setup questions.
What is a VPS, and why do I need one?+
Do I need to sign up or get approved?+
What happens to my money if my server is hacked?+
What is the difference between the three wallets?+
How does my app know when a payment arrives?+
FILLED, with the amount, currency, and confirmation count. You can also poll GET /api/v1/payment/reference/{id} if you prefer.Which chains and coins can I accept?+
How long does it really take?+
Can an AI agent help me integrate?+
https://mcp.payram.com/mcp) to Cursor, Claude, or Copilot and it will write the integration and webhook handler for your framework, and answer setup questions along the way.