Qian 297962041e Add the RWA pair launchpad stack: QianRWAFactory, QianRWAFeeRouter, QianRWARouter V2
Quote-paired launches: full supply locked one-sided against an allowlisted
quote asset (tokenized stock or USDG). Fee payouts defer to owed/claimOwed
when a recipient cannot take the transfer. Router V2 adds ERC20-in/out swap().
Robinhood-only stack on its own locker and guard hook; deployment record in
chains/robinhood-rwa-deployment.json.
2026-07-19 21:32:01 +00:00
2026-07-17 02:31:24 +00:00
2026-07-17 02:31:24 +00:00
2026-07-17 02:31:24 +00:00

Qian

Qian V2 Contracts (Robinhood Chain)

qian.ag · Explorer · License: MIT

Qian is a multichain exchange and payments layer for every asset. This repo holds its on-chain contracts: launch a token, and its full supply goes straight into a locked Uniswap position that anyone can trade. MIT licensed. No proxies, and no admin key over user funds.

The core contracts carry the same addresses on every chain (Robinhood Chain, Base, Ethereum), because each one was deployed from a fresh key at nonce 0. This repo is the Robinhood Chain copy (chainId 4663); the addresses below hold on every chain.

Deployed addresses

Contract Address
QianLocker 0x73Da198D58fFD43B5754a2d72D989cab1c9aF0ce
QianFactoryV3 0xaC83b491b76Dd686db516c0fE9152320c83618a7
QianFactoryV4 0x750d0bc66baa12CF1710a8ba939B97DB4aD005c3
QianFeeRouter 0xDe598E5F0b428B38EFaA6e887458FEF70bFA9436
QianSwapRouter 0xEE540d2496cfFDf17E29a04bcd7b6dc795C61d66
Create2Factory 0x175ae2c5EC7edaD3eE88e892C677bBDE815A2803
GuardHook 0xa27D4eef437Ab754074c8C9E6bCbC55184dE2000

Every address above is source-verified on https://robinhoodchain.blockscout.com.

How it works

  • Two factories. QianFactoryV3 and QianFactoryV4 mint a fixed 1,000,000,000-supply ERC20 and seed the whole supply as one-sided liquidity in a Uniswap V3 or V4 pool.
  • QianLocker takes ownership of that LP position at launch. The contract is immutable and exposes no withdrawal path, so the liquidity stays where it is.
  • Creator fees. QianFeeRouter.collectFees(token) is a permissionless call that routes a token's accrued trading fees to its creator. The receiver lives in the locker, and the controller can reassign it for a community takeover. The token's own creator field stays fixed as the record of who launched it.
  • Creator tax is the Uniswap V4 pool fee, anywhere from 0.5% to 20%, picked at launch. It lives in the PoolKey, so it never changes after that. V3 pools use the fixed 1% tier.
  • QianSwapRouter handles user trades: buy or sell any Qian token for ETH, with a 1% platform fee on the WETH leg. It keeps no balances between trades.

Token

A launched token is ERC20 plus Burnable, and little beyond that. owner() returns the zero address, so it reads as renounced. There is no mint, pause, blacklist, or transfer hook. It stores immutable platform and creator records, a MAX_SUPPLY, and its IPFS metadata through metadata() and tokenURI().

Hooks

GuardHook is the only hook we deploy. It limits pool initialization to the factory, which stops anyone from front-running a launch and bricking it. At trade time it does nothing: every swap-time flag reads false, so the Uniswap V4 PoolManager never calls it on a swap. Qian launches ship with no fee, tax, or anti-snipe hook.

Real-world asset pairs (RWA)

Robinhood Chain carries tokenized stocks as plain ERC20s. Three contracts put them to work on Qian. All three route against existing Uniswap V4 pools; the underlying asset stays with its issuer.

  • QianRWAFactory launches tokens paired to an approved quote asset (a tokenized stock or USDG) instead of WETH. The launch works like the core factories: full supply into a locked one-sided Uniswap V4 position. The quote is a per-launch parameter against a controller allowlist, each quote carries its own liquidity tiers, and the deploy fee is exact (no dev buy).
  • QianRWAFeeRouter splits a quote-paired token's accrued trading fees and pays them out as plain ERC20 transfers of the quote. A transfer the recipient cannot take, for example when a stock issuer blocklists the address, accrues to owed instead of reverting; claimOwed releases it later. One blocked address never wedges a collect for everyone else.
  • QianRWARouter trades RWA tokens for ETH along a caller-supplied V4 pool path, exact-in with a 1% fee on the WETH leg. swap() does the same for ERC20-in/ERC20-out routes, fee on the input asset. The router keeps no balances between transactions.

This stack is Robinhood-only and runs on its own locker and guard hook. Full record in chains/robinhood-rwa-deployment.json; every address is source-verified on https://robinhoodchain.blockscout.com.

Contract Address
QianRWAFactory 0x5A4ecC6fb7Ab62EC69cB0902397A5EB0a3Cb16D3
QianRWAFeeRouter 0xc3a89be96b8BDb1123d2Fa40f18000e3FB1A7aAf
QianRWARouter 0x8495A347f71e819dB9e5eC12c1FC64C79DbD8708
QianLocker (RWA stack) 0x38ceAf1eF6528Aa5775820696A7D14e64136a22d
GuardHook (RWA stack) 0x10bbb04ad4ef277daffeecc37a3019dc08dee000

Layout

  • dtm-v3/contracts: Uniswap V3 factory stack (QianFactoryV3, QianToken, LP provider)
  • dtm-v4/contracts: Uniswap V4 factory stack, the shared QianLocker, QianFeeRouter, and QianSwapRouter, plus GuardHook and the RWA stack\n (QianRWAFactory, QianRWAFeeRouter, QianRWARouter)
  • chains/: chain config and deployed addresses

Build

Solidity 0.8.24 with the optimizer on: 200 runs for the V3 tree, 1 run for the V4 tree, viaIR enabled. Each contract's exact verified build lives on https://robinhoodchain.blockscout.com; this repo is the plain-source mirror.

Dependencies

The contracts build against the canonical Uniswap deployments on each chain. There's no forked or vendored AMM code in this repo; only the interfaces they call are kept in-tree (dtm-v4/contracts/interfaces).

The router, quoter, and pool-manager addresses for each chain are listed in chains/.

Security

See SECURITY.md for the security model, the design tradeoffs, and how to report a vulnerability.

License

MIT

S
Description
No description provided
Readme MIT
120 KiB
Languages
Solidity 100%