Install
openclaw skills install nicky-testDiscover and pay Nicky cryptocurrency payment requests on behalf of users. Covers payment request lookup, asset selection, wallet address generation, transaction reporting, and confirmation polling via REST API and MCP — no authentication required for the payment flow.
openclaw skills install nicky-testPay Nicky cryptocurrency payment requests on behalf of a user, end to end.
Nicky is a crypto payment platform where a receiver creates a short payment link (e.g.
https://pay.nicky.me/alice or https://pay.nicky.me/ABCDEF). Anyone — including an AI agent —
can discover the request, receive a wallet address, and send funds. Nicky handles on-chain
monitoring, asset conversion, and confirmation.
Use this skill when the user asks to:
pay.nicky.me/ABCDEF" or "Pay request #ABCDEF"If the user only wants to receive crypto on Nicky, do not use this skill — direct them to https://pay.nicky.me to sign up.
The full payment flow runs without authentication. The agent drives the user-facing conversation; the API does the rest.
pay.nicky.me/ABCDEF → shortId = "ABCDEF"pay.nicky.me/alice → shortId = "alice" (nick-based, ≤ 6 chars usually resolves)#ABCDEF → shortId = "ABCDEF"payerName and payerEmail (the receiver uses these to identify who
paid). Never invent them.paymentAttemptId, walletAddress, amount, and expiresAt. The address lease
is valid for 30 minutes.amount of the chosen
asset to walletAddress before expiresAt. If the exact amount is impractical (e.g. gas),
warn that the deposit is matched with ±2% tolerance.status == "Confirmed" OR isPaid == true.GET /payment/progress returns one of:
| Status | Meaning | Agent action |
|---|---|---|
Pending | Waiting for the transaction to appear on-chain or in the queue | Keep polling (or wait for the report-tx call) |
Received | Transaction detected, waiting for confirmations | Keep polling |
Confirmed | Confirmed, matched to the request, and credited | Stop polling — report success to the user |
Expired | 30-minute window closed before any matching deposit | Tell the user, offer to start a new attempt |
Error | Pipeline failed (e.g. max check count exceeded, blacklist hit) | Surface the error message; do not retry blindly |
These are the rules agents most often get wrong. Read them carefully.
payerName and payerEmail are required and are shown to
the receiver. Always ask the user.start-payment is the amount that
will be matched. Sending more or less than ±2% risks the deposit being un-matched.expiresAt may not auto-match. If the
window has expired, call start-payment again — it is idempotent for the same
payer + request + asset, so a fresh address will be issued and the prior attempt can be
abandoned.Error. The most common Error is MaxCheckCount — Nicky's pipeline
gave up after too many failed checks. Wait for operator intervention or start a new
attempt with a different transaction.NICKY_API_KEY) the private MCP endpoint exposes account, billing, and webhook tools —
see MCP reference.If the host supports MCP, prefer connecting to the public MCP endpoint — it exposes the same four tools as the REST flow and avoids hand-built HTTP calls.
https://api-public.pay.nicky.me/mcp-public/
GetPaymentRequest, StartPayment, ReportTransaction, GetPaymentProgressX-Api-Key: $NICKY_API_KEY): https://api-public.pay.nicky.me/mcp/
See MCP reference for tool signatures.
| Symptom | Likely cause | Recovery |
|---|---|---|
payment-request returns 404 | Unknown short ID | Ask the user to re-check the link / short ID |
start-payment returns 409 / conflict | Request already paid or expired | Re-fetch the request; if remainingAmount == 0, tell the user the request is settled |
progress stays Pending > 5 min on TRC-20 | Tx not yet broadcast or wrong network | Confirm with the user that the tx was sent to the exact walletAddress |
progress returns Error: MaxCheckCount | Pipeline exhausted checks | Contact support@nicky.me with the paymentAttemptId — do not retry the same attempt |
progress returns Expired | 30-minute window closed | Start a new attempt |
For payment issues, direct the user to support@nicky.me and include the
paymentAttemptId and (if available) the transactionHash. Do not invent status updates —
only what GET /payment/progress returns is authoritative.