Skip to main content
Lumos Gate Docs

Credits & Billing

Deposit credits via USDT, track automatic plan deductions, and manage your balance. Includes low balance warnings, account freeze rules, and auto-unfreeze.

Credits & Billing

Lumos Gate uses a prepaid credit system. You deposit credits into your account, and the cost of your plan is deducted automatically on a recurring basis. There are no invoices, no recurring card charges, and no surprise bills.

How It Works

The billing lifecycle has four stages:

  1. Deposit credits into your account using USDT or other supported cryptocurrencies
  2. Plan cost is deducted automatically from your balance every 30 days
  3. If balance runs low, you receive a low_balance notification
  4. If balance is insufficient, the account is frozen until you deposit more
Deposit $50 USDT
     |
     v
Balance: $50.00
     |
     | Plan deduction ($19/mo charged every 30 days)
     v
Balance: $31.00
     |
     | 30 days later, next deduction
     v
Balance: $12.00  --> low_balance notification sent (< 2x plan price)
     |
     | 30 days later, deduction attempted
     v
Balance: $12.00 < $19.00 needed --> deduction fails --> account_frozen
     |
     | You deposit $50 USDT
     v
Balance: $62.00 >= $19.00 plan price --> auto-unfreeze --> account active

Deposits

Payment Methods

Supported payment networks:

  • USDT (Tether) on TRC-20 -- Tron network, lower fees, faster confirmations
  • USDT (Tether) on BEP-20 -- BNB Smart Chain network

Deposit Amounts

The system accepts the following fixed deposit amounts:

AmountApproximate Coverage (Pro $19/mo)
$10~16 days
$20~1 month
$50~2.6 months
$100~5.3 months
$200~10.5 months
$500~26 months

Tip: Depositing a larger amount up front reduces the number of transactions you need to make and ensures a larger buffer before any low balance warnings.

Making a Deposit

  1. Navigate to Dashboard -> Settings -> Billing
  2. Click Deposit
  3. Select your deposit amount ($10, $20, $50, $100, $200, or $500)
  4. Select the blockchain network (TRC-20 or BEP-20)
  5. Send USDT to the displayed wallet address
  6. Credits are added to your balance once the transaction is confirmed on-chain

Note: Cryptocurrency transactions require network confirmations. TRC-20 confirmations typically take 1-3 minutes. BEP-20 confirmations typically take a few seconds to a minute. Your balance updates automatically once the transaction is confirmed on-chain.

Deposit Processing Flow

The technical flow for deposits:

  1. You initiate a deposit in the dashboard
  2. The system generates a temporary wallet address with an expiration time
  3. You send USDT to that address
  4. The blockchain transaction is detected and verified automatically
  5. The system atomically updates your credit balance with the received amount
  6. If the account was frozen and the new balance covers the plan price, the account is automatically unfrozen
  7. Your balance is updated and visible in the dashboard

Important: The system uses the actual received amount from the blockchain. If you overpay, the full received amount is credited. If you underpay (partial payment), the payment is logged for manual review but credits are not added -- you must send the full amount.

Deposit While Frozen

You can make deposits even when your account is frozen. The deposit flow is accessible even when frozen, so frozen accounts can still access the billing tab and make deposits. This is by design -- freezing should not prevent you from adding credits to unfreeze.

Billing Cycle

Plan costs are deducted automatically every 30 days. The WebSocket server runs a maintenance loop every 5 minutes and triggers the billing deduction check.

Deduction Process

  1. The WebSocket server triggers the billing deduction check via an internal API call
  2. The system queries all accounts due for deduction that have an active status and a paid plan
  3. For each account due for deduction, the plan's monthly price is subtracted from the balance
  4. If the deduction succeeds and the remaining balance is below 2x the plan price, a low_balance notification is sent
  5. If the balance is insufficient, the account is frozen and an account_frozen notification is sent
  6. If a concurrent update is detected (version conflict from a simultaneous deposit), the deduction is retried in 5 minutes without freezing

Note: The billing deduction process is internal-only and is not accessible from the public API.

Deduction Schedule

After each successful deduction, the next deduction date is set to 30 days in the future. The deduction amount is the full monthly plan price -- not a daily prorated amount.

Deduction timeline:
  Day 0:  Plan activated, $19 deducted, next deduction = Day 30
  Day 30: $19 deducted, next deduction = Day 60
  Day 60: $19 deducted, next deduction = Day 90
  ...

Free Plan Users

If you are on the Free plan, no deductions occur. The Free plan costs $0/mo, and no deduction date is scheduled.

Balance Protection

Optimistic Locking

The balance record uses a version number for optimistic locking. Every balance update increments the version, preventing race conditions when multiple deductions or deposits happen simultaneously. If the version has changed between read and write (for example, a deposit arrived while a deduction was being processed), the deduction is retried in 5 minutes rather than incorrectly freezing the account.

Row-Level Locking

For critical operations like deductions and plan changes, the system uses database-level row locking to prevent any concurrent modifications during the transaction.

Immutable Transaction Ledger

Every balance change is recorded as an immutable ledger entry. Transaction types include:

TypeDescription
depositUSDT deposit confirmed on-chain
deductionMonthly plan cost deducted from balance
refundProration credit when changing plans

Each transaction records the amount, the balance after the transaction, a human-readable description, and a timestamp. You can view the full history in Dashboard -> Settings -> Billing.

Low Balance Warning

When your balance drops below 2x your plan's monthly price, a low_balance notification is sent. This gives you roughly one billing cycle to deposit before the account freezes.

Example:
  Plan: Pro ($19/mo)
  Warning threshold: $38.00 (2x plan price)
  Balance drops to $36.50 after deduction --> low_balance notification sent

Low balance warnings are throttled: once a warning is sent, another will not be sent for at least 7 days, even if the balance remains low. This prevents notification spam during the period where you might be arranging a deposit.

The warning is checked after each successful billing deduction. You will receive the notification via your configured delivery channels (email, webhook). See Notifications for setup.

Account Freezing

If a billing deduction cannot be completed because the balance is too low, the account enters frozen mode. See Account Management -- Frozen Accounts for the full details on what frozen mode means.

What Happens When Frozen

  • Dashboard access -- You can still log in and view your dashboard, servers, domains, and analytics
  • Read operations -- All read operations continue to work normally
  • Mutation operations -- All create, update, and delete operations are blocked. This includes adding servers, modifying domains, changing WAF rules, and other changes
  • Emergency domain updates -- Changing origin IPs on existing domains is still allowed for safety
  • Existing traffic -- Shield servers continue proxying traffic. Your sites stay online. The agent is already configured and does not require dashboard connectivity to serve traffic
  • Frozen banner -- A banner is displayed across the dashboard indicating the account is frozen
  • Deposits still work -- You can still access the billing tab and make deposits

Warning: While your sites continue working during a freeze, you cannot make any configuration changes. If you need to update origins, add domains, or modify WAF rules, you must deposit credits first.

Retry After Freeze

When a deduction fails and the account is frozen, the next deduction attempt is scheduled for 24 hours later. If you deposit credits and the account unfreezes before that, the normal 30-day deduction cycle resumes from the next successful deduction.

Unfreezing

Unfreezing is automatic. When you deposit enough credits to cover your plan's monthly price, the account is unfrozen immediately:

  1. Deposit credits through the billing tab
  2. Send USDT to the provided wallet address
  3. The blockchain transaction is confirmed
  4. The system updates the balance
  5. The webhook handler checks if the account is frozen
  6. If the new balance >= plan monthly price, the account status changes from "frozen" back to "active"
  7. The dashboard refreshes and all mutation operations are re-enabled

No manual action is required beyond making the deposit. The unfreeze happens within seconds of the payment confirmation.

Tip: To avoid accidental freezes, keep your balance above 2x your plan price. You will receive a low_balance notification when it drops below this threshold.

Plan Changes and Proration

When you change plans, credits are prorated using an atomic transaction that prevents partial failures:

  • Upgrading -- You receive a proration credit for unused days on the old plan, then the new plan's full monthly price is deducted. If the balance is insufficient after the credit, the change is rejected and nothing changes.
  • Downgrading -- You receive a proration credit for unused days on the old plan, then the lower plan's monthly price is deducted (or nothing if downgrading to Free).
  • Switching to Free -- You receive a proration credit for unused days, no deduction is made, and the next deduction date is cleared.

Plan changes take effect immediately. A config push is sent to all your servers after a successful plan change.

See Plans -- Changing Plans for detailed proration examples.

Dashboard Billing Tab

The billing tab in Dashboard -> Settings -> Billing shows:

  • Balance card -- Current credit balance and your current plan name
  • Plan card -- Current plan details with upgrade/downgrade options
  • Deposit modal -- Initiate a new deposit with amount and network selection
  • Transaction history -- Complete ledger of all deposits, deductions, and proration adjustments with timestamps, amounts, and running balance

Common Questions

What happens if I deposit while a deduction is in progress?

The system uses optimistic locking. If a deposit and deduction happen simultaneously, the deduction detects a version conflict and retries in 5 minutes. Your deposit is never lost.

Can I get a refund for unused credits?

Credits are non-refundable. If you delete your account, any remaining balance is forfeited. Export your configuration before deleting.

What if I send the wrong amount?

The system credits the actual received amount from the blockchain. If you overpay, the extra is credited. If you underpay (partial payment), it is logged for review but not credited. Send the exact amount shown in the deposit modal.

Does the Free plan ever charge anything?

No. The Free plan is $0/mo. No deductions occur, no deposits are required, and the account will never be frozen due to billing.

What Happens During Service Outages

The billing system is designed to be fault-tolerant. Here is how different outage scenarios affect your credits and service:

Payment Infrastructure Down

If the payment processing service is unavailable, new deposits cannot be created (the deposit modal will show an error). However, your existing balance and service are completely unaffected. Agents continue serving traffic, and billing deductions proceed normally from your current balance. Once the service recovers, deposits work again immediately.

As a fallback, the system polls for stuck payments every 5 minutes. If a confirmation was missed (for example, your dashboard was temporarily unreachable), the polling mechanism detects the confirmed payment and credits your balance.

Dashboard Down

If the dashboard is unreachable, agents continue serving traffic independently -- they do not depend on the dashboard for ongoing operation. The billing deduction cycle pauses because the WebSocket server triggers deductions through the dashboard, and this call will fail. When the dashboard recovers, the deduction cycle resumes from where it left off. There is no double-charging -- each deduction updates the next deduction date atomically, so a missed cycle simply runs on the next successful check.

WebSocket Server Down

If the WebSocket server crashes, agents keep serving traffic with their current configuration. The maintenance loop (billing, health checks, stale detection) stops entirely. The server auto-restarts, and the maintenance loop resumes. Billing deductions that were due during the outage are processed on the first successful cycle after recovery.

Next Steps