coinpay-onboard
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@coinpay-onboardset up CoinPay for example.agent with webhook https://example.agent/hooks/coinpay"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@profullstack/coinpay-onboard
Take crypto on CoinPay, set up in one pass. The onboarding behind pay.agent and every fleet site launch.
One engine, idempotent (run it twice, it finds what it made):
payout addresses on the account (optional)
a business, found by name or made
the account's payout wallets copied into it
its webhook pointed where you say, and the secret
which coins it can be paid in now
At site launch
npx @profullstack/coinpay-onboard site example.agent --webhook https://example.agent/hooks/coinpayLogs in as the merchant (COINPAY_EMAIL + COINPAY_PASSWORD, else the
profullstack-private-secrets--prod vault), then writes COINPAY_API_URL,
COINPAY_BUSINESS_ID, COINPAY_API_KEY and COINPAY_WEBHOOK_SECRET into the
site's logicsrc vault (profullstack/example-agent--prod). --no-vault prints
them instead.
Related MCP server: cryptunnel-mcp
In an app (Sign in with CoinPay)
import { CoinPay, onboard, verifyWebhook } from '@profullstack/coinpay-onboard'
import { authorizeUrl, exchangeCode, pkce, refresh } from '@profullstack/coinpay-onboard/oauth'
// 1. send them to CoinPay (scopes: openid profile email wallet:read merchant)
const { verifier, challenge } = pkce()
redirect(authorizeUrl({ clientId, redirectUri, state, challenge }))
// 2. back with ?code=: tokens (1 h), refresh token (30 d, single-use: keep the newest)
const tokens = await exchangeCode({ code, verifier, clientId, redirectUri })
// 3. everything they need, in one call
const coinpay = new CoinPay({ token: tokens.accessToken })
const ready = await onboard(coinpay, { businessName: 'pay.agent/alice', webhookUrl: 'https://pay.agent/hooks/coinpay' })
// 4. take a payment
const payment = await coinpay.createPayment({ businessId: ready.business.id, amountUsd: 5, currency: 'usdc_sol' })
// payment.address, payment.amountCrypto, payment.expiresAt
// 5. hear about it
verifyWebhook(rawBody, req.headers['x-coinpay-signature'], ready.webhookSecret!)Hosted checkout (any coin or PayPal)
The buyer picks the method on CoinPay's page; the site never builds a chain picker.
import { CoinPay, readWebhook, verifyWebhook } from '@profullstack/coinpay-onboard'
const coinpay = new CoinPay({ token: process.env.COINPAY_API_KEY }) // the business cp_live_ key
const session = await coinpay.createCheckoutSession({
amount: 19, // USD
description: 'Pro plan, 1 month',
customerEmail: user.email, // required
accountId: user.id, // required; use the email for guests
property: 'example.com', // the site hostname
metadata: { plan: 'pro' },
successUrl: 'https://example.com/billing?session={CHECKOUT_SESSION_ID}',
cancelUrl: 'https://example.com/pricing',
})
redirect(session.url) // https://coinpayportal.com/checkout/cs_...
// webhook
if (!verifyWebhook(rawBody, req.headers['x-coinpay-signature'], secret)) return 401
const event = readWebhook(JSON.parse(rawBody))
if (event.paid) grant(event.accountId, event.metadata, event.checkoutSessionId)readWebhook reads the nested data (the top-level id is the event, not the
payment), treats payment.confirmed and payment.forwarded as paid, and a
PayPal capture (payment.confirmed, status completed, method: 'paypal')
the same. coinpay.checkoutSession(id) polls a session; with the business key
it carries the payer fields and payment ids. With an OAuth token, pass
businessId.
CLI and MCP
coinpay-onboard site <name> --webhook URL launch step, keys into the vault
coinpay-onboard pay <business-id> <usd> [coin]
coinpay-onboard status <payment-id>
coinpay-onboard coins
coinpay-onboard mcp claude mcp add coinpay-onboard -- npx @profullstack/coinpay-onboard mcpMIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Crypto pay links and API for people and AI agents. BTC, Lightning, USDC, USDT, EURC, SOL, ETH.
Pay for APIs with USDC. Read-only x402 payment discovery, verification, evidence, and status.
Agent Commerce Protocol MCP — bridges Stripe ACP + Google AP2 + Coinbase x402 for agent payments
Paid APIs and tokenized shares for agents. Prepaid funding, including authorized Instinct checkout.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables agents to accept and spend payments via Rill's network, including pay links, wallets, and Connect onboarding.MIT

cryptunnel-mcpofficial
AlicenseAqualityCmaintenanceEnables coding agents to create and look up crypto payments over stdio, returning checkout links, payment statuses, paged payment lists, and receivable currencies, with real payments gated behind an explicit opt-in environment flag.4MIT- FlicenseNot gradedqualityAmaintenanceEnables AI coding agents and MCP hosts to add stablecoin checkout, payment links, payment status checks, webhook verification, and webhook-based access logic to applications.-
- FlicenseNot gradedqualityAmaintenanceEnables AI coding agents to set up crypto checkout integration by registering workspaces, creating paylinks and public payment invoices, configuring webhook endpoints, verifying webhook signatures, and checking stablecoin payment status.-