Qubit Points — earning rules (v0.2)
Points are earned on routes you actually complete. The award depends on the route and the size of the trade, so a hundred clicks on tiny amounts earn nothing. The exact number is shown on every route in the quote, before you sign — the line reads "Points to earn".
1. Base
Every route has its own earning coefficient: rails differ in what they cost to execute, and points reflect that. Gas refuel through Gas.zip carries a ×0.3 coefficient — topping up gas should not be a cheap farm. Same-chain swaps follow the general rule.
The numbers are frozen at the moment of the operation (config/points.json). When rules change, new operations use the new numbers; nothing is recalculated retroactively.
Points are awarded on fact only: a successful receipt on the source chain and a confirmed delivery. Quotes, approvals, reverts and refunds award zero.
2. Multipliers (multiplied together, capped at ×5)
| Multiplier | Value | Condition |
|---|---|---|
| Early users | ×2.0 season 1, ×1.5 season 2, ×1.0 after | by operation date |
| Private route | ×1.2 | confidential settlement |
| NFT staking | 1 NFT ×1.5, 2 ×2.0, 3 ×2.5, 4 ×3.0, 5+ ×3.5 | staked in our contract; applies to the whole profile; collection comes later |
| Invited by code | ×1.1 for the first 30 days | code entered at the first operation |
There is no multiplier for daily streaks and none for raw volume.
3. Referrals (for the inviter)
- Level 1: 10% of the invitee's base points, with no time limit.
- Level 2: 2%.
- The invitee's multipliers do not pass to the inviter. Self-referral inside one profile pays 0.
- The code is bound to the profile and cannot be changed after the first operation.
4. Profile and wallets
- A profile is the set of wallets (EVM, Solana) bound by a signed message. Points and the leaderboard are per profile.
- A wallet belongs to exactly one profile.
5. Anti-sybil
- Trades below $5 earn nothing.
- Wash protection: A→B and B→A by the same profile within 24 hours — the second leg earns 25%.
- Daily cap on base points per profile: 5 000 in season 1; above the cap the coefficient is 0.2.
- Wallet blacklist lives in the config; disputed awards go to quarantine until reviewed by hand.
- Every award is recomputable: the journal stores the rate and the multipliers as of the operation.
6. Seasons and airdrop
- Season 1 runs 90 days from the public launch, with a leaderboard snapshot at the end.
- The airdrop is proportional to profile points. The per-profile cap and wallet eligibility are decided separately at the end of the season.
- Points are not a token and cannot be transferred; rules may change with public notice.
7. What you see in the app
- On every route in the quote: "Points to earn: N" — visible before signing, next to the amount that arrives and the delivery time.
- Profile: total, rank, multipliers, referrals, award history.
- Leaderboard: top 100, searchable, refreshed once a minute.
8. Implementation
config/points.json: route coefficients, multipliers, caps, seasons. Changed without code.apps/api/src/points/:rules.js(pure functions plus tests),store.js(SQLitepoints.db),indexer.js(confirmation by receipt or provider status), REST/v1/points/*.- Source of operations: the front end registers the hash (
POST /v1/points/track) and the indexer verifies that the transaction sender is a wallet bound to the profile. - NFT multiplier: a profile field, read from the staking contract once an hour, once that contract exists.