// docs
MAVIQ docs
Two-sided depth for tokens on Robinhood Chain, with the bounds written into the contract.
01
Introduction
MAVIQ is a market making depth service for tokens on Robinhood Chain. It keeps resting liquidity on both sides of a token's Uniswap pool, bids below the price in ETH and asks above it in the token, so that a trader who arrives finds a quote close to the price in either direction.
The service is sold as depth, not as volume. An order buys a two-sided book with a written-down spread and depth band. It does not buy trades, and the desk contracts have no way to trade on anyone's behalf.
An automated operator, the agent, watches each pool and keeps the ladder centred as the price moves. Everything it may do is bounded by the order's on-chain terms, and the project that funded the order can stop it or leave at any moment from its own wallet.
02
How it works
The whole flow in one line: you fund both sides of a book, the terms are fixed in the contract, the operator keeps a ladder inside them, and you can take everything back whenever you like.
- Open the desk for your token. Paste its contract address. The desk lists the token's ETH pools on Uniswap v3 and v4 and reads each book live.
- Compose the order. Pick a package or set your own bounds: the widest first quote on each side, how far the ladder may reach, ranges per side and the order length. The page shows the ladder that would be placed and the book with it added.
- Fund and open. Approve your token to the desk, then open the order with your ETH in one transaction. The service fee is taken from the ETH in that same transaction.
- The ladder rests in the pool. The operator places ranges, each wholly above or wholly below the price. When the price moves far enough it pulls them and re-centres the ladder on where the price sits now.
- Check and control. Your order page shows every range, the live spread and depth, and buttons to pause, pull, withdraw idle funds or close.
The parts
| part | what it is |
|---|---|
| the desk | A contract per venue (one for Uniswap v4, one for Uniswap v3) that holds every order's funds and positions, with no owner. |
| your order | Your balances inside the desk, your terms and your resting ranges. Only your wallet can withdraw, pause or close it. |
| the operator | One address fixed when the desk is deployed. It runs the keeper that places and re-centres ladders. It cannot move funds out. |
| the reference | A slow-moving copy of the pool price kept per order. Placements are refused while the live price is far from it. |
03
Getting started
What you need
- A wallet that can add a custom network (MetaMask, Rabby, OKX, Coinbase Wallet and others). Phantom cannot reach Robinhood Chain.
- Bid-side ETH held on Robinhood Chain, a little extra for gas, and some of your own token for the asks.
- An existing ETH pool for your token: a Uniswap v3 pool against WETH, or a Uniswap v4 pool against native ETH. Coins that graduated from Pons already have one. The desk never creates a pool.
Step by step
| # | you do | where |
|---|---|---|
| 1 | Connect your wallet; the dialog adds the network | [ connect wallet ], top right |
| 2 | Enter your token's 0x address | the box on the home page |
| 3 | Pick the pool to serve | the pools table on the desk page |
| 4 | Choose a package or set your bounds and amounts | depth order setup |
| 5 | Check the planned ladder and the book with it | right-hand panels |
| 6 | Approve the token, then open the order | the amber button |
| 7 | Watch spread, depth and ranges | your order page |
| 8 | Pause, pull, withdraw or close whenever you like | controls on the order page |
While a desk is not deployed, step 6 becomes a practice order: your wallet signs the order text, the order is kept in your browser, and its page draws the planned ladder into the live book. No transaction is sent and no tokens move.
04
Order terms
Every order carries these terms. They are written into the desk contract when the order opens and nobody can change them afterwards.
| term | what the contract enforces | composer default |
|---|---|---|
| widest first quote | On each side, the range nearest the price must start within this many ticks of it. This caps the spread. | from the package (1–2% per side) |
| depth band | Every range must end within this distance of the price. The ladder never reaches further. | from the package (10–20%) |
| ranges per side | At most this many ranges on each side per placement, up to five. | 2 to 5 |
| side balance | Bids and asks must each carry at least this share of the placed value, priced at the reference. | 20% |
| reference guard | A placement is refused while the live price is further than this from the order's reference. | 5% |
| reference drift | How fast the reference may follow the live price. At most one hour of drift is ever banked. | 3% per hour |
| rest time | Shortest time between two placements. | 5 minutes |
| end time | After it, the operator can no longer place. You can still close at any time. | 30 days |
Rules that hold for every placement
- Two-sided: at least one bid range and one ask range, every time.
- Single-sided ranges: a range sits wholly above or wholly below the price, so adding it never trades against anyone.
- Ranges start and end on the pool's tick spacing. On a Pons pool that spacing is 200 ticks, about 2%, which is also the narrowest spread that pool allows.
- The operator can only use the order's own idle balances. Funds of other orders on the same desk are out of reach.
05
Fees
| cost | paid to | charged |
|---|---|---|
| service fee | the MAVIQ treasury | on each ETH deposit, inside the same transaction (proposed 3%) |
| gas | Robinhood Chain | your own transactions: open, top up, pause, pull, withdraw, close |
| pool fees | paid by traders to liquidity, including your ranges | every trade that fills your quotes (on fee-bearing pools) |
The fee rate and the treasury are constants in the desk contract, set once when it is deployed; the contract caps the fee at 10%. Tokens are never charged. There is no performance fee and no subscription. The fee is not returned if you close early.
On Pons pools the pool fee is zero and the trading fee is taken by the hook, so resting liquidity there earns nothing from trades. The depth is the product; fee income is not part of it.
06
Safety and control
Where funds can go
An order's ETH and tokens can only be in one of two places: idle in the desk, or resting in the order's one pool as ranges the desk owns. They can leave the desk in two ways only: to the depositor, or the service fee to the treasury when it is deposited.
| the operator can | the operator cannot |
|---|---|
| place two-sided ranges inside your terms | swap, buy or sell anything |
| pull your ranges back into your order | withdraw or send funds to any address |
| move your reference at your drift rate (anyone can) | change terms, pool or ownership; act while paused |
No admin
The desk contracts have no owner, no admin role, no pause switch over your order, no upgrade and no fee setter. The operator address, the treasury, the fee and the minimum are fixed in the constructor. If the operator stops, nothing is placed and your ranges stay where they are; your controls keep working because they never pass through the operator.
Pools that are refused
- On v4: any pool not quoted in native ETH, and any pool whose hook holds a permission over adding or removing liquidity.
- On v3: any pool not created by the Uniswap v3 factory; the desk looks the pool up itself from token, WETH and fee tier.
- Tokens that take a fee on transfer are refused when they are deposited.
07
Risks
Resting liquidity is not a savings account. Read these before funding an order.
Market
- Price moves change what you hold. Bids buy your token as it falls and asks sell it as it rises, so after a move you may hold more of whichever asset lost value.
- Re-centring happens at market prices. A fast move can leave the ladder behind until the reference catches up.
- Thin pools stay thin elsewhere: your order deepens one pool, not the whole market for your token.
Technology
- The desks depend on their own code, on Uniswap and on Robinhood Chain. Any of them can have faults.
- Tokens with unusual rules (rebasing balances, blocklists, transfer limits) can behave badly inside any pool or contract.
Service
- The operator can be offline, slow or wrong. Within your terms it decides where ranges sit.
- A stolen operator key cannot withdraw funds, but it could place quotes inside your bounds at times you would not choose. Tight terms limit that.
MAVIQ is code that runs by its own rules; it is not a broker or an adviser, and nothing here is financial, legal or tax guidance. Commit only amounts whose loss you could carry.
08
The $MAVIQ token
$MAVIQ is the project's token on Robinhood Chain. Its contract address is published on the token page and in the footer at launch. The desks do not use $MAVIQ: orders are paid in ETH and funded with each project's own token.
The token's role in the service is not decided. It will be written here before it applies.
09
FAQ
starting out
What is MAVIQ?
MAVIQ is a market making depth service on Robinhood Chain. It keeps two-sided liquidity resting on a token's Uniswap pool, bids below the price and asks above it, inside spread and depth bounds that each order fixes on-chain. It sells depth, not volume.
How does MAVIQ work?
A project opens an order on its pool and funds ETH for the bid side and its own token for the ask side. The order's terms (widest first quote, depth band, ranges per side, side balance, reference guard) are written into the desk contract. An operator then places and re-centres a ladder of single-sided ranges inside those terms. The project can pause, pull, withdraw or close at any time.
Which network is MAVIQ on?
Robinhood Chain (chain id 4663), with Uniswap v3 pools of a token against WETH and Uniswap v4 pools against native ETH, including the pools Pons coins graduate into. Your wallet needs Robinhood Chain added; the connect dialog adds it for you.
How do I buy $MAVIQ?
The $MAVIQ contract address is published at launch on the token page and in the footer of this site. Until then there is nothing to buy, and any token using the name before that is not ours.
orders
Why do I need to bring my own token?
An ask is an offer to sell your token, so the ask side must hold some. The desk never swaps to get it: buying your token with your ETH would itself be a trade, which the contract does not allow. Most teams fund the asks from their treasury allocation.
Is there a daily volume target?
No. The desk has no swap function and no volume goal. Fills happen only when outside traders buy from your asks or sell into your bids.
Can an order lose value?
Yes. Resting liquidity buys the token as its price falls and sells it as its price rises, so after a move you can hold more of whichever asset fell. Pool fees can offset part of that on fee-bearing pools; Pons pools charge their fee through the hook and pay liquidity nothing from it. The service fee is not returned.
What can the operator do with my funds?
Only two things: rest them in your order's one pool as two-sided liquidity inside your bounds, and pull them back into your order's balance. It cannot swap, withdraw, send funds elsewhere, change your terms or act while you have the order paused.
How do I take my funds back?
From your order page, close the order: every range is pulled at the price the pool shows at that moment and all ETH and tokens go to your wallet in one transaction. You can also withdraw only the idle part and leave the ranges resting. Neither needs the operator.
What does it cost?
A service fee on each ETH deposit (proposed at 3%, set when the desks are deployed), taken in the same transaction. No fee on tokens, no performance fee, no subscription. Gas for your own transactions is yours; the operator covers gas for its placements.
today
What works today?
The desk page reads any token's ETH pools on Uniswap v3 and v4 live: price, depth bands and round-trip cost. You can compose an order and run it in practice mode, signed by your wallet and kept in your browser, with the planned ladder drawn into the live book. The desk contracts are written and tested; real orders switch on once they are deployed.
10
Contracts
| contract | address on Robinhood Chain |
|---|---|
| MaviqDeskV4 | not deployed yet |
| MaviqDeskV3 | not deployed yet |
| Uniswap v4 PoolManager | 0x8366a39CC670B4001A1121B8F6A443A643e40951 |
| Uniswap v3 factory | 0x1f7d7550B1b028f7571E69A784071F0205FD2EfA |
| Uniswap v3 positions | 0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3 |
| WETH | 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 |
| Pons meme hook (served) | 0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044 |
Functions
| who | function | does |
|---|---|---|
| anyone | open(pool, tokenAmount, terms, minTick, maxTick) | opens and funds an order (ETH as value); the caller becomes its depositor |
| depositor | topUp(id, tokenAmount) | adds ETH (fee applies) and/or tokens |
| operator | place(id, ranges) | rests a two-sided ladder inside the terms |
| operator · depositor | pull(id) | removes every range back into the order |
| anyone | nudgeAnchor(id) | moves the reference toward the price at the drift rate |
| depositor | setPaused(id, paused) | stops or allows the operator |
| depositor | resyncAnchor(id, minTick, maxTick) | sets the reference to the live price inside your bounds |
| depositor | withdrawIdle(id, eth, token, wrapped) | takes out idle funds, ranges stay |
| depositor | close(id, wrapped) | pulls everything and pays it all out; final |
| anyone | sweepFees() | sends collected service fees to the treasury |
Every state change emits an event (OrderOpened, Funded, RangePlaced, Placed, Pulled, AnchorMoved, PausedSet, Withdrawn, Closed, FeesSent), so an order's whole history can be rebuilt from the explorer.