monex moves between its own vaults when a large sell lands. These are the lots, the locks, the lineage, the stems, and the decoys.
| lot | tokens | acquired block | unlock block | remaining | vault | fill |
|---|
| block height | |
| trades in block | of 50 |
| median trade | |
| last churn |
| vault | address | opened slot | closed slot | churn tx | trigger sell |
|---|
Churning in Monero means sending funds to yourself to cut the thread an observer could follow. monex churns when a sell larger than the median hits the coin. Every unlocked lot moves from the current vault into a new one derived from the next index, and the old vault is closed on chain so it can never receive again. Locked lots stay where they are until their block arrives, then move on the next churn.
Dandelion++ sends a transaction down a stem of single relays before it fluffs out to everyone, so the first node to see it is not the origin. monex's SOL goes through two pools before it reaches the coin. The pools are chosen by the first two bytes of the previous fill's signature, so the route is unpredictable in advance and fully checkable afterwards.
| round | coin one | coin two | coin three | placed | unwound | net |
|---|
Every real spend in Monero is surrounded by outputs that look exactly like it. monex surrounds each fill with three equal sized buys on three other coins, chosen by the same signature bytes, bundled in the same round. They are unwound in the next round. The sets are published here afterwards with the net SOL change so anyone can see the cover was real and cost nothing beyond fees.