Your compass is where you point. You deposit $MYR into the compass contract and point it at one coin; it stays there until you move it, and you can withdraw anytime. Every turn, all compasses are weighed and the heaviest direction wins.
Deposit and point; withdraw anytime
Pointing is one transaction: point(target, amount) deposits amount $MYR (approve the compass contract first) and points your compass at target. From then on it counts on every turn. You do not need to come back, sign again or be online when the turn is called.
add(amount)deposits more on the same target.point(newTarget, 0)moves your whole deposit to another target.withdraw(amount)sends $MYR back to your wallet, immediately. There is no lock and no delay.clearCompass()stops pointing; your deposit stays and can be withdrawn.
Only deposits count. $MYR in your wallet carries no weight, and sending or receiving $MYR never touches your compass.
You point at one target at a time. The target has to be eligible at the moment of the turn. If the coin you point at stops being eligible, your compass stays set but does not count until it is eligible again or you move it.
Weight
Your weight on a turn is:
activeDeposit * rankMultiplier
Two things go into it.
Deposited balance
A deposit counts once it has sat through a full turn: it becomes active at the start of the turn after next. Depositing again while a deposit is still waiting merges the two and restarts that wait for the whole waiting amount; nobody else can deposit into your compass, so only you can restart it.
This means depositing right before a snapshot does nothing. A withdrawal counts right away: your weight drops at once, taken from your active deposit first.
Rank multiplier
Your rank multiplies your weight. A new holder starts as Speck at 1×. The top rank, Murmur, counts at 2×. Rank rises when the target you pointed at is chosen and reaches take profit. It falls when it closes at the stop. A max-hold close changes nothing.
Worked example
The example below uses three holders with made-up balances. It is an example, not live data. The weights are computed from the current rank ladder, so if a multiplier changes, the example changes with it.
| Holder | Deposit ($MYR) | Counted deposit | Rank | Weight | Points at |
|---|---|---|---|---|---|
| Holder A deposited a turn ago | 400,000 | 400,000 | Speck 1× | 400,000 | X |
| Holder B deposited a turn ago | 300,000 | 300,000 | Lead 1.6× | 480,000 | Y |
| Holder C deposited minutes before the snapshot | 1,000,000 | 0 | Wing 1.35× | 0 | X |
Things to notice:
- A large balance is not everything. A smaller holder with a higher rank can outweigh a larger one.
- Weights for the same target add up. Two holders pointing at one coin can beat a single larger holder pointing elsewhere.
- A deposit made during the last turn window adds nothing yet.
Reading your compass
The Compass tab shows your wallet and deposited $MYR, rank, current target and weight, with the deposit and withdraw controls. These come from the compass contract: compassOf, balancesOf, weightOf and rankOf. Until the contract is published, they show pending.