Documentation
How Argus works
Launch on Arc straight into a Uniswap v4 pool. Taxes fixed at launch, rewards paid in USDC.
At a glance
- Chain
- Arc mainnet, chain id 5042
- Quote token
- Set per launch from an approved list. The site launches in USDC: on Arc the gas token itself is USDC.
- Venue
- Uniswap v4. Fee tier 1% (10000), tick spacing 200.
- Pool opens
- In the launch transaction. Any router can trade it from block one.
- Bonding curve
- None. No curve contract, no virtual reserves. The whole supply sits in one v4 position above the opening price, and buys walk the price up through it.
- Supply
- 1,000,000,000 per launch, 18 decimals
- Opening market cap
- $2,500 (FDV)
- Dev buy
- Optional, inside the launch transaction, up to 4x the opening price. Pulled from an approval.
- Bond (graduation)
- $45,000 market cap, about $10,100 of net buying
- Migration
- None. Same pool before and after bonding.
- Launch fee
- None. Gas only.
- Creator tax
- Buy and sell set separately, each 0 to 10%. Permanent.
- Snipe protection
- Opening tax on buys and sells: 99% at second 0, 0% from second 3
- Transfers
- Untaxed
- LP
- Locked forever. No owner, no withdraw, no rescue. Its fees are harvested permissionlessly and split like the tax.
- Admin
- Token: none. Portal: 2-of-3 Safe, future launches only. Contract changes wait 4 hours; quote approvals are instant.
- Token page
https://arguspad.io/token/<address>- ABIs and addresses
- /argus-v4.json
Launch lifecycle
01
Create
Name, ticker, image, taxes and split. Gas only. A dev buy adds an approval, one confirmation where the wallet can batch.
02
Trade on Uniswap v4
The pool opens in that same transaction. Any router can trade it.
03
Bond
At $45,000 market cap the hook flags the token bonded, inside that swap.
04
Keep trading
Same pool, same rates. Nothing migrates. The LP stays locked.

- Supply
- 1B
- Opening cap
- $2,500
- Dev buy limit
- 4x price
- Cap at limit
- $10,000
Dev buy
- Optional first buy inside the launch transaction. No block exists with the pool and without it, so it cannot be front-run.
- Bounded by price, not supply: at most 4x the opening price, so a $10,000 market cap. There is no supply cap.
- Paid in the launch's quote token. The Portal pulls it from an approval, so approve first; the launch itself carries no value.
- One confirmation where the wallet supports batched calls (EIP-5792), two where it does not. The launch is one transaction either way.
- An oversized amount fills to the limit and the rest is refunded. The launch does not revert.
- Exempt from the opening tax.
Snipe protection

| Second after launch | Blocks, about | Opening tax |
|---|---|---|
| 0 | 2 | 99% |
| 1 | 2 | 6.18% |
| 2 | 2 | 0.19% |
| 3 onward | All after | 0% |
Rate in bps: 9900 >> ((elapsed * 14) / 3), where elapsed = block.timestamp - launchedAt. Hook constants, not readable on chain. Arc makes about 2 blocks a second.
- Applies to buys and sells.
- Exempt: the Portal (so the creator's in-launch buy) and the launch's split contract.
- Paid to the Argus treasury, not the creator or holders.
- Creator tax plus opening tax is capped at 99% of the leg.
Bonding

- Opening cap
- $2,500
- Bond at
- $45,000
- Net buying
- ~$10,100
- Migration
- None
- $45,000 market cap on every launch. Recorded on chain per launch as
tickBond, so read it rather than assume it. - The hook writes
bondedinside the swap that crosses the milestone. No crank, no bot, nobody can miss it. - Written once, never cleared, whatever the price does after.
- Nothing migrates: no second pool, no LP move, no migration fee, no rate change.
Fees
| Fee | Rate | Goes to |
|---|---|---|
| Pool fee | 1% of every swap | Locked LP, harvested to the split |
| Buy tax | 0 to 10%, set by the creator | The split |
| Sell tax | 0 to 10%, set by the creator | The split |
| Argus share | 10% of the tax and the LP fees | Argus treasury, before the split |
| Opening tax | 99% to 0% in 3 seconds | Argus treasury |
| Router fee | The router's own, about 1% on most Arc routers | The router, not Argus |
| Launch fee | None, gas only | |
| Migration fee | None | |
| Transfer tax | None. The tax applies only to trades; transfers are untaxed. |
- Buy and sell tax are independent. The contract refuses only both at zero; the site offers 1 to 10%.
- Permanent: the hook has no owner and no function to change a rate, up or down.
- The hook takes the tax inside the swap. v4 settles balances as internal claims, so a transfer tax cannot work on v4.
- The Argus 10% is fixed in the Portal and immutable.

Where the money goes

- Pool fee
- 1%
- Buy, sell tax
- 0 to 10%
- Argus share
- 10%
- To the shares
- 90%
Tax and LP fees land in the same split contract. After Argus’s 10%, four shares set at launch divide the rest and must total exactly 100%.
| Share | Paid as | Goes to |
|---|---|---|
| Creator funds | USDC | A wallet fixed at launch, never changeable |
| Buyback and burn | Market buy of the token | The dead address |
| Dividends | USDC | Holders, pro rata |
| Liquidity | Added to the position | The locked LP. The site sends 0% today. |
Payouts
- Source
- The tax and the LP fees, landing in the launch's split contract inside every trade
- Collected by
distribute(), permissionless- Schedule
- The Argus keeper calls it automatically when the pending amount is worth the gas: a threshold, not a clock. A creator never needs to call it, and should not.
- Holders
- USDC pushed pro rata to balance when a distribution lands. No staking, no opt-in, no claim.
- Creator funds
- Credited in the split contract, then claimed by the creator from the token page. The keeper does not claim it for them.
claim(creator)is permissionless and always pays the creator, so anyone may call it. - Retroactive
- No. Only distributions that land while you hold.
- Failed push
- Parked. Only its owner can withdraw it.
- Excluded
- The pool, the split contract, the burn address, balances under the launch's dust minimum
- Dividend setup
- A dividend share needs a rewards registry configured first. The site sends that transaction.
Creators: let the keeper do it. distribute() is permissionless so that the pad cannot hold anyone's fees hostage, not because a creator is meant to run it. The keeper already does, on every launch. A creator who calls it themselves is recorded as the sender of the swap it performs, and trading bots label that a dev sell even though the tokens come out of the split contract and never touch the creator's balance.
Known limitation. distribute() sells at the price in the block it lands in, so a large sell just before it makes it yield less. The swap is capped as a fraction of pool depth per block, which keeps the effect small, but nothing caps what a price held down across several payouts adds up to.
What can change
Admin can change
Future launches only
- Hook code, timelocked
- Splitter implementation, timelocked
- Locker implementation, timelocked
- Approved quote tokens, instant
Nobody can change
On any launched token
- Its hook, splitter, locker and quote token
- Tax rates, up or down
- The creator funds wallet
- The locked LP principal
- Treasury address, Argus 10%, dev-buy ceiling
- Owner, pause, blacklist, mint, upgrade: none exist
- Admin
- 2-of-3 Safe, on the Portal. The token has none.
- Timelock
- Contract changes are queued as
PointerQueued, executable no sooner than 4 hours later asPointerChanged - Delay
- Can be raised to 30 days. Never lowered.
- Quote tokens
- Approved or revoked instantly, no timelock, as
QuoteApprovedandQuoteRevoked. USDC can never be revoked. - Launched tokens
- Out of reach. The pointers and the quote token are read once, inside the launch transaction.
Contracts
- Portal (factory)
0xA5628A11c412596E1f63b75a2C0284F843C549d6Current, from block 20,240,260- v4 PoolManager
0x8366a39CC670B4001A1121B8F6A443A643e40951- v4 PositionManager
0x6049c9a0e26405C0985f9E3685C87d0aE917f82B- Universal Router
0x4fcA4a51Ab4F23A7447b3284fBd7D73289A89Fb1- StateView
0xF3334192D15450CdD385c8B70e03f9A6bD9E673b- USDC
0x3600000000000000000000000000000000000000- Argus treasury
0x934DEA9Ab179De155db10519aA89a8C418C50705- LaunchConfig
0x8Bf56C35faEA89D81E8eEe45c2FfB3994148A840- Admin (2-of-3 Safe)
0xf5A088fd51f93f798AD3f11e13B737DeD990eeEB
Per launch, deployed in the launch transaction: the token, its hook, its split contract and its locker. Read them from the launch record, never from the Portal’s current pointers.
Older Portals, still live
| Portal | Line | From block |
|---|---|---|
0x07a688a001f416cC433c68Ff56Aa26bC5131Cc6E | Hooked v4 | 20,081,606 |
0xa36c443A797771Df82533B8B4A86F0AFfd970862 | Hooked v4 | 19,690,658 |
0x7A17Ab0106C46C0be30623F3EB7F299CC0058338 | Hooked v4 | 19,674,154 |
0xBed9880A0ba12722ba4b8791c0B6F8c74338246C | Legacy v3 | 19,056,397 |
0x0F1C7Cb26D6cD36BD4189E41947658b39437587A | Legacy v3 | 18,817,867 |
Integrators
- /argus-v4.json: ABIs and every address, generated and verified against deployed bytecode.
- /argus-v4-example.mjs: a runnable, read-only example.
- Call
LAUNCH_STRUCT_WORDS()before decoding a launch record. The current Portal answers 11, the two hooked Portals before it answer 10, older Portals revert. Legacy records are also ten words, of different types, so either decode succeeds and returns garbage. - The eleventh word is the launch’s quote token. Build the pool key, prices and decimals from it, not from a constant.
- Uniswap v4
Swapamounts are signed from the swapper’s side, opposite of v3: on v4 a buy has the token leg > 0. - Pool legs are in the quote token's decimals. USDC is 6 as an ERC-20 and 18 natively, one balance.
- Creator funds:
Accruedwhen credited,Claimedwhenclaim(creator)delivers them, both on the launch’s split contract. PointerQueued,PointerChanged,QuoteApprovedandQuoteRevokedonly matter for predicting future launches. Launched tokens never follow them.
