APEX · Corrections

Where we got it wrong

This is the log of our own mistakes. Every entry says what was wrong, who it could have affected, and what we changed. Nothing here is edited away once it is published, and we add an entry whether or not anybody noticed.

You do not have to take our records on trust: every hour they are fingerprinted and the fingerprint is written to the X1 chain. Check any record yourself.

Read the newest correction ↓

We are one person and one machine, building in the open, most of the day, most days. We are not Circle and we are not BlackRock, and we do not have five thousand engineers to catch things before you see them. What we can promise instead is this page: when we find a mistake, you hear it from us first, in plain words, with the real numbers.

If something we sold you did not do what we said it would, tell Flux or write to us and we will make it right.

2026-09-25 · The Citizen Agent wallet

We invited people to fund an agent wallet that could not send the money back.

The Citizen Agent, the chat in APEX City, used to come with a wallet of its own. Its key was derived by our server from a seed our server holds, so we held every one of those wallets, while its page said there was no central authority. On 18 September we switched its sending off, after finding the chat could be asked to send from anyone's agent. The “+ Fund 0.5 XNT” button and the agent's own “fund me” reply stayed, so anything sent in after that could not come back out. We checked the agent wallet of every wallet we know, 2,119 from the faucet and the city: none holds any XNT, and the only one that ever received money is the founder's own, 0.04 XNT. If you ever sent XNT to your agent, tell Flux your wallet address and we will send it back: its key can still be derived.

What changedThe agent wallet is closed: no address is shown or handed out, the fund button is gone and the chat now says it holds no funds. It still reads your balances, tokens and the faucet. The 0.04 XNT went back to its owner in transaction Usw8zG7t…. A sweep rule fails if any page invites funding the agent again.
2026-09-25 · A wrong reason on our Arc creator-fee page

We said no public Arc endpoint serves logs older than about 69 hours. One serves nine days.

Our page on what Arc creator fees really pay measured every Argus launch in a 69-hour window and said the window was forced on us, because no public endpoint would serve older logs. We had tested that without filtering the query to one address and read the refusal as deleted history. On 22 September we measured again: at least one public Arc endpoint serves logs nine days deep when the query is filtered to one address. What is limited is how wide a query can be, not how old the blocks are. The old sentence stayed on that page until today.

What changedThe page now says the window was ours, not the chain's, and that a longer one can be read. The measurement itself, a random sample of 900 from 137,656 launches, is unchanged. A sweep rule now fails if the old sentence appears on any public page.
2026-09-22 · A wrong verdict on new Arc launches, and two rates we withdrew

We told people new Arc pools were empty and their liquidity withdrawn. Most were not.

Our Arc exit check read a pool's liquidity at the current price and, when it was zero, said the pool was empty and that whoever held the liquidity had withdrawn it. A brand-new launch often reads zero there while its liquidity sits just beside the current price, and it trades normally. Of the last 300 launches, 115 carried that label. We checked 12 on chain: every one had liquidity added and none had it removed, and the ones we could probe with a real buy and sell went through at a 2–10% round-trip cost.

The same fault sat under two rates we published: that 77.5% of Arc launches could not be sold, and that 83.7% of launches whose hook can rewrite swaps could not be sold. Both came from pricing a sell before any buy, which fails on most fresh pools whatever they are. With a real round trip, 10 of 10 pools with that hook signature sold. Both rates are withdrawn. We publish no replacement until one is measured the right way.

What changedA pool is called empty only when a buy also cannot be filled. When only a quote is possible and it fails for no stated reason, the answer now says “sell not measured” instead of “cannot sell” — and pools priced in the ERC-20 form of USDC, which could only be quoted before, now get a real buy, approve and sell simulated in sequence. The 1,159 stored verdicts that carried either label were corrected. Pools in the Arc graveyard, which had really traded, were re-checked and hold: 20 of 20 could not be traded, and 6 of 6 sampled had their liquidity removed on chain.
2026-09-17 · Paid product returned an error

Anyone paying per call for the threat report got a 500 instead of the report

We added per-call payment alongside the older subscription so nobody had to commit five XNT for a single lookup. The payment gate was updated correctly. The reply was not: it still assumed the caller held a subscription, so for a per-call payer it crashed on a field that was not there. It also described those callers as subscribers, which they were not.

Fixed. A per-call payer now receives the same answer a subscriber receives, labelled honestly as per-call access: 84 blacklisted wallets, 92 tokens, and the 39 most recent alerts.

What we changed/api/flux-intel/json now reports access: per-call or access: subscription, and never claims a subscription that does not exist.
2026-09-17 · A product described larger than it is

The trade feed was advertised as 1,000 trades. It has always returned 200.

Our firehose endpoint was listed on six different surfaces as the last 1,000 trades, at fifty cents. The code behind it caps at 200 rows and always has. The description was written from an intention rather than from the handler.

It is now described as what it is, the 200 most recent trades, and repriced to ten cents in line with our other bulk reads. We also added automatic checks that fail our build when any product quotes a size its own code cannot return, so this class of mistake cannot come back quietly.

If you paid fifty cents for itContact us and we will refund the difference. We would rather be short the money than have sold you something we described wrongly.
2026-09-17 · Paid data was reachable without paying

Five files that should have been behind the paywall were served openly

Five files were reachable without payment that should not have been, including one that duplicated the answer of a paid product and one that should never have been published at all. The cause was ours: a file can end up in a place that is served directly, where the protection our application applies never gets a chance to run.

All five are closed. We also now audit our own paid products from the outside, as a stranger reaches them rather than from inside our own network, and that audit runs automatically every three hours. The most recent run made 512 attempts against our paywall and none of them got through.

Why we are telling youAnyone who found those files had them. Saying nothing would have been the easier choice and the dishonest one.
2026-09-17 · Numbers we published and then retracted

We claimed Arc trading volume was largely fake. We were wrong, and we pulled the product.

We reported that reported volume on Arc was inflated by a large multiple. Two errors produced that: we grouped tokens by their symbol, and 224 different contracts on Arc share the symbol we used as our example; and we built a ratio on a field that only ever records the first buyer of a pool, for the first eight swaps, so it was never the full picture it looked like.

The product was removed rather than adjusted. We do not think a number like that deserves a second try on the same foundation. Identity here is now always the contract address, never a symbol or a name.

Corrected figuresOf 48,680 indexed Arc launches, 77.5% could not be sold through the standard route in our probe. An earlier version of this said 86% to 89%, taken from a sample of 300 launches over nine minutes, and presented as though it covered everything.
2026-09-17 · Wrong advice inside a paid answer

We told people to wait twelve confirmations on a chain that settles instantly

One of our Arc endpoints treated finality the way it works on other chains and told callers to wait for twelve confirmations. Arc settles deterministically the moment a transaction is included. We had carried an assumption across from a different chain instead of reading Arc's own documentation.

Corrected. It now reports finality the way Arc actually provides it.

This page exists because the only thing we really sell is that our numbers are true. A project that never publishes a correction is not a project without mistakes; it is a project that does not tell you about them. If you find something wrong here before we do, we would genuinely like to know.