Nicky
/install nicky-test
\r \r
Nicky Payments\r
\r
Pay Nicky cryptocurrency payment requests on behalf of a user, end to end.\r
\r
Nicky is a crypto payment platform where a receiver creates a short payment link (e.g.\r
https://pay.nicky.me/alice or https://pay.nicky.me/ABCDEF). Anyone — including an AI agent —\r
can discover the request, receive a wallet address, and send funds. Nicky handles on-chain\r
monitoring, asset conversion, and confirmation.\r
\r
When to use this skill\r
\r Use this skill when the user asks to:\r \r
- Pay a Nicky request: "Pay
pay.nicky.me/ABCDEF" or "Pay request #ABCDEF"\r - Send crypto to a Nicky payment link shared in chat\r
- Check whether a Nicky payment attempt has been confirmed\r
- Report a blockchain transaction hash to speed up a pending Nicky payment\r
- Look up the assets a Nicky receiver accepts\r \r If the user only wants to receive crypto on Nicky, do not use this skill — direct them to\r \x3Chttps://pay.nicky.me> to sign up.\r \r
Quick start\r
\r The full payment flow runs without authentication. The agent drives the user-facing\r conversation; the API does the rest.\r \r
- Resolve the short ID from the message or URL. Accepted forms:\r
pay.nicky.me/ABCDEF→shortId = "ABCDEF"\rpay.nicky.me/alice→shortId = "alice"(nick-based, ≤ 6 chars usually resolves)\r#ABCDEF→shortId = "ABCDEF"\r
- Discover the request — see REST API → Get payment request.\r Returned payload includes the receiver, the open amount, the native asset, and every\r accepted asset with conversion details.\r
- Ask the user for
payerNameandpayerEmail(the receiver uses these to identify who\r paid). Never invent them.\r - Pick an asset — prefer the native asset of the request; otherwise pick one the receiver\r accepts and let Nicky convert.\r
- Start the payment — see REST API → Start payment.\r
Capture
paymentAttemptId,walletAddress,amount, andexpiresAt. The address lease\r is valid for 30 minutes.\r - Instruct the user (or the agent's own wallet) to send the exact
amountof the chosen\r asset towalletAddressbeforeexpiresAt. If the exact amount is impractical (e.g. gas),\r warn that the deposit is matched with ±2% tolerance.\r - (Recommended) Report the tx hash as soon as the transaction is broadcast — see\r REST API → Report transaction. This skips\r deposit polling and jumps straight to blockchain validation, which can save minutes.\r
- Poll for confirmation every 15–30 s — see REST API → Payment progress.\r
Stop when
status == "Confirmed"ORisPaid == true.\r \r
Status values\r
\r
GET /payment/progress returns one of:\r
\r
| Status | Meaning | Agent action |\r
| ----------- | ---------------------------------------------------------------- | --------------------------------------------- |\r
| Pending | Waiting for the transaction to appear on-chain or in the queue | Keep polling (or wait for the report-tx call) |\r
| Received | Transaction detected, waiting for confirmations | Keep polling |\r
| Confirmed | Confirmed, matched to the request, and credited | Stop polling — report success to the user |\r
| Expired | 30-minute window closed before any matching deposit | Tell the user, offer to start a new attempt |\r
| Error | Pipeline failed (e.g. max check count exceeded, blacklist hit) | Surface the error message; do not retry blindly |\r
\r
Critical rules\r
\r These are the rules agents most often get wrong. Read them carefully.\r \r
- Never invent payer details.
payerNameandpayerEmailare required and are shown to\r the receiver. Always ask the user.\r - Send the exact quoted amount. The amount returned by
start-paymentis the amount that\r will be matched. Sending more or less than ±2% risks the deposit being un-matched.\r - Honor the 30-minute window. Funds sent after
expiresAtmay not auto-match. If the\r window has expired, callstart-paymentagain — it is idempotent for the same\r payer + request + asset, so a fresh address will be issued and the prior attempt can be\r abandoned.\r - Do not retry on
Error. The most commonErrorisMaxCheckCount— Nicky's pipeline\r gave up after too many failed checks. Wait for operator intervention or start a new\r attempt with a different transaction.\r - No API key is required for the public payment flow. If the user supplies an API key\r
(
NICKY_API_KEY) the private MCP endpoint exposes account, billing, and webhook tools —\r see MCP reference.\r \r
MCP server (preferred for MCP-capable agents)\r
\r If the host supports MCP, prefer connecting to the public MCP endpoint — it exposes the same\r four tools as the REST flow and avoids hand-built HTTP calls.\r \r
- Public MCP (no auth):
https://api-public.pay.nicky.me/mcp-public/\r- Tools:
GetPaymentRequest,StartPayment,ReportTransaction,GetPaymentProgress\r
- Tools:
- Private MCP (
X-Api-Key: $NICKY_API_KEY):https://api-public.pay.nicky.me/mcp/\r- All public tools plus account management, balances, billing, and webhook configuration\r
- Server card: \x3Chttps://api-public.pay.nicky.me/.well-known/mcp/server-card.json>\r \r See MCP reference for tool signatures.\r \r
Failure modes & recovery\r
\r
| Symptom | Likely cause | Recovery |\r
| ------------------------------------------------ | ------------------------------------- | --------------------------------------------------------------------------------------- |\r
| payment-request returns 404 | Unknown short ID | Ask the user to re-check the link / short ID |\r
| start-payment returns 409 / conflict | Request already paid or expired | Re-fetch the request; if remainingAmount == 0, tell the user the request is settled |\r
| 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 |\r
| progress returns Error: MaxCheckCount | Pipeline exhausted checks | Contact \[email protected]> with the paymentAttemptId — do not retry the same attempt |\r
| progress returns Expired | 30-minute window closed | Start a new attempt |\r
\r
References\r
\r
- REST API reference — every endpoint, request body, and response field\r
- MCP reference — MCP tool signatures and examples\r
- OpenAPI spec (agents)\r
- Interactive API docs\r
- Agent integration guide\r \r
Support\r
\r
For payment issues, direct the user to \[email protected]> and include the\r
paymentAttemptId and (if available) the transactionHash. Do not invent status updates —\r
only what GET /payment/progress returns is authoritative.\r
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install nicky-test - After installation, invoke the skill by name or use
/nicky-test - Provide required inputs per the skill's parameter spec and get structured output
What is Nicky?
Discover and pay Nicky cryptocurrency payment requests on behalf of users. Covers payment request lookup, asset selection, wallet address generation, transac... It is an AI Agent Skill for Claude Code / OpenClaw, with 0 downloads so far.
How do I install Nicky?
Run "/install nicky-test" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Nicky free?
Yes, Nicky is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Nicky support?
Nicky is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Nicky?
It is built and maintained by Michiel Post (@michielpost); the current version is v0.0.1.