Near Getpay - Accept crypto payments with payment page using PingPay or HOT PAY
Use Caution@cuongdcdev
npx machina-cli add skill @cuongdcdev/near-getpay --openclawNEAR GetPay Skill
Accept crypto payments (NEAR, USDC, USDT) via a beautiful payment page with PingPay or HOT PAY integration.
π― What It Does
Creates a hosted payment page where people can pay you in crypto with just a few clicks:
- Beautiful UI - Mobile-friendly payment page with preset amounts
- Multi-token - Accept NEAR, USDC, or USDT
- Dual provider - Works with PingPay or HOT PAY (or both)
- Public URL - Exposes via localhost.run tunnel
- First-time friendly - Setup wizard guides new users
- Smart token selection - Once a token is selected, others are hidden to avoid confusion (great for HOT PAY where each token has a unique checkout link)
π¨ User Flow
PingPay Flow (default, best flow)
- User selects token (NEAR, USDC, or USDT)
- User enters amount or picks preset
- Clicks "Pay Now"
- Redirects to PingPay checkout with pre-filled amount
HOT PAY Flow
- User selects token (only configured tokens shown)
- Other tokens are hidden to avoid confusion
- User enters amount or picks preset
- Clicks "Pay Now"
- Redirects to HOT PAY checkout link for that specific token and amount
π Quick Start
1. Installation
cd ~/.openclaw/skills
# Clone or extract the skill
npm install
2. Choose Your Provider
You need either PingPay or HOT PAY (or both):
Option A: PingPay (recommended for beginners)
- Sign up at https://pingpay.io
- Set your NEAR wallet in Dashboard β Settings
- Get API key from Dashboard β Settings β API Keys
- Add to
.env:PINGPAY_API_KEY=your_key_here
Option B: HOT PAY (for advanced users)
- Visit https://pay.hot-labs.org/admin/overview
- Create payment links for each token (NEAR, USDC, USDT)
- Set your NEAR wallet as recipient when creating each link
- Copy each
item_idand add to.env
3. Configure
Copy .env.example to .env:
cp .env.example .env
Edit .env:
# Display name (actual recipient is set in PingPay/HOT PAY dashboard!)
RECIPIENT_ADDRESS=your-account.near
# Choose provider
PAYMENT_PROVIDER=pingpay # or 'hotpay'
# PingPay config (if using PingPay)
PINGPAY_API_KEY=your_api_key_here
# HOT PAY config (if using HOT PAY)
HOTPAY_NEAR_ITEM_ID=your_near_item_id
HOTPAY_USDC_ITEM_ID=your_usdc_item_id
HOTPAY_USDT_ITEM_ID=your_usdt_item_id
4. Start Server
./start.sh
Or manually:
npx ts-node start-tunnel.ts
This will:
- Start Express server on port 3000
- Create public URL via localhost.run
- Display the shareable payment link
5. Share Your Link
Share the generated https://xxxxx.lhr.life URL to accept payments!
β οΈ Important Notes
Recipient Address Configuration
The recipient address (where payments go) is configured at the provider level, NOT in the .env file:
- PingPay: Set in your PingPay Dashboard β Settings β Wallet Address
- HOT PAY: Set when creating each payment link
The RECIPIENT_ADDRESS in .env is only for display on the payment page. To change where payments actually go, update your provider's dashboard settings.
Tunnel Domains
localhost.run generates random URLs that change each restart. For a permanent domain:
- Sign up at https://admin.localhost.run/
- Configure your custom domain
- Update the tunnel command in
start-tunnel.ts
Or use your own reverse proxy (Cloudflare Tunnel, ngrok paid, etc.)
π Usage in OpenClaw
When a user asks to accept payments:
User: "Create a payment page to accept USDT donations"
Agent:
1. Check if near-getpay skill is installed
2. Ask which provider they want (PingPay or HOT PAY)
3. Guide them through setup if not configured
4. Run: cd ~/.openclaw/skills/near-getpay && ./start.sh
5. Share the generated public URL
Example Conversation
User: I need to accept crypto payments
Agent: I'll set up a payment page for you using the GetPay skill.
First, do you have a PingPay or HOT PAY account?
User: No, what's easier?
Agent: PingPay is simpler. Here's what to do:
1. Sign up at https://pingpay.io
2. Add your NEAR wallet address in settings
3. Get an API key from Dashboard β API Keys
4. Share it with me (or add to .env yourself)
Let me know when you have the API key!
User: Got it: sk_test_abc123...
Agent: Perfect! Starting your payment server...
[runs start.sh]
β
Your payment page is live:
https://abc123xyz.lhr.life
Share this link to accept NEAR, USDC, or USDT payments!
π οΈ File Structure
near-getpay/
βββ SKILL.md β You are here
βββ package.json
βββ tsconfig.json
βββ .env.example β Config template
βββ .env β Your config (gitignored)
βββ start.sh β Quick start script
βββ start-tunnel.ts β Server + tunnel launcher
βββ server-simple.ts β Main payment server
βββ scripts/
βββ pingpay-client.ts
βββ payment-orchestrator.ts
π§ Advanced Configuration
Custom Port
Edit .env:
PORT=8080
Custom Tunnel
Replace localhost.run in start-tunnel.ts:
// Option 1: ngrok
const tunnel = spawn('ngrok', ['http', PORT.toString()]);
// Option 2: Cloudflare Tunnel
const tunnel = spawn('cloudflared', ['tunnel', '--url', `http://localhost:${PORT}`]);
// Option 3: localtunnel (less reliable)
const tunnel = spawn('npx', ['localtunnel', '--port', PORT.toString()]);
Webhook Integration (HOT PAY only)
HOT PAY sends webhooks to /webhook/hotpay. To use:
- Expose your server publicly (not localhost.run - needs stable URL)
- Configure webhook URL in HOT PAY dashboard
- Server logs payment confirmations automatically
π¨ Customization
Payment Amounts
Edit preset amounts in server-simple.ts:
tokens: [
{
symbol: 'NEAR',
chain: 'NEAR',
decimals: 24,
presets: [0.5, 1, 5, 10] // β Change these
},
// ...
]
Branding
Update colors, fonts, text in the HTML template sections of server-simple.ts.
Add More Tokens
Add to the tokens array (requires provider support):
{
symbol: 'ETH',
chain: 'NEAR',
decimals: 18,
presets: [0.01, 0.05, 0.1, 0.5]
}
π Troubleshooting
"No provider configured"
Visit http://localhost:3000/setup to see setup instructions.
"Permission denied (publickey)" (localhost.run)
Run: ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa -N ""
"Tunnel closed"
localhost.run tunnels timeout after inactivity. Restart the server.
"Token not configured" (HOT PAY)
You need to create a payment link for each token. Missing tokens won't appear on the payment page.
Provider returning errors
- PingPay: Check API key is valid and account is active
- HOT PAY: Verify item_ids match your created links
π Security
- β
API keys stored in
.env(gitignored) - β No private keys needed (payments go directly to provider)
- β HTTPS via tunnel
- β Webhook signature verification (HOT PAY)
Never commit .env to git!
π¦ Sharing This Skill
As a Skill Package
# From the skill directory
openclaw skill pack
# Share the .skill file
# Users install with: openclaw skill install near-getpay.skill
Via GitHub
git init
git add .
git commit -m "Initial commit: NEAR GetPay skill"
git remote add origin https://github.com/yourusername/near-getpay.git
git push -u origin main
Users install with:
cd ~/.openclaw/skills
git clone https://github.com/yourusername/near-getpay.git
cd near-getpay
npm install
Via Clawhub
- Visit https://clawhub.com
- Upload the
.skillpackage - Add description and tags
- Publish!
π€ Support
- Issues: GitHub Issues (if published)
- PingPay: https://pingpay.io/docs
- HOT PAY: https://pay.hot-labs.org/admin
- OpenClaw: https://docs.openclaw.ai
π License
MIT
Made for OpenClaw πΎ
Overview
Near GetPay creates a hosted payment page to accept crypto payments (NEAR, USDC, USDT) with a sleek, mobile-friendly UI. It supports PingPay and HOT PAY (or both) and exposes a public URL via a localhost.run tunnel for easy sharing.
How This Skill Works
An Express server serves a payment UI where users pick a token and amount. Configuration lives in .env (recipient, provider, and token item IDs). On pay, users are redirected to the chosen providerβs checkout with a pre-filled amount; smart token selection hides other tokens after one is chosen to reduce confusion.
When to Use It
- You want to accept NEAR, USDC, or USDT payments on a hosted page
- You prefer a beginner-friendly setup using PingPay
- You need a shareable public payment link via localhost.run
- You want to support multiple providers (PingPay and HOT PAY) from one page
- You want a mobile-friendly UI with preset amount options
Quick Start
- Step 1: Install the skill: cd ~/.openclaw/skills && npm install
- Step 2: Configure provider and env: set PAYMENT_PROVIDER and API keys (PINGPAY_API_KEY) or HOT PAY item IDs in .env
- Step 3: Start the server and share: cd ~/.openclaw/skills/near-getpay && ./start.sh
Best Practices
- Test each supported token and preset amount to ensure correct checkout flow
- Configure provider dashboards so payments route to the correct recipient
- Securely manage .env credentials and use distinct item IDs for HOT PAY
- Enable smart token selection to minimize user confusion
- Document and share the generated public URL for customers
Example Use Cases
- Accept NEAR via PingPay for a boutique service with a simple Pay Now flow
- Accept USDC and USDT via HOT PAY for a digital goods storefront
- Offer both PingPay and HOT PAY by configuring both providers in .env
- Publish the localhost.run link on a marketing page for quick donations
- Provide a single page that dynamically handles multiple tokens with preset amounts