YFARMX

Cronos · verification tool

Check the Tectonic addresses yourself

Cronos rewound its own blockchain on 30 August 2026 to undo the Tectonic theft. This page reads the addresses straight from public Cronos nodes as it loads, so you can see the figures for yourself rather than take our word for any of them.

Look up any address or transaction

Cronos has no working way to inspect an address. Cronoscan was retired on 6 October 2025 and redirects to explorer.cronos.org, whose address pages return a server error and whose transaction pages say "not indexed yet" while it rebuilds. Public nodes are unaffected, and public nodes are what this page asks.

Works for anything on Cronos, not only the addresses below.

What the rewind gave back

The rewind deleted the theft, so money the attacker had spent went back to sitting where it started. Read live as this page loads.

What the attack contract exposes

The contract Cronos left standing is not a spent one-off. Its bytecode carries an entry point that lets whoever controls it make the contract call any address with any payload.

SelectorSignature
0xb61d27f6execute(address,uint256,bytes)
0x2e1a7d4dwithdraw(uint256)
0x38ed1739swapExactTokensForTokens(uint256,uint256,address[],address,uint256)
0x095ea7b3approve(address,uint256)
0xa9059cbbtransfer(address,uint256)
0x70a08231balanceOf(address)

A general-purpose executor with a swap route and token plumbing, rather than a single-use script. That is what the contract exposes.

The limit of this finding

Six selectors resolve against known signatures. The rest are unidentified, and the contract's source has never been published. We have bytecode and nothing else. This is what the contract exposes, not a description of what it did.

The candidate count depends on how you scan. A disassembler that steps over each pushed value finds more than forty plausible selectors here; a scan that slides byte by byte finds more again, because 0x63 is both the PUSH4 opcode and the ASCII letter c, so string data reads as selectors. Ours discarded three candidates whose four bytes were all printable, among them 0x654f7574 and 0x6374702d. Anyone with the bytecode can redo it and should expect a slightly different total. The six above are what survive either method.

Do not take our word for it

Fetch the bytecode yourself.

curl -s https://evm.cronos.org -H 'content-type: application/json' \
 --data '{"jsonrpc":"2.0","id":1,"method":"eth_getCode",
   "params":["0x085f3115ca368aa262246d22f9476e1e2c87e8be","latest"]}'

Returns 16,569 bytes of hex. Every selector above is in it.

What the token contract cannot do

The bridged USDC.e contract holds about forty public functions. Twelve powers that would let an issuer reach into a wallet are absent from its bytecode, checked by selector.

Freeze, pause, seize and upgrade powers 0 of 12 present

blacklist, isBlacklisted, pause, unpause, paused, seize, burnFrom, destroyBlackFunds, addBlackList, freeze, implementation and upgradeTo. Checked against three selectors known to be in the contract, so the scanner is shown to be working either side of the result.

Worth stating why one of these numbers is exact and the other is not: string data inside a binary can inflate a count of what is present, but it cannot manufacture an absence. The count is approximate. The absence is not.

What the rewind replaced

At one height, the two chains. The canonical side is live and you can check it. The discarded side is our recording, and it is the part nothing else holds.

Block 90,896,190HashTimestampTxs
Canonical
live, checkable
0x8ea00125a08956b1af662d3eed4a21b31b558d8ce4a171e07e17c5e51a20973b 23:49:01 UTC0
Discarded fork
our recording
0x0a22e4d4…12:38:56 UTC17

The canonical block at that height was produced at 23:49:01, eleven hours after the fork's block at the same height. That gap is the halt.

Read this before you use the fork figures

The discarded row is our capture, recorded on 31 August 2026 from cronos.drpc.org while that endpoint was still serving the discarded chain. It cannot currently be reproduced, by us or by anyone. No public endpoint serves that chain any more, and a Wayback search across every host we know of returned no captures of any exploit-era transaction or address.

We are not presenting it as independently verifiable, because it is not. It is reported as recorded and unverifiable, and that caveat is the reason this section exists at all: without it there would be no public record of what the rewind replaced.

Who still serves the discarded chain

Thirteen public Cronos endpoints, every one we could find, surveyed 31 August 2026 at 17:44:45 UTC. Block 90,896,189 is the discriminator: its hash names which chain an endpoint is on.

Endpoints checked13
Serving the canonical chain4

evm.cronos.org, 1rpc.io/cro, cronos.rpc.thirdweb.com and rpc.vvs.finance, all returning the identical hash at 90,896,189. That half of the record rests on four independent sources.

Unreachable9
Still serving the discarded fork0

cronos.drpc.org was serving it earlier that day at head 90,907,150. It withdrew individual methods first, then went unreachable altogether. No other endpoint ever served it.

The rollback boundary, pinned

Public Cronos nodes serve a rolling window, and it slides forward. These heights will pass out of reach, so they are recorded here with the time each was read.

If the figures disagree with a tracker

At least one widely used tracker currently shows the stake wallet holding roughly $60m in a lending position that does not exist. We checked all eighteen Tectonic markets, the VVS token, tVVS and all three TONIC pairs, and found zero in every one. The same tracker omits the 5,000,950.223954 USDC.e that four separate nodes confirm.

Wrong in both directions at once is what an index still holding pre-rewind state looks like. The nodes are the authority here, and the command below is how you ask them.

Do not take our word for it

Run this instead.

curl -s https://evm.cronos.org -H 'content-type: application/json' \
 --data '{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{
   "to":"0xc21223249ca28397b4b6541dffaecc539bff0c59",
   "data":"0x70a082310000000000000000000000007d4e7e5dcb0ccc66b4f0f8b0f30da5078ad4f2dc"},"latest"]}'

Returns the stake wallet's balance in hex. Divide by 1,000,000 for USDC.e. The address is padded to 32 bytes; swap in any other and it still works.