Quantum Shielddocs

Router and market

How QSHIELD trades, and how the router joins the market to the vault in a single transaction.

The token's market

QSHIELD was launched on the Pons V2 launchpad on Robinhood Chain. It started on a Pons bonding curve and graduated into a Uniswap v4 pool:

PairETH / QSHIELD
Pool manager0x8366a39CC670B4001A1121B8F6A443A643e40951
Hook0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044
Tick spacing200
Pool ID0x26c3c299984290f723be509c4b4d8359248aeb6b62f52ca1c214ad4037c5a3f6

The token is a standard ERC-20: it can be held, transferred and traded by anything that supports ERC-20s.

QuantumRouter

The router is the bridge between the market and the vault. It holds no funds between transactions.

Buy into an account

function buy(bytes32 account, uint256 minTokensOut) external payable returns (uint256 tokensOut);

Swaps msg.value ETH for the token, shields the result into account and updates the vault's price average. Reverts with InsufficientOutput below minTokensOut.

Sell from an account

A sale is an ordinary vault operation whose exit names the router:

exitTarget = router
exitData   = abi.encode(minEthOut)
recipient  = the address that receives the ETH

The vault approves the router for the exit's amount and calls onShieldExit. The router pulls the tokens, sells them and sends the ETH to recipient. Only the vault can call it.

Quote

function quote(bool isBuy, uint256 amountIn) external returns (uint256 amountOut);

Returns the output of trading amountIn now, Pons fees included. On the pool it runs the real swap and reverts it, so it is exact; call it with eth_call.

Venue-aware

PonsSwapper, which the router and the harvester share, reads the token's phase from the Pons factory and trades on whichever venue is live. The same contracts worked on the bonding curve and work on the pool, with no migration.

Exit targets

The router is one implementation of a general interface:

interface IExitTarget {
    function onShieldExit(uint256 amount, address recipient, bytes calldata data) external;
}

Any contract can be the target of an exit: the owner's signature names it and its parameters. This is how a shielded balance can be routed anywhere in one operation without the tokens resting at an address in between.

On this page