Nicky

API key required
Security

Discover 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.

Install

openclaw skills install nicky-test

Nicky Payments

Pay 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.

When to use this skill

Use this skill when the user asks to:

  • Pay a Nicky request: "Pay pay.nicky.me/ABCDEF" or "Pay request #ABCDEF"
  • Send crypto to a Nicky payment link shared in chat
  • Check whether a Nicky payment attempt has been confirmed
  • Report a blockchain transaction hash to speed up a pending Nicky payment
  • Look up the assets a Nicky receiver accepts

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.

Quick start

The full payment flow runs without authentication. The agent drives the user-facing conversation; the API does the rest.

  1. Resolve the short ID from the message or URL. Accepted forms:
    • pay.nicky.me/ABCDEFshortId = "ABCDEF"
    • pay.nicky.me/aliceshortId = "alice" (nick-based, ≤ 6 chars usually resolves)
    • #ABCDEFshortId = "ABCDEF"
  2. Discover the request — see REST API → Get payment request. Returned payload includes the receiver, the open amount, the native asset, and every accepted asset with conversion details.
  3. Ask the user for payerName and payerEmail (the receiver uses these to identify who paid). Never invent them.
  4. Pick an asset — prefer the native asset of the request; otherwise pick one the receiver accepts and let Nicky convert.
  5. Start the payment — see REST API → Start payment. Capture paymentAttemptId, walletAddress, amount, and expiresAt. The address lease is valid for 30 minutes.
  6. Instruct the user (or the agent's own wallet) to send the exact 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.
  7. (Recommended) Report the tx hash as soon as the transaction is broadcast — see REST API → Report transaction. This skips deposit polling and jumps straight to blockchain validation, which can save minutes.
  8. Poll for confirmation every 15–30 s — see REST API → Payment progress. Stop when status == "Confirmed" OR isPaid == true.

Status values

GET /payment/progress returns one of:

StatusMeaningAgent action
PendingWaiting for the transaction to appear on-chain or in the queueKeep polling (or wait for the report-tx call)
ReceivedTransaction detected, waiting for confirmationsKeep polling
ConfirmedConfirmed, matched to the request, and creditedStop polling — report success to the user
Expired30-minute window closed before any matching depositTell the user, offer to start a new attempt
ErrorPipeline failed (e.g. max check count exceeded, blacklist hit)Surface the error message; do not retry blindly

Critical rules

These are the rules agents most often get wrong. Read them carefully.

  • Never invent payer details. payerName and payerEmail are required and are shown to the receiver. Always ask the user.
  • Send the exact quoted amount. The amount returned by start-payment is the amount that will be matched. Sending more or less than ±2% risks the deposit being un-matched.
  • Honor the 30-minute window. Funds sent after 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.
  • Do not retry on 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.
  • No API key is required for the public payment flow. If the user supplies an API key (NICKY_API_KEY) the private MCP endpoint exposes account, billing, and webhook tools — see MCP reference.

MCP server (preferred for MCP-capable agents)

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.

  • Public MCP (no auth): https://api-public.pay.nicky.me/mcp-public/
    • Tools: GetPaymentRequest, StartPayment, ReportTransaction, GetPaymentProgress
  • Private MCP (X-Api-Key: $NICKY_API_KEY): https://api-public.pay.nicky.me/mcp/
    • All public tools plus account management, balances, billing, and webhook configuration
  • Server card: https://api-public.pay.nicky.me/.well-known/mcp/server-card.json

See MCP reference for tool signatures.

Failure modes & recovery

SymptomLikely causeRecovery
payment-request returns 404Unknown short IDAsk the user to re-check the link / short ID
start-payment returns 409 / conflictRequest already paid or expiredRe-fetch the request; if remainingAmount == 0, tell the user the request is settled
progress stays Pending > 5 min on TRC-20Tx not yet broadcast or wrong networkConfirm with the user that the tx was sent to the exact walletAddress
progress returns Error: MaxCheckCountPipeline exhausted checksContact support@nicky.me with the paymentAttemptId — do not retry the same attempt
progress returns Expired30-minute window closedStart a new attempt

References

Support

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.