Skip to main content
The financial management section covers the two primary money flows on the platform: deposits (users funding their wallets) and withdrawals (users cashing out). Both are managed through dedicated admin pages that update in real time via Supabase Realtime subscriptions.

Deposits

The Deposits page at Admin > Deposits lists all deposit requests from the transactions table where type = 'deposit'. By default the view is filtered to status = 'pending'. You can switch between Pending, Approved, Rejected, and All using the filter tabs. Each deposit row shows the username, amount, network, wallet address, submission timestamp, and a link to the uploaded proof-of-payment image (proof_url).
1

Navigate to Admin > Deposits

Open the Deposits page. All pending deposit requests are listed at the top. The summary bar shows the count and total value of pending requests alongside today’s approved totals.
2

Review the proof-of-payment image

Click the proof image thumbnail to open the full-size screenshot. Verify that the transfer amount, network, and destination address match the request details shown in the row.
3

Approve the deposit

Click Approve on the confirmed request. The platform automatically:
  • Sets status = 'approved' on the transaction record.
  • Adds the deposit amount to the user’s wallet_balance in the profiles table.
  • Checks whether this is the user’s first deposit and credits any applicable bonus commissions.
  • Automatically upgrades the user’s level_id if their cumulative deposits cross a tier threshold (for example, 100unlocksLV2,100 unlocks LV2, 500 unlocks LV3).
  • Sends an in-app notification to the user.
4

Reject the deposit

If the proof is invalid or the amount does not match, click Reject. The transaction status is set to 'rejected' and no balance is credited. The user receives an in-app notification.
There is no automated blockchain verification. All approval decisions are based on the screenshot uploaded by the user. Review the proof image carefully before approving — approving a fraudulent screenshot will credit real platform balance to the user with no on-chain confirmation.

Withdrawals

The Withdrawals page at Admin > Withdrawals lists all withdrawal requests where type = 'withdrawal'. Pending requests display the username, requested amount, network, and the destination wallet_address the user has bound to their account.
1

Navigate to Admin > Withdrawals

Open the Withdrawals page. All pending payout requests are listed. The summary bar shows pending count, today’s approved total, and rejected count.
2

Process the payout externally

Open your crypto wallet (for example, Binance or Trust Wallet), locate the user’s wallet_address displayed in the row, and manually send the exact USDT amount on the correct network. The Approve button does not interact with any blockchain — it only updates the database.
3

Mark as completed in the dashboard

After confirming the on-chain transfer has been sent, click Approve in the dashboard. This sets the transaction status to 'approved' and sends an in-app notification to the user.
4

Reject a withdrawal

If you need to deny a request, click Reject. The platform automatically refunds the frozen_amount back to the user’s wallet_balance so they do not lose funds. The transaction is marked 'rejected' and the user is notified.
Approving a withdrawal only updates the database record. You must send the funds manually from your own wallet before clicking Approve. If you click Approve without sending, the user’s record will show a completed payout they never received.

Transactions ledger

Navigate to Admin > Transactions for a full ledger view of every financial event on the platform. This includes all transaction types:
TypeDescription
depositFunds added to a user’s wallet
withdrawalFunds removed from a user’s wallet
commissionTask completion earnings credited to a user
freezeFunds locked (for example, during withdrawal processing)
unfreezeLocked funds released back to the wallet
Use this page to audit balances, investigate discrepancies, or verify that commission payouts were recorded correctly.

Build docs developers (and LLMs) love