Documentation
How Argus works
Anyone can launch, and everyone can watch. What follows is the whole mechanism, including the part of it that does not work perfectly.
One
What Argus is
Argus is a launchpad on Arc. You create a token, it opens as a Uniswap market in the same transaction, and it trades from that block onwards. There is no listing to apply for and no vote to win. Every idea gets a seat.
Every number on this site is in USDC, because on Arc the gas token itself is USDC. You pay gas in it, you buy in it, and you are paid rewards in it. There is no wrapped asset to think about and nothing to convert on arrival.
New launches open on Uniswap v4, and the tax that pays creators, burns and holders is taken by a hook attached to the pool. That one change decides most of what the rest of this page says, so it is worth stating up front: the tax applies to trades, and only to trades. Sending the token from one wallet to another is untaxed, because the token itself does not know what a tax is.

Two
The pool, from block one
There is no curve to fill and no migration to wait for. At launch the whole supply is minted into a single Uniswap position placed entirely above the opening price, and that position is handed to a locker in the same transaction. Nothing is held back, nothing is sold to us, and there is no second pool waiting to be seeded later.
Because the position sits above the opening price, it holds only tokens at the start. Buying takes tokens out of it and leaves USDC behind, which is what moves the price up. That is the whole pricing mechanism. It is an ordinary Uniswap market from the first block, so the price you see is the pool’s own price and anyone can trade it from anywhere.
The position is locked permanently. The locker has no owner, no withdraw and no rescue, and no path that reaches Uniswap’s decrease-liquidity call. The principal cannot leave. Fees the position earns can: harvesting them is permissionless, it takes only what the position has already earned, and on this line it hands both sides straight to the same place the trading tax goes. So the pool’s own 1 percent fee and the creator’s tax are one stream, split the same way, which is the section below.
A creator can make the first buy inside the launch transaction. It happens in the same transaction that creates the pool, which is what makes it impossible to front run: there is no block in which the pool exists and the creator’s buy does not. On this line there is no cap on how much of the supply that buy can take. What bounds it is price. The buy stops at four times the opening price, and a creator who sends more than that allows is filled up to the limit and refunded the difference rather than having the whole launch reverted.

Three
What a trade costs
A creator sets two rates at launch, a buy tax and a sell tax, and they are independent. The launch form takes each one from 1 to 10 percent. The contract itself will accept zero on one side and refuses only the case where both are zero, so a token that taxes buying and not selling is possible even though the form does not currently offer it.
The tax is taken by a hook bound to the pool, inside the swap. This is the change worth understanding, because it moves what gets taxed. A transfer tax lives in the token and charges every movement of it. A hook lives at the pool and charges the trade. So on this line, sending the token to a friend, to a cold wallet or to a multisig costs nothing beyond gas.
It is not a preference. A transfer tax cannot be made to work on Uniswap v4 at all: v4 settles balances as internal claims rather than as ERC-20 transfers, so a trade can happen without the token’s own transfer code ever running. A tax written there would not fire on the trades it exists to charge. The hook is where the fee has to live for it to be charged at all.
On top of the creator’s tax the pool takes its own 1 percent fee, the same as it would on any other Uniswap market at this tier. Those two are what the token decides. Whatever router or aggregator you arrive through may charge its own fee as well, and most routers on Arc take roughly another 1 percent, which nothing on this site controls or receives.
For the first three seconds after a launch there is an additional tax on top, and it falls away fast: 99 percent in the first second, 6.18 percent in the second, 0.19 percent in the third, then nothing at all. Arc mines about two blocks a second, so in practice that is a wall for roughly the first two blocks and a formality after that. It exists to make the launch block worthless to a bot watching for new pools. It goes to the protocol treasury rather than to the creator or to holders, and the creator’s own opening buy is exempt from it.
Four
Bonding
Every launch records one price on chain, fixed at launch and never written again. It is the bond milestone. When the market price first reaches it, the token is bonded.
Nothing happens to the money. Bonding moves no funds, opens no second pool, migrates nothing and changes no rate. The position was locked at launch and stays exactly where it was, and the pool keeps liquidity above the bond price on purpose, so a bonded token trades exactly as it did the block before. It is a milestone, and treating it as a graduation to somewhere else is the most common way to read it wrongly.
What is worth knowing is how it gets recorded. The hook checks the price at the end of every swap it handles, and the moment a swap carries the price across the milestone the flag is written in that same transaction. Not the next block, not when somebody notices. The same transaction as the trade that did it.
So nobody has to crank it and nobody can miss it. There is no button, no bot and no function for anyone to call, because there is nothing to call. The price cannot move without the check running immediately afterwards, and a crossing that opens and closes inside a single block is caught the same as any other. On the older Portals this was a separate transaction somebody had to send, which meant a token could sit visibly past its milestone with the flag still unset. That gap is gone here, and it is gone by construction rather than by anyone watching.
It also cannot be undone. The flag is written once, and there is no code anywhere that clears it, no owner to clear it, and no upgrade path to add one. A token that has bonded has bonded permanently, whatever the price does afterwards.
The one caveat worth stating. The check does nothing until the milestone has been written into the hook, and that write happens inside the launch transaction itself, so on any token this Portal launched there is no window in which a trade could slip past unrecorded. That is a property of how the launch is ordered rather than a promise about some other pool that somebody else pointed at the same hook.
Five
Where the money goes
At launch the creator also fixes how the money is divided, and the split is public from the first block. The contract carries four destinations and they must add up to exactly 100 percent or the launch is refused. The same split applies to the trading tax and to the pool’s own 1 percent fee, because on this line both arrive at the same contract.
- Creator funds
- USDC, for a creator funds wallet named at launch. Art, hosting, marketing, whatever the creator said it was for. The wallet address is set once and cannot be changed afterwards, so the money can only ever go there.
- Buyback and burn
- Spent buying the token back and burning what it buys. Supply goes down and never comes back, and the buying happens in the open market where anyone can see it.
- Dividends
- Paid out to holders in proportion to what they hold. This is the share the next section is about.
- Liquidity
- Added back to the locked position, deepening the market the token trades in. The contract has carried this since the line launched. The form does not offer it yet and sends it as zero, so every token launched through this site so far splits three ways. It is written here because the contract, not the form, is what a token is bound by.
Argus takes 10 percent off the top before that split, and it is worth saying plainly because it is ten times what the older line took. It is fixed in the contract at deployment with no function to change it, so it is the same 10 percent on every token this Portal launches, and it cannot be raised on a token later.
The tax reaches the split contract on every trade, inside the trade, with nothing to collect and nothing to remember to run. Getting it from there to the destinations is a separate transaction, because paying out means selling one side for the other, and a pool will not let that happen in the middle of a swap it is already running. That transaction is permissionless: Argus sends it, anyone else can send it, and the money goes to the same places either way.
One thing worth knowing about that step. It sells at whatever the price is in the block it lands in, so a large sell arriving just before it makes it yield less, roughly in proportion to how far that sell pushed the price down. There is a floor under the fill, but the floor is measured against the price at that moment, so it bounds what the payout itself moves and not a move that happened first. Size is what keeps this small: the swap is capped as a fraction of the pool’s own depth and budgeted per block, so anyone timing a sell against one is paying trading fees and price impact of their own to shave a small pot.
The same thing can be done for longer. Someone willing to push the price and hold it there can let several payouts run at the price he chose, and he pays to move it once rather than once per payout. Nothing in the contract caps what that adds up to, and we would rather say so than imply a limit that is not there. What it costs him is the part worth knowing: he funds the displacement for every block it stands, he pays trading fees both times, and anyone can trade against him the whole while.


Six
Rewards, paid in USDC
If a creator allocates a share to dividends, holders are paid in proportion to their balance at the time each distribution lands. You earn only from distributions that happen while you are holding. Nothing is retroactive, so buying today does not pay you for last week, and selling stops the accrual at the moment you sell.
Holding is enough. There is no staking, no opt-in, no lockup and nothing to sign. The payout is pushed to you when a distribution runs. If a push cannot be delivered, to a contract that refuses the transfer for instance, that share is parked rather than lost, and the address it belongs to can withdraw it whenever it likes. A parked balance is claimable only by its own owner, so nobody can redirect somebody else’s.
A few addresses hold no share by design: the pool, the split contract and the burn address, since paying them would only pay the system back into itself. Balances under a small dust minimum, also set at launch, are excluded too, because a distribution worth less than the gas to move it is not a payment.
Creators should know about one gate before they reach the launch form. Rewards are configured in a separate registry, in a transaction of your own, before the launch that uses it. If you allocate a share to dividends without having done that, the launch is refused outright rather than going through with a dividend share that could reach nobody. The site sends that transaction for you when you set a dividend share above zero. Two details catch people out. The registry the new line reads is not the one the older line read, so a creator who configured rewards for an earlier launch is genuinely unconfigured here and has to do it again. And the setting persists once written, so a creator launching a second time with no dividend share should clear it rather than assume it lapsed.
Seven
Fixed at launch
Everything above is chosen once, at launch, and then it is settled. On this line the creator keeps no switches at all. The hook that holds the tax rates has no owner and no function to change them, so the rates a token launches with are the rates it has for as long as it exists. They cannot be raised, and unlike on the older line they cannot be lowered either.
There is no pause switch, so trading cannot be halted. There is no blacklist, so no wallet can be frozen or singled out. There is no mint function, so the supply you see is the supply. The contracts are not upgradeable, so there is no proxy standing by to swap the rules out later. The Portal itself has no owner, which is also why nothing already launched can ever be patched: a fix ships as a new Portal, and the tokens already out there keep exactly what they have.
This is unaudited software holding real money. It has been reviewed hard, including adversarially, and it is still unaudited. Nothing on this page is a claim that any token launched here is worth anything.
Eight
For integrators
If you are indexing Argus rather than trading on it, take the file rather than this page. It carries the ABIs, every live address, the older Portals, and the handful of decoding rules that are easy to get wrong.
Start from these
- Portal
- 0xa36c443A797771Df82533B8B4A86F0AFfd970862
- PoolManager
- 0x8366a39CC670B4001A1121B8F6A443A643e40951
- StateView
- 0xF3334192D15450CdD385c8B70e03f9A6bD9E673b
- Quote / gas
- 0x3600000000000000000000000000000000000000
Arc mainnet, chain 5042. Every new launch goes through that Portal. Ask it LAUNCH_STRUCT_WORDS() before decoding a launch record: it answers 10 here and reverts on the older Portals, and a nine-word decoder reads a ten-word record without complaining while silently dropping the bond tick.
- argus-v4.json
- ABIs and addresses, generated from the compiled contracts rather than written by hand. Every address in it is re-read from the Portal and every ABI is checked against the deployed bytecode before it ships.
- argus-v4-example.mjs
- A runnable read-only script: it reads a launch record, prices the token, and works out whether it has bonded. Four commented traps in it are the ones that fail silently rather than throwing.
The one worth repeating here. Ask the Portal LAUNCH_STRUCT_WORDS() before you decode a launch record. The current line returns ten words, the older hooked Portal returns nine, and the two oldest return ten of different types in a different order. A nine-field decode of a ten-word answer does not fail, it succeeds and quietly drops the last field, which is the bond milestone.
