MoonPay Commerce (Helio) Accept Crypto Payments
v0.3.0Accept crypto payments on Solana via MoonPay Commerce (formerly Helio). Create Pay Links, generate checkout URLs, check transactions, and list supported currencies. Use when the user wants to accept crypto payments, create payment links, charge for products/services with crypto, or query payment transactions. Requires a MoonPay Commerce account with API key and secret.
Like a lobster shell, security has layers — review code before you run it.
Runtime requirements
MPC Accept Crypto Payments
Merchant-side skill for accepting crypto payments on Solana via MoonPay Commerce (formerly Helio).
Setup
Run the setup script with your API credentials (wallet ID is fetched automatically):
bash scripts/setup.sh
You'll need:
- API Key — from https://app.hel.io → Settings → API Keys
- API Secret — from the same page (save it when generated)
The setup script will:
- Validate your credentials against the API
- Fetch your Solana wallets automatically
- Select the PAYOUT wallet (or CONNECTED if no PAYOUT exists)
- Save everything to
~/.mpc/helio/config
If the user doesn't have an account, direct them to https://app.hel.io to sign up.
Config Management
bash scripts/setup.sh status # Show current config
bash scripts/setup.sh clear # Remove saved credentials
Quick Reference
Base URL: https://api.hel.io/v1
List Supported Currencies (no auth needed)
curl -s https://api.hel.io/v1/currency | jq '.[].symbol'
Create a Pay Link
curl -s -X POST "https://api.hel.io/v1/paylink/create/api-key?apiKey=$HELIO_API_KEY" \
-H "Authorization: Bearer $HELIO_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"name": "My Payment",
"template": "OTHER",
"pricingCurrency": "<CURRENCY_ID>",
"price": "<AMOUNT_IN_BASE_UNITS>",
"features": {
"canChangePrice": false,
"canChangeQuantity": false,
"canSwapTokens": true
},
"recipients": [{
"currencyId": "<CURRENCY_ID>",
"walletId": "<YOUR_WALLET_ID>"
}]
}'
Defaults: Currency is USDC (6340313846e4f91b8abc519b). Token swapping is enabled so payers can pay with any supported Solana token (auto-converted to USDC).
Price format: price is in base units (int64 string). For USDC (6 decimals): "1000000" = 1 USDC. For SOL (9 decimals): "1000000000" = 1 SOL.
Create a Charge (Checkout URL)
curl -s -X POST "https://api.hel.io/v1/charge/api-key?apiKey=$HELIO_API_KEY" \
-H "Authorization: Bearer $HELIO_API_SECRET" \
-H "Content-Type: application/json" \
-d '{"paymentRequestId": "<PAYLINK_ID>"}'
Returns { "id": "...", "pageUrl": "https://..." } — share pageUrl with the payer.
Check Transactions
curl -s "https://api.hel.io/v1/paylink/<PAYLINK_ID>/transactions?apiKey=$HELIO_API_KEY" \
-H "Authorization: Bearer $HELIO_API_SECRET"
Disable / Enable a Pay Link
curl -s -X PATCH "https://api.hel.io/v1/paylink/<PAYLINK_ID>/disable?apiKey=$HELIO_API_KEY&disabled=true" \
-H "Authorization: Bearer $HELIO_API_SECRET"
Helper Script
# Setup (run first)
bash scripts/setup.sh
# Operations
bash scripts/helio.sh currencies
bash scripts/helio.sh create-paylink "Coffee" 5.00 USDC
bash scripts/helio.sh charge <paylink-id>
bash scripts/helio.sh transactions <paylink-id>
bash scripts/helio.sh disable <paylink-id>
bash scripts/helio.sh enable <paylink-id>
Templates
The template field controls Pay Link type:
OTHER— generic paymentPRODUCT— physical/digital productINVOICE— invoiceSUBSCRIPTION— recurring (requiressubscriptionDetails)EVENT— event ticket
Credential Handling
When setting up credentials, run the setup script interactively:
bash scripts/setup.sh
The script prompts for credentials directly in the terminal — they are never stored in chat history or logs. Credentials are saved to ~/.mpc/helio/config (mode 600).
Advanced
- Full API schema details: see
references/api-reference.md - OpenAPI spec: https://api.hel.io/v1/docs-json
- Dashboard: https://app.hel.io
- Docs: https://docs.hel.io
Comments
Loading comments...
