We Completed the First Live Bitcoin-to-Pro Activation on MyZubster
Today we reached a major milestone: Zorgax successfully processed a real Bitcoin payment and activated Pro access in production.
This was a complete end-to-end test, not a simulated checkout.
The production flow was:
MyZubster login
↓
Zorgax payment intent
↓
External Bitcoin wallet
↓
On-chain transaction
↓
Blockchain confirmation
↓
Independent verification
↓
Pro access activated
What is Zorgax?
Zorgax is the AI assistant inside the MyZubster ecosystem.
It combines:
- General AI assistance
- Web research
- Source collection
- Structured-data preparation
- Workspace features
- Developer APIs
- Bitcoin-based access activation
The available plans are:
Free €0
Pro €9.90
Developer €29.90
Free users receive limited research, Pro users gain workspace features and additional sources, while Developer accounts can access automation and direct APIs.
A non-custodial payment architecture
MyZubster does not request, store or manage users’ private keys.
Users send Bitcoin through their own external wallet. Zorgax only creates a payment intent and records:
- The selected plan
- The expected BTC amount
- The destination address
- The expiration time
- The submitted transaction ID
- The verification status
The backend then verifies the public transaction independently.
A simplified version of the process looks like this:
const payment = await verifyTransaction(txid);
if (payment.destination !== intent.destination) {
throw new Error("Unexpected payment destination");
}
if (payment.amount < intent.expectedAmount) {
throw new Error("Insufficient payment amount");
}
if (payment.confirmations < minimumConfirmations) {
throw new Error("Insufficient blockchain confirmations");
}
await activateEntitlement({
ownerId: intent.ownerId,
plan: intent.plan,
status: "ACTIVE"
});
The application never signs or broadcasts a transaction.
Waiting for blockchain confirmation
During the live test, Zorgax detected the transaction but initially returned:
Payment not activated:
Insufficient blockchain confirmations
This was the expected behavior.
The system did not activate Pro access simply because a valid-looking TXID had been submitted. It waited until the transaction had the required blockchain confirmation.
After confirmation, we submitted the same TXID again:
Payment verified
Access ACTIVE
Plan Pro
Backend access enforcement
We also implemented server-side feature enforcement.
Guest
- Basic chat
- No live web research
Free
- Limited research
- Maximum 2 sources
Pro
- Advanced research
- Maximum 5 sources
- Zorgax workspace
Developer
- Higher limits
- Automation
- Direct research API
These restrictions are enforced by the backend, not only hidden in the user interface.
Protected endpoints return authentication or payment-required responses when the account does not have the necessary plan.
Fixing a production routing problem
During implementation, we discovered that the generic Zorgax gateway could intercept monetization requests.
The Vercel routing order was corrected so that:
/api/zorgax/monetization/*
is processed by the authenticated MyZubster backend before the generic AI proxy route.
This ensures that purchases, subscriptions and entitlements use the correct database and authentication middleware.
Unifying subscriptions and entitlements
The project contained both legacy subscription records and newer entitlement records.
We introduced a unified access service that:
- Checks both stores.
- Selects active records.
- Chooses the highest available plan.
- Fails safely when access cannot be verified.
- Returns a single policy to every Zorgax endpoint.
This keeps older subscriptions compatible with the new payment system.
What the live test proves
The successful transaction proves that the following components work together in production:
- Authentication
- Payment-intent generation
- BTC amount calculation
- External wallet payment
- TXID submission
- Destination validation
- Amount validation
- Confirmation validation
- Database persistence
- Pro entitlement activation
- Feature-access enforcement
It transforms Zorgax monetization from a pricing interface into a functioning production system.
Current boundaries
The first release intentionally remains conservative:
- Bitcoin is currently the operational settlement asset.
- Payments are non-custodial.
- Private keys are never accepted.
- Access activation requires independent verification.
- Automatic recurring billing is not currently enabled.
Future work can add renewal notifications, payment dashboards, downloadable receipts and more independent blockchain providers.
Explore the project
Zorgax:
https://www.myzubster.com/zorgax
MyZubster repository:
https://github.com/MyZubster-Ecosystem/myzubster
Production monetization update:
https://github.com/MyZubster-Ecosystem/myzubster/commit/d7a579cd89801d29ac094a19af42fb17350691ef
The next goal is to make the complete payment and entitlement lifecycle easier to monitor while preserving the non-custodial design.