Withdrawals settle to a Stellar G… address. This can be your personal wallet, a custodial exchange address, or any valid Stellar account that has been activated (minimum 1 XLM reserve).
Withdraw from the dashboard
Navigate to Dashboard → Withdraw (/dashboard/withdraw). You must have your Freighter wallet connected to load this page.
Open the Withdraw page
Click Withdraw in the left sidebar. The page automatically loads your business profile and available virtual balance.
Enter the withdrawal amount
Type the amount in XLM you want to withdraw. The amount must not exceed your available virtual balance — the sum of all paid, unspent payment links attributed to your business.
Enter the recipient Stellar address
Paste the Stellar address where you want to receive funds. The address must:
- Start with
G - Be exactly 56 characters long
- Belong to an activated Stellar account
Submit the withdrawal
Click Withdraw. Hypertron immediately validates your balance and address, then begins processing. You will see a status indicator while the Privacy Relay routes the payout.
What happens behind the scenes
When you submit a withdrawal, Hypertron executes a two-phase process: Phase 1 — Nullifier settlement Hypertron selects the minimum set of unspent payment nullifiers that cover your requested amount, in order from most recent to oldest. It calls the SorobanPoolManager contract to mark these nullifiers as spent. This prevents any double-withdrawal of the same funds and maintains an auditable on-chain record.
Phase 2 — Privacy Relay payout
Hypertron forwards the payout request to the Privacy Relay Layer, which:
- Creates a one-time ephemeral wallet not linked to any previous account
- Routes the funds through multiple hops with randomised timing
- Applies a small amount jitter (±0.000001 XLM) to frustrate amount-matching analysis
- Sends the final transfer from the ephemeral wallet to your recipient address
Withdraw via the API
You can also request withdrawals programmatically using the REST endpoint.Request
Request body fields
Your Hypertron business ID. Find it in Dashboard → Settings.
Amount in XLM to withdraw. Must be a positive decimal number (e.g.
"500" or "123.45"). Cannot exceed your available virtual balance.The Stellar address to receive the funds. Must start with
G and be exactly 56 characters.Response
A successful withdrawal returns HTTP200 with the following body:
Unique ID for this withdrawal record. Use it to look up the withdrawal in your dashboard or via GET
/api/withdraw?businessId=....completed when the payout has been sent. failed if either the contract step or payout step encountered an error.The Stellar transaction hash for the on-chain nullifier settlement. Verifiable on any Stellar block explorer.
The Stellar transaction hash for the final payout transfer to your recipient address.
Retrieve withdrawal history
Use a GET request to list all withdrawals for your business:id, amount, recipientAddress, status, payoutTxHash, contractTxHash, and createdAt.
Common errors
Insufficient virtual balance
Insufficient virtual balance
Error:
Insufficient virtual balance. Available: X.XXXX XLM, requested: YYour requested amount exceeds the unspent balance across your paid payment links. Either wait for more payments to arrive, or reduce the withdrawal amount to be at or below the stated available figure.Invalid Stellar address
Invalid Stellar address
Error:
Valid Stellar recipient address (G...) requiredThe address you provided is not a valid Stellar public key. Make sure the address:- Starts with the letter
G - Is exactly 56 characters long
- Contains no spaces or extra characters
Amount must be a positive number
Amount must be a positive number
Error:
Valid amount required or Amount must be a positive numberThe amount field must be a numeric string representing a positive decimal (e.g. "100" or "50.25"). Zero, negative, and non-numeric values are rejected.Business not found
Business not found
Error:
Business not foundThe businessId you provided does not match any registered business. Verify your business ID in Dashboard → Settings.Payout failed after nullifiers marked
Payout failed after nullifiers marked
Error:
Payout failed (nullifiers already marked on-chain): ...The nullifier settlement succeeded on-chain but the Privacy Relay payout failed. Contact Hypertron support with your withdrawalId. Because the nullifiers are already marked, your virtual balance will show those funds as spent — the Hypertron team can manually resolve the payout.