Skip to content

Commerce — Stripe

These SKUs are software and ops services.
Brokerage is licensed broker-dealer activity and is not sold here.

Live catalog is on Stripe account blockchainfraud.org (live mode). Checkout uses Payment Links (card). POST /api/checkout returns { url } for the matching SKU. Software/ops only — not brokerage.

SKUNameAmountPay
operator_docsOperator Docs$99Pay
deal_playbookDeal Playbook pack$249Pay
rwa_family_setupRWA family setup$1,500Pay
dao_conciergeDAO deploy concierge$750Pay
bitgo_onboardingBitGo deal-ops onboarding$2,500Pay

Body:

{ "sku": "operator_docs" }

When configured: creates a Stripe Checkout Session and returns { id, url, sku }.
When not configured: HTTP 503 JSON, for example:

{
"error": "Stripe not configured",
"status": 503,
"setup": {
"steps": [
"Create products/prices in Stripe Dashboard",
"wrangler secret put STRIPE_SECRET_KEY",
"Set worker var PRICE_OPERATOR_DOCS to the Price ID (price_...)",
"Optional: STRIPE_WEBHOOK_SECRET for /api/webhook",
"Set CHECKOUT_SUCCESS_URL and CHECKOUT_CANCEL_URL"
]
}
}
PageDefault URL
Successhttps://dev.genesis402.com/commerce/success/
Cancelhttps://dev.genesis402.com/commerce/cancel/

Override with CHECKOUT_SUCCESS_URL / CHECKOUT_CANCEL_URL.

POST /api/webhook — on checkout.session.completed, stores a stub record in KV when STRIPE_WEBHOOK_SECRET and CHECKOUT_KV are bound. Without the secret, returns 503 setup JSON.

See root .env.example. Never commit secrets. This portal does not call Stripe live during docs builds.