DEV Community

Daniel Ioni
Daniel Ioni

Posted on

From Pricing Page to Real Bitcoin Payment: Zorgax Monetization Is Live

From Pricing Page to Real Bitcoin Payment: Zorgax Monetization Is Live

Today we completed an important milestone for the MyZubster ecosystem: Zorgax processed its first real Bitcoin payment and activated a Pro subscription in production.

This was not only a checkout interface test. We completed the entire flow:

  1. The authenticated user selected the Pro plan.
  2. MyZubster created a payment intent.
  3. The user sent the exact BTC amount using an external wallet.
  4. The transaction ID was submitted to Zorgax.
  5. The backend independently verified the transaction.
  6. After the required blockchain confirmation, the account became:

text
Access: ACTIVE
Plan: Pro
The Zorgax plans
Zorgax currently provides three access levels:
Free
- Basic AI assistant
- Limited web research
- Maximum of 2 sources per request
Pro — €9.90
- Advanced assistant
- Web research with up to 5 sources
- Zorgax workspace
- Priority usage
Developer — €29.90
- Everything included in Pro
- Direct API access
- Automation features
- Higher limits
Non-custodial by design
The payment system does not request or store users’ private keys.
Zorgax never signs transactions and never moves funds on behalf of the user. The payment is created and sent through an external Bitcoin wallet.
The application only handles:
- Payment-intent creation
- Expected destination and amount
- Transaction-ID submission
- Independent blockchain verification
- Confirmation checks
- Access activation
A simplified version of the verification logic looks like this:
const transaction = await verifyBitcoinTransaction(txid);

if (transaction.destination !== expectedAddress) {
  throw new Error("Invalid payment destination");
}

if (transaction.amount < expectedAmount) {
  throw new Error("Insufficient payment amount");
}

if (transaction.confirmations < minimumConfirmations) {
  throw new Error("Insufficient blockchain confirmations");
}

await activateAccess({
  userId,
  plan: "pro",
  status: "ACTIVE"
});
Enforcing access on the backend
Displaying different plans in the frontend is not sufficient. Every protected feature must also be enforced by the API.
The production rules now include:
Guest      → basic chat, no live web research
Free       → limited research, maximum 2 sources
Pro        → research, maximum 5 sources, workspace
Developer  → higher limits, automation and direct API
Invalid or missing authentication tokens cannot silently fall back to a lower access level for protected operations.
Checkout, workspace operations, monetization data and Developer research endpoints are all validated server-side.
Fixing the production routing
We also corrected an important Vercel routing issue.
Requests under:
/api/zorgax/monetization/*
were previously at risk of being handled by the generic Zorgax AI gateway route.
The specific monetization route now takes precedence and is handled by the main MyZubster application, where authentication and payment records are available.
One unified access state
MyZubster previously had two access representations:
- Legacy subscriptions
- Newer entitlements
Zorgax now resolves them through a unified access service. If either verified store contains a valid paid entitlement, the highest active plan is selected.
This allows existing subscriptions to continue working while the newer payment lifecycle is introduced.
The first production payment
The first live test used a real Bitcoin mainnet transaction.
Initially, the activation correctly returned:
Blockchain confirmations insufficient
After the transaction received the required confirmation, the same TXID was verified again and the account was automatically upgraded:
Payment verified
Access ACTIVE
Plan Pro
This proves that the complete production chain works:
Login
  ↓
Payment intent
  ↓
External Bitcoin wallet
  ↓
On-chain transaction
  ↓
Confirmation
  ↓
Independent verification
  ↓
Pro activation
What remains
The current system is deliberately conservative.
Future improvements may include:
- Subscription renewal notifications
- Additional supported assets
- Payment and entitlement dashboards
- Downloadable receipts
- Better transaction-status monitoring
- More independent verification providers
Automatic custody and private-key management are intentionally outside the current scope.
Try Zorgax
You can explore Zorgax here:
👉 https://www.myzubster.com/zorgax
The implementation is part of the MyZubster ecosystem:
👉 https://github.com/MyZubster-Ecosystem/myzubster
Relevant production update:
👉 Zorgax monetization access tiers
This milestone turns Zorgax monetization from a pricing page into a working, verifiable production flow.
Enter fullscreen mode Exit fullscreen mode

Top comments (0)