Donation / Tip Page

Accept crypto donations or tips with a shareable page.

Open the interactive version or read this guide as markdown.

Tags: Payment Pages, Payments, Frontend

Paste this prompt into Claude, ChatGPT, or any AI tool. It works best with the CoinCircuit MCP server connected: https://mcp.coincircuit.io


You are helping me add a crypto donation/tip page to my existing site using CoinCircuit. I have the CoinCircuit MCP server connected.

If you have access to the CoinCircuit MCP server, call these tools for the most accurate and detailed schema outputs:

Use the live MCP data as your source of truth. The details below are a guide, but if the MCP returns something different, trust the MCP.

API Basics

Project Context

I have a site and I'm adding a public page where supporters can donate any amount in crypto.

What I Need You to Implement

Option A: Payment Page (zero backend, simplest approach)

CoinCircuit has hosted payment pages with open-amount input. One API call and you get a shareable URL.

Endpoint: POST /api/v1/payments/pages (Call get_endpoint with method post, path /api/v1/payments/pages, section request in the CoinCircuit MCP for the exact request body with all field types and validations.)

Required fields:

Optional fields:

Example request:

{
  "title": "Support My Project",
  "description": "Help me keep building open source tools",
  "isActive": true,
  "currency": "USD",
  "minAmount": 1
}

Response (201): Returns the payment page object:

(Call get_endpoint with method post, path /api/v1/payments/pages, section success in the CoinCircuit MCP for the full response schema.)

No backend required. Share the URL on social media, your website, or anywhere. Donors enter any amount they choose.

Option B: Custom branded donation page (full UI control)

For full control over the design:

  1. Build a frontend with an open amount input field

  2. On "Donate" click, your backend creates a checkout session:

    Endpoint: POST /api/v1/payments (Call get_endpoint with method post, path /api/v1/payments, section example in the CoinCircuit MCP for a sample request.)

    Required fields: title, description, amount (string), currency, customer (with at least email).

    Store donor info in metadata:

    {
      "title": "Donation",
      "description": "Donation from Jane",
      "amount": "25.00",
      "currency": "USD",
      "customer": { "email": "jane@example.com" },
      "metadata": {
        "donorName": "Jane",
        "message": "Keep up the great work!"
      },
      "successUrl": "https://mysite.com/thanks"
    }
    
  3. Open the checkout SDK modal with the session reference, or redirect to data.url

Webhook handler

Listen for payment.completed to:

(Call get_schema with name PaymentCompletedWebhookDto in the CoinCircuit MCP for every field available in the webhook payload.)

Updating or deleting a payment page

(Call search_api with feature Payment Pages in the CoinCircuit MCP to see all available endpoints: create, update, delete, list, and get by reference.)

(Call get_endpoint with method put, path /api/v1/payments/pages/{reference} in the CoinCircuit MCP for the update request schema.)

Constraints