← All news

Forensic analysisBNB Chain

AXIS: simulated liquidity drained with a hidden balance function

On 21 October 2026 the owner of AXIS called a function that multiplies any address balance by 2,000,000 without events, then sold the invented tokens into its own PancakeSwap pool and received 1,235,445 USDT, 61 seconds later. The pool was not funded by outside buyers: the owner and its bot made 99.8% of the swaps and outside buyers put in 110 USDT. The same owner controls 27 tokens ending in 7777 with the same function. 26 pools are drained and one shows liquidity now.

Token
AXIS (Axis Robotics), 18 decimals, supply 1,000,000,000
Contract
0xb3a30fbaecc17da5711d6dfcdc04280dbb967777

Open the current rating on the radar

1. Summary

AXIS is the latest of 27 tokens created between 9 and 21 October 2026 that share one final owner wallet. Its contract hides an owner-only function that rewrites the balance of any address without emitting an event or changing totalSupply(). On 21 October the owner used it on its own address, sold the result into the AXIS/USDT pool and took the pool's USDT.

The rating of AXIS is a separate matter from the money: the figures below show that the liquidity that disappeared was almost entirely the owner's own capital, and that outside buyers lost very little. The risk to anyone buying these tokens is real. The amount lost so far, in the cases we reconstructed, is small.

  • The hidden function (0xaaeccdcf) multiplies the balance of an address by amount / 1,000,000,000. It was called with amount = 2,000,000,000,000,000, a factor of 2,000,000. The owner balance went from 730,019,450 to 1,460,038,900,126,003 tokens, against a declared supply of 1,000,000,000.
  • The sale followed 61 seconds later. The owner swapped 1.46×10¹⁵ AXIS in the pool and received 1,235,445.39 USDT. The pool fell from 1.24 million USDT to 0.07 USDT.
  • No liquidity was withdrawn. The liquidity tokens were locked (PinkLock V2 according to the radar) before the first hour had passed and were not touched. A "liquidity locked" check passes on this token.
  • 8,776 of the 8,797 swaps in the pool (99.8%) were made by the owner wallet or its bot contract. Gross volume was about 300 million USDT. Ten outside wallets bought for a total of 110.39 USDT and none ever sold.
  • The owner USDT balance was 1,873,456.83 before launch and 1,873,567.14 after the drain, a difference of 110.31 USDT. The pool liquidity was the owner's capital going in and coming out.
  • The same owner wallet controls 27 tokens ending in 7777, created from 9 October, all with the same function. 26 of their pools are drained. In the five most recent cycles, analysed in full, each new token was created 54 to 150 seconds after the previous drain.
  • Across those five pools, outside buyers put in 1,509.77 USDT in total, from at most 53 wallets, and withdrew nothing.
  • At 17:30 UTC on 21 October the 27th token, also named AXIS, showed 1,358,061 USDT in its pool. See section 11.

2. Scope and method

Every figure comes from public BNB Chain data read at exact blocks from an archive node: contract bytecode and storage, transaction receipts, Swap, Sync, Mint and Transfer logs of the pool, and balanceOf at chosen blocks. Times are UTC. Last block read: 128,978,411 (21 October 2026, 17:30).

The source code of the AXIS contract is not verified on BscScan. The function descriptions come from the deployed bytecode, 6,467 bytes. Where a role is inferred rather than shown by a transaction, the text says so. No wallet is attributed to a person.

This analysis started from the radar page for AXIS, which reports a SCAM rating, a 100% liquidity fall about 778 minutes after launch and insiders selling into the pool. Those statements are correct. This report adds the mechanism and shows who funded the liquidity.

3. Addresses involved

RoleAddress
AXIS token0xb3a3…7777
AXIS/USDT pool (PancakeSwap V2)0x1f7C…caE9
Owner and main wallet0x34f0…c385
Bot contract (8,775 swaps)0xf9ff…85dd
Deployer of AXIS0xc356…0737
Liquidity locker (PinkLock V2 according to the radar)0x4079…1bbe
Router used for the final sale0xd9c5…9aeb
USDT (BEP-20)0x55d3…7955

4. The night of 20-21 October

Chart: the AXIS pool liquidity rises from 100,000 to about 1.3 million USDT over 13 hours and falls to zero at 06:13 on 21 October; the implied price rises from 0.00025 to about 0.025 USDT.
The price rose about 75 to 100 times with no outside buyers: the owner bot buys more than it sells. After the final sale the implied price falls to about 5×10⁻¹⁷, below the chart scale.
Time (UTC)Event
20 Oct 17:14:47The deployer creates the contract (block 128,784,285). The pool is created with it. The owner is 0x34f0…c385.
20 Oct 17:15:41The owner adds 100,000 USDT and 400,000,000 AXIS and receives 6,324,555 liquidity tokens (block 128,784,405).
20 Oct 17:16The liquidity tokens move to the locker after 78 blocks (block 128,784,483).
from 20 Oct 17:15The bot contract starts buying and selling: 8,775 swaps in 13 hours. Purchases exceed sales by 1,135,000 USDT, so the price and the reserve rise.
21 Oct 06:03:31Pool liquidity peaks at 1,544,496 USDT.
21 Oct 06:12:56The owner calls the hidden function on its own address (block 128,888,019, 29,556 gas).
21 Oct 06:13:57The owner sells 1.46×10¹⁵ AXIS and receives 1,235,445.39 USDT (block 128,888,156). The pool keeps 0.07 USDT.
21 Oct 06:14:51The same owner receives a new token, Kimchi, 54 seconds after the sale.

5. The hidden function

The contract exposes the usual ERC-20 functions plus eight that are not part of the standard. The one that matters has selector 0xaaeccdcf and takes an address and a number. It is restricted to the owner (it checks the caller against storage slot 0 and fails with "Ownable: caller is not the owner"). It then does this:

balance[address] = balance[address] * amount / 1,000,000,000

In all five calls we found, amount is 0x71afd498d0000, that is 2×10¹⁵, so the balance is multiplied by 2,000,000. The function emits no Transfer event and does not change totalSupply(). Holder lists, event scanners and supply checks show nothing. The inflated balance is visible only by calling balanceOf().

Balance before and after the call

Values read at blocks 128,888,018 (before) and 128,888,019 (after) on the AXIS token:

BeforeAfter
Owner balance730,019,4501,460,038,900,126,003
Declared total supply1,000,000,0001,000,000,000
Balance to supply0.731,460,039

6. The other six functions

All six are owner-only. Their role is inferred from how transfer reads the data they write. It is not confirmed by source code.

SelectorSignatureWhat it appears to do
a223b384(address[], bool)Flags addresses. If the sender, recipient, caller or tx.origin is flagged, the transfer fails with a message: a block list.
a4d08084(address[], bool)Flags addresses exempt from the transfer checks.
b9c1e0bc(address[], bool)Flags addresses allowed to trade with the pool: the pool path requires it.
c1bfccbf(address[], uint256[])Sets a number per address that transfers compare with the current block: a per-address time lock.
a86e4e33(bool)Switches a global flag stored in slot 1.
bf29c958(uint256)Sets a global number (slot 7, now 1).

Transfers toward the pool also check that the pool is the pair of this token and fail with the message "777" otherwise. That string matches the suffix shared by all the token addresses in this series.

7. The 61 seconds

  1. 06:12:56. One transaction of 29,556 gas, no events. The owner balance is multiplied by 2,000,000.
  2. 06:13:57. The owner sends 1.46×10¹⁵ AXIS to a router (execute selector 0x3593564c), which swaps them in the AXIS/USDT pool.
  3. Same block. 1,235,445.39 USDT leave the pool for the owner. The pool formula pays almost the whole USDT reserve to whoever delivers an enormous quantity of tokens.
  4. 06:13:58. Pool reserves: 0.069 USDT against 1.25×10¹⁵ AXIS. The residual value is $0.14 counting both sides.

The liquidity lock plays no part. The liquidity tokens stayed where they were. The pool was emptied from the other side, by selling tokens that did not exist.

Standard checks do not catch this. Liquidity is 100% locked. Buy and sell taxes are 0%. A buy and sell simulation passes with a clean wallet. Ownership is not renounced, but with no verified source there is nothing readable to inspect. The call produces no log.

8. Volume and who made it

The pool recorded 8,797 swaps. The owner wallet or its bot contract (0xf9ffcdc55376c811ee88c18d1e2d425b4db985dd) made 8,776. Outside wallets made 21 swaps from 10 recipient addresses, for 110.39 USDT in total, and no outside wallet ever sold.

The bot works in two ways: thousands of 1 USDT purchases, and single transactions with series of purchases and sales of 1 million USDT each. The gross volume, about 150 million USDT bought and 150 million sold, shows in any tracker as real activity.

TokenSwapsBy owner and botOutside USDT inOutside walletsOutside USDT out
AXIS8,79799.8%110.39100.00
pPOLY9,91699.9%14.7780.00
startupSI7,88499.8%40.69150.00
PEARL5,87299.9%46.7650.00
AXIS (no. 1)6,10799.4%1,297.16150.00

Outside holders were simulated at the block before the hidden call, for each of the five tokens. 26 wallets with a balance tried to move tokens. None could: a transfer to the pool fails with error "g" and a transfer to an ordinary address fails with an empty error. On AXIS, 6 of the 10 outside wallets had a non-zero value in the per-address mapping of slot 5, the one compared with the block number. The owner, its bot and a clean test wallet had zero. Two outside wallets, which bought for 7 and 9 USDT, had the allow flag of slot 2 instead. We do not know who sets that value or when.

This is a simulation with eth_call, not a real sale, and we did not reconstruct the exact condition. It matches the facts: in five pools, no outside wallet sold.

9. Five cycles in a row

The five most recent tokens analysed in full follow each other. Each drain is followed, 54 to 150 seconds later, by the creation of the next token. The capital that returns from a drain pays for the seed and the operations of the next pool.

Bar chart: seven consecutive tokens, each created 54 to 150 seconds after the drain of the previous one.
Creation to drain for seven consecutive tokens. Kimchi was drained, its timing was not analysed. The last AXIS still had liquidity at 17:30 UTC on 21 October.
TokenSeed (USDT)Sampled peakDrain to owner (USDT)Hidden call to saleOutside USDT inHidden call tx
AXIS 0xb3a3…7777100,0001,345,5961,235,445.3961 s110.390xadf202a8…89c222
pPOLY 0xd0c1…7777800,0001,777,5381,462,723.2129 s14.770x37d9e93d…5ccf22
startupSI 0xc88f…7777100,0001,171,2531,031,962.9139 s40.690x5ebc6314…1275e7
PEARL 0x9d8e…7777100,0001,028,470828,560.2029 s46.760xc41b62ce…0dd6ea
AXIS (no. 1) 0xad4f…7777100,0001,589,264269,745.4736 s1,297.160xfe168590…1c7599

Seed is the USDT the owner added when the pool was created. Sampled peak is the highest value found by sampling every 2,000 blocks. The AXIS peak measured on every event is 1,544,496 USDT. The five drains returned 4,828,437 USDT to the owner wallet, which is the owner's own capital coming back.

Liquidity of the five pools

Liquidity of the five latest analysed tokens, from the creation of each pool to its drain. The sampling is coarse, so the peaks are understated.

Lines: the liquidity of five pools rises to between 1 and 1.8 million USDT and falls to zero within 5 to 13 hours.
Each circle marks the drain of a pool.

10. The same owner, 27 tokens

Searching for OwnershipTransferred events to the owner wallet from block 126,500,000 returns 27 tokens, created between 9 and 21 October. All end in 7777, all contain selector 0xaaeccdcf, and 26 have a drained pool, with a token reserve hundreds of thousands of times above the supply. Each is distributed by a different deployer wallet which then hands ownership to the main wallet.

The deployers we met are 0x0a22…bd2b (pPOLY), 0xee88…cff7 (startupSI), 0xb833…c13e (PEARL), 0xe9d0…a58d (AXIS no. 1), 0xc356…0737 (AXIS) and 0x8e7a…df75 (the live AXIS). All appear among the linked wallets listed on the radar page for AXIS. A throwaway deployer explains why the creator history of AXIS shows no earlier launches while the linked network shows many.

Timeline: 27 tokens created between 9 and 21 October 2026, 26 drained and one still holding liquidity.
Tokens owned by 0x34f09a62…c385 over time.

11. Where the money went

In a pool that starts from nothing and ends at nothing, what the owner gains equals what outside buyers lose. For AXIS the owner USDT balance reads:

Bars: the owner USDT balance falls from 1.87 million to 1.77 million after the pool seed, to 0.64 million before the sale, and returns to 1.87 million after the drain.
USDT balance of the owner wallet at four exact blocks.

The difference is +110.31 USDT, in line with the 110.39 USDT spent by outside wallets. Across the five pools outside buyers put in 1,509.77 USDT (AXIS 110.39, pPOLY 14.77, startupSI 40.69, PEARL 46.76, AXIS no. 1 1,297.16) and withdrew none. That is the documented loss.

After the drain, 1,000,000 USDT went to 0x7a813657019d9a14c77a3ecfc11209f881f2639a (block 128,888,534) and the wallet held 614,466 USDT at the last reading. We do not know what that address is.

12. A token live at the time of writing

The 27th token is also named AXIS: 0xd3901b360b03469e4f12481745196f5f88107777, created on 21 October at 08:07 UTC by deployer 0x8e7abc787233e29c2d58c8e78c258cbae6c7df75. At 17:30 UTC its pool (0xcbd4b453e9a705fa1f9526b26fab8a8bc7b9915e) held 1,358,061 USDT. The owner is the same wallet and holds 738 million tokens, below the supply, so the hidden function does not appear to have been used yet. Its liquidity tokens are in the same locker.

This is the state read from the chain at that time. It is not a forecast. There are three tokens named AXIS in this series, at 0xad4f…7777, 0xb3a3…7777 and 0xd390…7777: a name is not an identity.

13. What this means

  • Compare balanceOf(owner) with totalSupply(). If a balance exceeds the supply, or balances do not add up to it, do not buy.
  • A "liquidity locked" badge says the liquidity tokens cannot be withdrawn. It does not stop a pool being drained by selling tokens that were created by the owner.
  • High volume and liquidity on a token a few hours old can be the owner trading with itself. Here it was 99.8% of the swaps.
  • An unverified contract with owner-only functions that write balances is already a warning, whatever the checks on taxes and ownership say.
  • For scanners and lists: flag owner-only functions that change balances without a Transfer event, compare the balances of main wallets with the supply, and link deployers through the final owner. A throwaway deployer hides history. The final owner does not.

14. Limitations

  • The purpose of the operation is unknown. It spends gas and fees to build volume and liquidity and gains about 1,500 USDT across five cycles. Possible explanations include volume and liquidity for ranking tables, a test of the mechanism or an activity that pays for volume. None is shown.
  • We did not trace where the 1.87 million USDT held by the owner before AXIS came from.
  • The roles of six of the eight custom functions are inferred from bytecode. The effect of 0xaaeccdcf is established by a real call and by balances.
  • The locker is identified as PinkLock V2 by the radar. For the live token the lock expires on 31 October 2027. We did not read the lock terms of the five earlier cycles.
  • For 22 of the 27 tokens we have only the current state of the pool, not the flows. The number of people who lost money over the twelve days is therefore a lower bound.
  • Whether the live token will be drained in the same way is an expectation based on 26 earlier cases, not a fact.

Appendix A. Transactions of the five cycles

TokenHidden call (UTC)Drain (UTC)Drain transaction
AXIS2026-10-21 06:12:562026-10-21 06:13:570x6286faa0…c11fee
pPOLY2026-10-19 16:23:312026-10-19 16:24:000xd7255b0a…cc5bc7
startupSI2026-10-20 04:14:322026-10-20 04:15:110x508ed901…5d59a9
PEARL2026-10-20 12:32:242026-10-20 12:32:530x9120e553…02b6bf
AXIS (no. 1)2026-10-20 17:12:282026-10-20 17:13:040xe9feaf16…66350a

Appendix B. The 27 tokens of the owner

Created (UTC)SymbolContractState on 21 Oct, 17:30 UTC
2026-10-09 07:52:24(senza nome)0x6016…7777drained
2026-10-09 22:44:27(senza nome)0x8455…7777drained
2026-10-10 03:41:46GBT0x6a99…7777drained
2026-10-11 02:37:51SAFU0xa2e8…7777drained
2026-10-11 14:20:51GBT0xbcda…7777drained
2026-10-12 00:36:39(senza nome)0xad35…7777drained
2026-10-12 02:14:14DOPE0xdcd6…7777drained
2026-10-12 14:32:09okt0xf866…7777drained
2026-10-13 04:51:42(senza nome)0xba28…7777drained
2026-10-13 17:27:22LOL0x6864…7777drained
2026-10-14 01:02:25GBT0x70b9…7777drained
2026-10-14 05:23:24BABAB0x8e85…7777drained
2026-10-14 05:24:00BABAB0xf3f0…7777drained
2026-10-15 03:13:23BABAB0x7fd1…7777drained
2026-10-15 09:44:24(senza nome)0xc5db…7777drained
2026-10-15 14:30:12DNA0x94e6…7777drained
2026-10-16 16:47:32RTX50900x8d86…7777drained
2026-10-17 06:09:28AGX0xa3e5…7777drained
2026-10-17 10:23:36TSLAB0x6529…7777drained
2026-10-18 05:04:41IBS0xa4b0…7777drained
2026-10-19 04:02:28pPOLY0xd0c1…7777drained
2026-10-19 16:25:13startupSI0xc88f…7777drained
2026-10-20 04:17:41PEARL0x9d8e…7777drained
2026-10-20 12:34:08AXIS0xad4f…7777drained
2026-10-20 17:14:47AXIS0xb3a3…7777drained
2026-10-21 06:14:51Kimchi0x5d84…7777drained
2026-10-21 08:07:36AXIS0xd390…7777liquidity present

Appendix C. How to reproduce

  • Inflated balance: eth_call of balanceOf(owner) on the AXIS token at blocks 128,888,018 and 128,888,019.
  • Hidden call: transaction 0xadf202a881a172afbb2a79ea20d122445080e9e422c585f586d486b6a489c222, input 0xaaeccdcf + owner address + 0x71afd498d0000.
  • Sale: transaction 0x6286faa0f09b5ce695a4f5be75b887a533b36f2624fec764bf3471bd46c11fee, logs Transfer of 1.46×10¹⁵ AXIS from the owner to the pool and 1,235,445.39 USDT from the pool to the owner.
  • Owner balances in USDT: balanceOf(owner) on the USDT contract at blocks 128,784,404, 128,784,406, 128,888,155 and 128,888,157.
  • Network of tokens: OwnershipTransferred logs with the owner wallet as new owner, from block 126,500,000.
  • Outside swaps: Swap logs of the pool with a recipient other than the owner wallet.

Sources

Ratings are automated assessments of structural risk from public blockchain data, not investment advice. Methodology.