moneydevkit
Add payments to any web app in under 5 minutes. Two supported frameworks: Next.js and Replit (Express + Vite).
Workflow
1. Get credentials
Option A — MCP:
There are two MCP servers:
- Unauthenticated (
/mcp/) — for creating a new account and minting credentials - Authenticated (
/mcp/account/) — for managing your account after setup (requires OAuth)
To create a new account:
claude mcp add moneydevkit --transport http https://mcp.moneydevkit.com/mcp/
After you have credentials, switch to the authenticated MCP for full account control:
claude mcp add moneydevkit --transport http https://mcp.moneydevkit.com/mcp/account/
Option B — CLI:
npx @moneydevkit/create
Option C — Dashboard: Sign up at moneydevkit.com and create an app.
All options produce two values:
MDK_ACCESS_TOKEN— API keyMDK_MNEMONIC— wallet seed phrase
Add both to .env (or Replit Secrets, Vercel env vars, etc.). Both are required.
2. Pick a framework and follow its guide
- Next.js → read references/nextjs.md
- Replit (Express + Vite) → read references/replit.md
3. Create products (optional)
For fixed catalog items, create products via the dashboard or MCP:
mcporter call moneydevkit.create-product name="T-Shirt" priceAmount=2500 currency=USD
Then use type: 'PRODUCTS' checkouts with the product ID.
For dynamic amounts (tips, donations, invoices), skip products and use type: 'AMOUNT' directly.
4. Deploy
Deploy to Vercel (Next.js) or Replit. Ensure MDK_ACCESS_TOKEN and MDK_MNEMONIC are set in the production environment.
⚠️ Use printf not echo when piping env vars — trailing newlines cause silent auth failures.
Checkout types
| Type | Use case | Required fields |
|---|---|---|
AMOUNT | Dynamic amounts, tips, invoices | amount, currency |
PRODUCTS | Sell dashboard products | product (product ID) |
Pricing options
- Fixed price — set specific amount (USD cents or whole sats)
- Pay what you want — customer chooses amount (set
amountType: 'CUSTOM'on product)
Currency
USD— amounts in cents (e.g. 500 = $5.00)SAT— amounts in whole satoshis
Customers
Collect customer info to track purchases and enable refunds:
await createCheckout({
// ...checkout fields
customer: { email: 'jane@example.com', name: 'Jane', externalId: 'user-123' },
requireCustomerData: ['email', 'name'] // show form for missing fields
})
MCP tools
If the moneydevkit MCP server is connected (authenticated), these tools are available:
create-app/list-apps/update-app/rotate-api-key— manage appscreate-product/list-products/get-product/update-product/delete-productcreate-customer/list-customers/get-customer/update-customer/delete-customerlist-checkouts/get-checkout— view checkout sessionslist-orders/get-order— view completed paymentssearch-docs— search moneydevkit documentation
Security
⚠️ MDK_MNEMONIC is a wallet seed phrase — treat it like a private key.
- Never commit it to git or share in chat messages
- Never log it in application output or error handlers
- Use environment variables or a secrets manager (Vercel env vars, Replit Secrets, AWS Secrets Manager, etc.)
- For production: prefer separate apps with limited-scope keys rather than reusing one mnemonic across projects
- The mnemonic controls the Lightning wallet that receives payments — if compromised, funds can be stolen
- Test with signet/testnet credentials first before using mainnet
MDK_ACCESS_TOKEN is an API key scoped to your app. Rotate it via the dashboard or MCP (rotate-api-key) if compromised.
External endpoints used by this skill:
mcp.moneydevkit.com— MCP server for account management (HTTPS, OAuth)docs.moneydevkit.com— documentation
Source code: @moneydevkit on npm · docs.moneydevkit.com
Docs
Full documentation: docs.moneydevkit.com