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