Skip to main content

Around the World

· 12 min read

"Around the world, around the world." - Daft Punk

More dev updates, as promised. This one takes a closer look at the Stratus launcher: what it does, the modules that attach to it, and what happens when you stack them together.

Here is the claim the rest of this post exists to back up. A token launched on Stratus can charge a trading tax on every chain it trades on, not just the one it was born on. That sounds like a small thing, but it isn't, and almost nothing else manages it, for reasons we'll get into below.

As with our last update, everything described here is live and verified on testnet.

The Launcher: One Asset, Every Chain, One Address​

Start with the launcher, because everything else hangs off it.

When you launch a SKY-20 token on Stratus, you launch it once. That same token can then exist at the same address on every SkyBridge chain we support. Not a lookalike copy on each one. The same address, because it's derived from the launch itself, from who you are and what you configured, rather than being handed out by whichever chain you happened to deploy on first.

That property does more work than it looks like. An address is how everything in this industry identifies a token: explorers, wallets, price feeds, listings, integrations, your own community. When a token has a different address on every chain, you have to build every integration a dozen times, and your holders learn to distrust all of them, because a fake token on chain nine looks exactly as legitimate as the real one on chain one. When there is a single address, a listing anywhere is a listing everywhere, and there is exactly one string anyone ever has to verify.

The full supply mints once, on your launch chain. From that point on, SkyBridge is the only thing that can mint or burn it, and because the token has no owner, nobody can quietly create more later. What arrives on another chain is the real token, not a wrapped receipt standing in for it.

Collections: The Same Model for NFTs​

SKY-721 applies the same model to NFT collections. One launch, one address, real NFTs on every chain instead of wrapped stand-ins, with the bridge as the only mint authority.

Collections choose one of two royalty modes at launch. Voluntary royalties follow the usual on-chain standard, which marketplaces honor if they choose to. Enforced royalties are checked at transfer, so a marketplace that skips them cannot complete the trade at all.

That choice is permanent, and it should be. Creators who care about royalties get a guarantee instead of a polite request, and buyers can tell which kind they are holding before they buy.

The Hooks Module: Tax on Every Chain​

Now back to the claim from the top.

Everywhere else, a tax token is a prisoner of its home chain. The reason is structural. Tax tokens work by putting the tax inside the token's own transfer logic, so every movement gets skimmed on the way through. That works fine on one chain and falls apart the moment you try to leave it, because a bridge is just another address receiving a transfer, which means the bridge itself gets taxed. So either bridging breaks outright, or the bridge gets special-cased into an exemption list, and that list is a permanent hole that somebody eventually walks through.

Even when bridging does work, what lands on the far chain is a wrapper: a plain token carrying none of the original's rules, which means your tax simply does not exist over there. Your revenue stops at the border, your liquidity fragments across a different wrapper on every chain, and each one behaves a little differently.

We solved the problem by moving the tax somewhere else. A SKY-20 has no transfer logic at all. It's a plain, immutable token, and that's exactly why it bridges cleanly without wrappers or exemption lists.

The tax lives at the pool instead, applied by a hook at the moment a trade happens. Rates are set once at launch, registered on each chain the token expands to, and frozen there. Traders can't negotiate their own rate, because the contract only accepts the one committed at launch. And collected tax is swept out by anyone who asks rather than pushed out on every single trade, which means a treasury address that is lost or becomes hostile can never wedge trading shut for everyone else.

Charging different rates for buys and sells is normally where tax tokens get dangerous, because the contract has to guess which pools are real ones. We don't have to guess: every pool Stratus launches is a Uniswap v4 pool, so a buy is a buy and a sell is a sell, with no detection guesswork in the path.

Tax is capped, and the rate is published on-chain at launch where anyone can read it before they trade.

The second hook we ship scales the fee up as a trade grows relative to the pool, so an oversized fill pays for the impact it causes. Splitting the order across a block doesn't dodge it, and neither does parking liquidity in front of it and yanking it back out afterward.

Hooks are a curated list, not an open slot. You pick from hooks we have reviewed. That limit is deliberate: an open hook slot is arbitrary code sitting in the middle of every trade, and no amount of fine print makes that a fair thing to hand a retail buyer. When we retire a hook, we retire it only for new launches, and it is never deleted out from under a pool already using it, so a decision we make next year cannot reach backwards into a pool that launched today.

The Pools Module: Liquidity That Keeps Earning​

We covered this module in depth in Stake it, Stake it, Baby, so here is the short version.

A launch can lock its liquidity into a pool that keeps earning trading fees while locked, then route those earnings into staking rewards for holders and liquidity providers. Once created, that pool is immutable and ownerless, so nobody can reach into it, ourselves included, and the rules you set at launch are the rules permanently. Enforcing liquidity locks increases trust for new launches and helps protect against rugpulls.

The part that matters for this post is what it connects to.

The Curve Module: Launch Without Bringing Capital​

Here's something we haven't talked about before.

Until now, launching on Stratus meant bringing your own liquidity. You supply the token and the ETH, the pool opens, trading starts. That works if you already have capital, and it's a wall if you don't.

So we built a bonding curve module. Instead of funding a pool up front, you open a sale and let the token be bought into existence. The price rises automatically as people buy in. When the sale reaches the target you set, it's finished.

You choose whether buyers can sell back into the curve while the sale is running or only buy, and whether the sale runs to a deadline or simply stays open until it fills.

One design goal shaped everything else: the sale should not leave a mess behind it. No stranded unsold allocation stuck in a contract nobody can clear. No price cliff at the moment real trading opens. You pick a few simple targets, and the curve derives the rest so that both of those hold on their own, rather than depending on somebody tuning the numbers correctly.

An illustrated star map of the Stratus modules. Labelled worlds trace the path a launch takes: the token is launched once and holds the same address on every chain, its tax lives at the pool rather than in the token so bridges are never charged, hooks come from a curated list, liquidity locks while its fees keep earning, and a bonding curve sale settles into a locked pool in a single transaction.

Around the World: One Transaction​

Here is where it all comes together, and why we keep saying modules instead of features.

A creator opens a bonding curve sale. At the moment they create it, they choose their tax rates, their lock duration, and where trading fees should eventually go. Then they walk away and let the sale run.

When the sale fills, in that same transaction, with nobody pressing a button, the rest happens automatically:

  • The raise becomes liquidity in a new Uniswap v4 pool.
  • That pool locks for the duration chosen back at the start.
  • The lock's earnings route to the staking destination chosen back at the start.
  • The curated hook binds as the pool initializes.
  • The tax rates register on every chain the token expands to, in force wherever it trades.

Nobody has to be trusted to carry out any of that correctly afterward, because there is no afterward. There is no admin key that finalizes it, no multisig that has to sign off, no window where a creator could quietly revise the terms between the sale ending and trading beginning. Every one of those decisions was frozen into the sale's identity before a single token was sold.

That's the entire argument for building Stratus this way. Each module is useful on its own, but snapped together they turn a launch from a sequence of promises into a single transaction that either happens exactly as specified or doesn't happen at all.

Where It Stands​

Live and verified on testnet.

The launcher runs on all twelve SkyBridge testnets, with the factories themselves sitting at one identical address across every one of them.

The pool, hook, and curve modules run on four Uniswap v4 testnets: Ethereum, Base, Arbitrum, and Unichain. Earlier this week we ran a complete bonding curve sale end to end on Base Sepolia, including graduation into a locked pool with staking attached, which is the exact sequence described above.

Mainnet is next, and we'll share deployment updates as the rollout approaches.

There's one remaining step before mainnet. Every contract goes through a full automated security scan using Hacken's tooling before deployment. We haven't run the scan yet, and we won't deploy until it's complete.

We'd also like to thank the Hacken team for generously providing the credits to run that scan.

Thanks for flying with us. 🦊✈️


Website: https://airfox.ac

Documentation: https://docs.airfox.ac

Airfox Arcade: https://play.airfox.ac

X/Twitter: https://x.com/airfox_ac

Telegram: https://t.me/airfox_ac

Discord: https://airfox.ac/discord

CoinGecko: https://www.coingecko.com/en/coins/airfox

Etherscan: 0x9414E9af3a531E47f0F2B48d1a7fAf8178cF0BD7

Uniswap: Swap AFX


Disclaimer: The content published on this site, including blogs, articles, and other published content, is provided for general informational purposes only and should not be construed as financial, investment, legal, or other professional advice. Airfox's personnel are not broker-dealers, investment advisors, or financial professionals and do not issue or provide financial, investment, or legal advice. Airfox does not validate, verify, or endorse any claims, statistics, opinions, or information presented within these materials. Furthermore, Airfox does not perform due diligence on any featured projects, companies, or investments mentioned herein.

Purpose of Digital Assets: The AFX token is issued as a consumable utility token, designed to access a service. Airfox does not endorse any digital asset as a capital investment nor guarantees any financial outcomes of token performance or future availability. Ownership of any amount of AFX does not represent equity in any legal entity. AFX token holders are not entitled to corporate voting rights, dividends, access to financial records, participation in stakeholder meetings, claims to assets, or any assumption of liabilities. Ownership or use of AFX tokens, or any other tokens or digital assets issued by the company, their subsidiaries, or partner companies, including through off-platform transactions, constitutes the usage of a service provided by us and is bound by our full and complete terms.

No Endorsement or Responsibility: The inclusion of third-party projects, products, or services does not constitute endorsement or recommendation by Airfox. Any opinions expressed are those of the authors and do not necessarily reflect the views of Airfox. Airfox explicitly disclaims all liability for errors, omissions, or actions taken based on the content provided.

Investment Risks: Investing in cryptocurrencies and other digital assets involves significant risk, including the potential loss of your entire investment. Digital assets are highly volatile and speculative, and past performance is not indicative of future results. There is no guarantee of safety or recovery if complications arise, and you should carefully consider your investment objectives and risk tolerance before engaging in any investment activity.

Acknowledgment of Risks: By accessing this site, you acknowledge and accept these risks. Airfox assumes no responsibility for any losses, damages, or other consequences that may result from the use of this site, its content, or reliance on the information provided in blogs, articles, or other published content.

Consult Professional Advisors: Readers and users are strongly encouraged to seek independent advice from qualified professionals before making any financial, legal, or investment decisions based on the information contained herein.

Terms of Service: By using the website and services, you agree to be bound by our full Terms and Privacy Policy. Ownership or use of Airfox tokens, or any other tokens or digital assets issued by Airfox, its subsidiaries, or partner companies, including through off-platform transactions, constitutes a service provided by us, and is subject to these terms, which outline risks and limitations of liability. Airfox values your privacy and does not sell your personal data.