Referrals
Bring people to NASDANK and earn a share of the Ultra trading fee they generate — three tiers deep, paid in the wrapped gas token, claimed from a merkle root you can verify yourself.
The tiers
Those percentages are of the 1% Ultra routing fee, not of the trade. A $10,000 swap through Ultra pays a $100 routing fee; a direct referrer earns 15% of that, so $15.
Referrals pay out of the routing fee charged by NASDANK's own swap interface. They have nothing to do with a coin's pool fee, and a creator's earnings are unaffected by whether their traders were referred. See Fees and splits for the distinction.
How it works, end to end
- You get a linkThe Referrals page issues a code tied to your wallet and a link that carries it.
- Someone arrives and tradesTheir wallet is bound to your code. The binding is recorded with a timestamp and, once locked, does not move.
- Earnings are attributed off chainThe indexer watches Ultra swaps and attributes each one up the referral tree.
- A cumulative merkle root is postedA keeper commits a single root to the distributor contract covering everyone's lifetime earnings.
- You claim the deltaYour claim pays cumulative minus already-claimed, in the wrapped gas token, directly to the account encoded in the leaf.
The claim is safe by construction
Two properties are worth understanding because they mean you never have to trust the API that serves your proof:
- The claim always pays the leaf's account, never
msg.sender. A connected wallet can sponsor the gas for someone else's claim and the money still goes to the rightful account. There is no way to redirect a claim by calling it from elsewhere. - The chain re-verifies the proof against the live root. If the API's tree is stale or already settled,
claimableOfreturns zero and the interface says so rather than sending a transaction that will revert. The claim is also simulated before signing, which catches an underfunded distributor.
function claim(address account, uint256 cumulativeAmount, bytes32[] proof) external;
0
1
function claimableOf(address account, uint256 cumulativeAmount, bytes32[] proof)
external view returns (uint256);
2
function claimed(address account) external view returns (uint256);Distributor on Robinhood Chain: 0x87bb6471568748d202300FC14fA290CDf2361036
Distributor on BNB Chain: 0x985cc8fa57be7d401b5b47974f822264b9041082
Reading your own position
The Referrals page shows, per tier, how many wallets are in it and what they have earned you, plus a list of your direct referrals with the date each was bound. Two sources feed it and they are used for different things:
| Source | Used for | Authoritative for |
|---|---|---|
| Indexer | Display figures, and the merkle proof itself — the proof exists nowhere else | Nothing about the money |
| Chain | claimableOf, claimed, and the simulated claim | Everything about the money |
The indexer sits behind Cloudflare, which challenges datacenter IP addresses. A server-side fetch of the referral endpoint returns a 403 in production while working perfectly from a laptop. If you are integrating, call it from the browser.
Payout asset
WETH on Robinhood Chain, WBNB on BNB Chain — the chain's wrapped gas token, in both cases. Referral earnings are never paid in a launched coin.
Limits and rules
- A wallet binds to one referrer. Once locked, the binding does not move.
- Only swaps made through the Ultra interface generate referral fees. A trade on the same pool through another router generates none.
- Earnings accrue continuously but are only claimable after a root covering them has been posted.
- Claiming is your own transaction. Nobody claims on your behalf, and nothing expires.