Skip to main content
How it works

How Architek works

Every answer here was checked against the contracts rather than against what the protocol is meant to do. Where something is built but not switched on for this deployment, it says so.

The bonding curve

How a token is priced before it ever reaches an exchange.

How is the price decided?

By a constant product — the same arithmetic an AMM uses — with one side of the pool imaginary. A curve is fixed at launch by two constants: the whole supply it can ever sell, and a virtual quote reserve that exists only as a number. It has exactly one piece of moving state, the real reserve — the money actually paid in.

The product of the two sides never changes, so as real money arrives the token side has to shrink, and each token costs more than the last. Nobody sets the price and nobody can move it except by trading. The virtual reserve is there so the first buyer does not pay zero.

Where does the supply come from, and can more be minted?

The entire supply is minted once, in the transaction that creates the token, and held by the protocol’s treasury contract to be sold by the curve. There is no second minting: the token fixes its maximum supply when it is constructed and has no mint function to call afterwards.

So the number you see is the number there will ever be. What changes is how much of it has been sold.

Who picks the starting price?

The creator, at launch, within limits the protocol enforces. The virtual reserve is then derived from it rather than chosen — starting price times supply — and the arithmetic rounds up, so the price the first buyer actually gets is at or above the one the creator asked for, never below it.

Which way does the rounding go?

Against you, everywhere, by design. A buy floors the tokens you receive; a sell rounds the reserve up and therefore your refund down; an exact-output trade rounds the amount you must put in upwards. The reserve is never handed the slack and the curve is never left short, which is what makes the recorded reserve match the money actually in custody down to the last base unit.

Does the six-decimal quote asset cause rounding problems?

No, and it is worth saying why, because it is the assumption that breaks integrations. The quote asset has six decimals, not eighteen. Every amount that crosses the contract boundary — arguments, return values, events, storage — is in that asset’s own raw units.

Internally the curve works in a normalised eighteen-decimal space, entered by multiplying, which is exact, and left by dividing, which always rounds towards the reserve. A curve also snapshots its quote asset’s decimals when it launches, so its arithmetic cannot shift underneath it later.

Graduation

What happens when a curve finishes, and what becomes permanent.

What is graduation?

The end of the curve. Once enough of the supply has been sold, the curve stops trading and everything it holds — the whole real reserve, plus every token it never sold — is turned into a Uniswap v3 position in one transaction. After that the token trades on Uniswap like any other, and the curve is finished.

What is the threshold?

A share of the total supply, chosen by the creator at launch, inside bounds the protocol sets. The exact range is an on-chain bound, and this build could not read it from the chain.

Note that it is measured in tokens sold, not in money raised. Two tokens with the same threshold can graduate at very different amounts of money, depending on the price each one launched at.

The buy that crosses the line is filled exactly up to it and the rest of that buyer’s money is returned — nobody overshoots and nobody pays for tokens the curve cannot sell. A curve also cannot graduate in the block it was created in.

Are the unsold tokens burned?

No. They go into the Uniswap pool, which is the point of the design: the position is placed so that it is the exact image of the curve that produced it, starting at the price the curve started at and running upwards. Both sides go in fully and there is no leftover supply to dispose of.

The only remainder is dust from Uniswap’s tick spacing. Leftover quote joins the fee pot and is split like any other fee; leftover tokens go to the protocol treasury rather than sitting in a contract with no way to spend them.

Is the liquidity really locked, or just locked for a while?

Really locked, and not by a timer. The position is minted to the contract that created it, and that contract contains no code that could ever move it: no transfer, no approval, no decrease of liquidity, no burn, and no general-purpose call forwarder that could reach one.

It also has no owner, so there is no privileged address to compromise, and it is not behind a proxy, so there is no implementation to swap for one that does have an exit. A lock that is the absence of a function cannot expire and cannot be undone — including by the team.

One thing is reachable: collecting the fees the position earns. That is deliberate, and those fees are split on the same terms as every other fee.

The launch phases

Three optional defences against being front-run in the first block.

Are the launch phases available right now?

Not on the deployment this page is talking to. The contracts are written, tested and merged, and the core deployed here predates them — it does not answer the calls the phases are built on, so no launch can use them yet and no order has ever been placed from this app.

The rest of this section describes what the merged contracts do, so that it is worth reading before the switch-over rather than after it.

What are they for?

The bottom of a bonding curve is the cheapest it will ever be, and a launch with no phases opens in a single block. Whoever gets into that block first buys the cheapest tokens, and that is a contest between bots rather than between people who want the token.

The phases remove the advantage rather than policing it. If everyone who arrives before trading opens is filled at the same price, arriving first is worth nothing.

What are the three?

A delayed start. The token exists, but no buy or sell is accepted until a time the creator sets. On its own this does not stop sniping — it turns an unpredictable race into a scheduled one — but it gives the launch an announceable start and makes the other two possible.

A pooled first buy. Instead of racing, people deposit into a pool. When it closes, the whole pool buys from the curve as a single trade, and everybody in it is filled at that trade’s one average price.

A Dutch auction. People bid an amount and a limit price. When it closes, one clearing price is found; everyone who fills pays that price, not their own limit.

The second and third are real defences rather than schedules: while either is running the curve refuses ordinary buys outright, so there is no price for anyone to get in front of. Trading opens only once they have settled.

How do they fit together?

In a fixed order. The start comes first. After it, the pool and the auction run concurrently — the auction is not allowed to close before the pool does, though they may close together. Ordinary trading follows.

The pool always settles first, and that is not just a sequence: the pool buys the cheaper part of the curve, so the auction clears against a curve the pool has already moved.

A window shorter than the protocol’s minimum is refused when the token is launched. Seeing a launch, approving the quote asset and depositing are three separate transactions, so a window too short for a person to do all three is a window only a bot can use — which is the thing being defended against, not a defence.

If I deposit into the pool, does it matter how early I am?

No, and that is the mechanism rather than a courtesy. The pool does not buy as deposits arrive. It holds the money, and when the window closes it makes one purchase from the curve with all of it at once.

One trade has one average price, and everybody’s share is worked out from that same price. Being first in the block, or first in the window, buys you nothing at all.

A pool large enough to cross the graduation threshold is filled only up to it, and the money that could not be spent comes back with your tokens.

How does the auction decide who fills?

Your bid names a limit — the most you will pay per token — and an amount. The limit is a ceiling on what you are willing to pay, not what you will pay: when the auction closes, one clearing price is found and every bid that fills pays that price, however high its limit was. A generous limit buys a better chance of filling, never a worse price.

Limits are not compared exactly. Each is filed onto one of 1,024 fixed price levels, and the auction walks down the levels until it reaches the lowest one where the curve can still supply everything demanded at or above it. Bids above that level fill in full; bids on it share what is left in proportion to their size; bids below it are refunded in full.

So a partial fill is ordinary, not an error, and what comes back is money: the part of your bid that did not buy anything is returned as quote. Every bid ends up as exactly one of filled, partly filled, or refunded.

Can I change my mind after depositing or bidding?

Yes, until the deadline, and in full. A pool deposit can be resized to any other amount or withdrawn completely. A bid can change both its amount and its limit price — re-bidding replaces the old bid rather than adding to it, so editing and placing are the same action — and it can be withdrawn outright.

After the deadline none of that is possible, and the contract is what refuses it. The controls in this app are disabled at the same moment for the same reason, not instead of it.

Who settles it, and do I have to watch for it?

No, and in the normal case nobody has to. Settlement is lazy: the first trade after a window closes settles the phase on its way through, in the same transaction, before it buys anything. A late bid does the same. So the person who wants to trade the token is the person who opens it for trading.

That is also why the curve is never open while a phase is still unsettled — the trade that would open trading is the trade that settles. If you would rather not wait for someone else, anyone may settle it deliberately, including you.

Whoever triggers it pays the gas and is paid nothing for it, and cannot change the result: the outcome is fixed by what was in before the deadline, so settling sooner or later cannot move anybody’s price. It also costs the same whether two people joined or two thousand — the pool settles as one trade, and the auction sweeps a fixed grid of price levels rather than a list of bidders.

How do I get my tokens?

You ask for them. Settlement records what each address is owed and sends nothing — one transaction from you then moves your tokens and any refund together.

There is no deadline on it and nothing expires. What you are owed stays recorded on chain until you collect it.

What if nobody ever settles it?

This is the unlikely case, because any trade settles a due phase by itself. It matters for a token nobody trades at all, which would otherwise leave deposits waiting forever. Each phase gives settlement a grace period after its deadline, and once that has run out the deposits are recoverable — the two phases do it slightly differently, and the grace periods are not the same length.

On the pool, the release is not simply a release: anyone may trigger it after the grace, and it retries the settlement first, opening refunds only if that genuinely cannot succeed. That order is deliberate. A release that skipped a workable settlement would refund the batch and leave the untouched curve to whoever called it — which is the exact ordering advantage the pooled buy exists to remove. An auction needs no such step: each bidder reclaims their own bid directly.

Can the creator buy their own token first?

Not with a pooled buy enabled. A creator may include a buy in the launch transaction on an ordinary launch, at the ordinary price and capped well below the graduation threshold — but the contract refuses that buy outright when a pool is configured, because being the only address trading before the phases open is exactly the privilege the phases exist to remove.

Fees

What is charged, and — the part people get wrong — who receives it.

What is the trading fee?

A percentage of each curve trade, set on chain — this build could not read it from the chain. It is charged on buys and on sells, and it is taken out of the amount rather than added on top: a buy spends part of what you send on the fee and the rest on tokens.

The owner can change it, which is why this page reads it rather than stating it.

After a token graduates the protocol charges nothing of its own. You pay the Uniswap pool’s own swap fee, exactly as you would trading any other token there.

Does the creator earn a share of the fee?

No. Not a share, not a percentage, not anything. A token’s creator has metadata rights — they can update the token’s description and hand that role to another address — and no claim on any money the protocol collects.

This is worth stating plainly because it used to be otherwise, and because this app itself once showed creators a Claim button for money that was never theirs. There is now no function a creator could call to collect a fee, on the curve or on the Uniswap position; the per-token accounting a creator share was once paid out of has been deleted, and the storage that held the old percentage is retired and read by nothing.

If you are launching a token, launch it because you want the token to exist. The fee is not your revenue.

Where does the fee go instead?

To two destinations, in a proportion fixed in the contract — this build could not read it from the chain, so this page will not name the figures.

The proportion is not a setting. There is no function to change it and no stored value behind it — it is written into the code, so moving it means shipping new contracts, which is a visible act with transactions behind it rather than a key being turned.

The same division applies to the fees earned by the locked Uniswap position after a token graduates, on both sides of the pool.

When is the fee actually moved?

Not on every trade. Fees accumulate in the protocol’s custody and are swept by a separate transaction that anyone may send — there is no privileged collector. The sweep pays both destinations in one go and either completes entirely or does nothing at all.

ATEK

The protocol token, and what buyback-and-burn actually means here.

What is ATEK?

The protocol’s own token, and the destination of the larger share of every fee. Its entire supply exists from the moment it is deployed.

It has no mint function, no owner, no pause, no blocklist and no upgrade path. The supply can only ever go down.

What does buyback-and-burn mean?

The fee share earmarked for it is used to buy ATEK on the open market — an ordinary Uniswap swap, at the market price — and the ATEK that comes back is destroyed.

Both halves happen inside the transaction that collects the fee. There is no queue, no treasury holding the money in between, and nobody deciding later whether to go through with it.

The buyback is not running on the deployment this page is talking to. The core here reports the split, but the call that sweeps fees into a buyback does not exist on it yet, so no ATEK has been bought or burned from these fees. The fees accumulate in the meantime.

Is the burn real, or just a transfer to a dead address?

Real. The tokens are destroyed and the total supply goes down by exactly that amount. They are not sent to an address nobody holds the keys to — a balance parked at a dead address is a claim about an address, whereas a falling total supply is a fact anyone can read off the token contract.

What if the swap cannot happen?

Then the whole fee collection fails and nothing moves. There is no fallback path that quietly skips the burn and pays out the rest — the fees stay exactly where they were and the next attempt tries again.

That is deliberate. The alternative is a half-completed sweep that pays one destination and books an IOU for the other, which is a ledger somebody has to reconcile and a burn that can be postponed indefinitely.

The swap is also floored by the pool’s own time-weighted average price rather than by whatever the caller asks for, and a pool that cannot answer for that window makes the collection fail rather than fall back to the spot price.

Safety, honestly

What is guaranteed by code, what rests on a key, and what is not proven at all.

Has this been audited?

No. These contracts have not had a third-party security audit. They have an extensive test suite, fuzzing and static analysis, and none of that is an audit.

Treat everything here as software that has not yet been attacked by people who are paid to attack it.

What can nobody do — including the team?

Take the liquidity created at graduation. The position is held by a contract with no function that could move it, no owner, and no upgrade path. There is nothing to call and nobody privileged to call it.

Take money out of the curve. Custody sits in a separate contract that is not upgradeable and takes instructions from one address — the core — and only for paying a buyer, paying a seller, moving a fee to its two destinations, or seeding the pool at graduation. There is no rescue, sweep or emergency-withdrawal function anywhere in the protocol.

Mint more ATEK. There is no mint function.

Give up ownership by accident. Ownership moves in two steps, with the new owner accepting, and renouncing it is disabled outright — an ownerless upgradeable proxy that could never be unpaused is a worse outcome than an owner.

What can the protocol owner do?

Change the trading fee, up to a ceiling compiled into the contract. Change the address that receives the treasury’s share. Change the limits new launches are checked against, and which assets may be used as quote — neither of which touches a curve that already exists, because a curve keeps the terms it launched on. Pause. And upgrade the core.

The owner cannot redirect the buyback’s share by transaction: that destination is fixed in the implementation, so changing it requires deploying new code rather than turning a key — which is the difference between a change anybody can see and one that looks like nothing.

The honest residual is the upgrade key. The core sits behind a proxy and the owner authorises upgrades to it. An upgrade cannot reach the locked liquidity, cannot move custody and cannot mint ATEK — but it can change how the core itself behaves, and no timelock is enforced in the contracts. If that matters to you, it is the thing to watch.

What does pausing stop?

Launching, and buying and selling through the protocol — including trades it routes to Uniswap after graduation.

It does not stop fee collection, does not stop anyone claiming what a settled phase owes them, and does not stop you trading a graduated token directly on Uniswap, which the protocol has no say over.

Pausing and unpausing are deliberately asymmetric. A separate address can be authorised to pause quickly in an incident, but only the owner can unpause, so the worst a compromised pauser key can do is stop trading. On this deployment that separation is not in place: the pauser and the owner are the same address, so it buys nothing here yet.

Is this real money?

This deployment runs on a test network, and its tokens have no value. Addresses here are disposable and the deployment may be replaced without notice.

Separately, and regardless of network: a bonding curve is not an investment product. Most tokens launched on any platform of this shape go to zero, the price you see before a phase settles is a projection rather than a market, and selling back into a curve moves its price down as you go.