Give Your Feedback
How to Verify

How we anchor every signal on Arbitrum, and how to check it yourself

A rating site's database is a table its owner can edit. Here's how ChainRated saves each new signal as it's posted, writes every day's records to Arbitrum, and how you can check any one of them without trusting us.

ChainRated Research · 7 min read
On this page9 sections

The short answer

Once a channel is on our list, its new signals are saved with their exact text as they're posted, usually within a minute. Once a day, all the records saved since the last run are combined into a single 32-byte fingerprint, and that fingerprint is written to a contract on Arbitrum. After that, nobody can quietly change or delete a recorded signal, us included, without the mismatch showing for anyone who checks. You can check any signal yourself, without asking us anything.

Why a rating site needs this, ours included

A site that scores signal channels keeps its numbers in a database, and whoever runs that database can change any row in it. Nothing on the page tells you whether a call was saved as it was posted, reworded three weeks later, or deleted because it embarrassed a channel that started paying.

That isn't a hypothetical. It's the ordinary business model of "top 10 signal channels" lists, and you can't see it from outside: an edited row looks exactly like an honest one. So the useful question isn't whether we promise to be honest. It's what we've made impossible for ourselves.

What we record, and since when

ChainRated started recording on July 24, 2026, with copy traders. Signal channels followed two days later, on July 26, 2026.

When a channel posts a signal, we save it as it comes out: the message text exactly as it arrived, plus the fields read from it, such as the pair, direction, entry, targets, and stop. In the week before this article was written, almost every new signal was saved less than a minute after it appeared in the channel.

A channel usually joins our list with months or years of posts behind it. We read that older history back when the channel joins, so those posts are older than our copy of them. A channel page says where its live record starts, in the line "Watched live since." Why a channel's old history proves less explains how to weigh the two parts.

Copy-trader figures come from the exchanges' own data and aren't written on chain. Anchoring covers the signals channels post.

What goes on chain every day

Each saved signal becomes a snapshot: a fixed set of bytes, a JSON object with sorted keys that holds the message text and the parsed fields. Those bytes go through SHA-256, a function that turns any input into a 32-byte digest. Change one character and the digest comes out completely different.

Once a day, every snapshot saved since the previous run goes into a Merkle tree. The digests are paired and hashed together, then the results are paired and hashed again, until one 32-byte value is left: the root. That root is written to a contract on Arbitrum One, 0xceacc40cf7b7c797d990dce7164fcccd87dad693.

The contract stores each root under a batch number, and a daily batch is numbered by its date. It refuses a second root for a number that already has one, and it has no function that edits or deletes a root, for anyone, its owner included. That rule lives in the contract's code, not in a promise from us.

When this article was written, on October 30, 2026, 44,988 signals were already anchored, in 62 roots.

A signal saved today waits for the next daily run. Until its root is on chain, its verify page shows only the digest we took, and the full bytes appear once the transaction carrying that root is confirmed.

What an anchor proves

Two things.

A specific set of bytes existed by the time its root was written. If a snapshot were rewritten afterward, its digest would change, the root couldn't be rebuilt from our records, and anyone who checks would see the mismatch on the chain, without our help.

A signal belongs to a fixed, published set for that day. Removing an inconvenient trade from an anchored day breaks the tree in the same visible way. A channel's losing calls can't be dropped later to lift its hit rate.

A time stamp and no quiet removals. That's the whole claim.

What it doesn't prove

It protects our copy, not the original post. The anchor proves that our copy of a signal hasn't changed since the day it was anchored. It can't compare that copy with the post in the channel: the blockchain never sees Telegram. That comparison is a separate check. For 90 days after a signal is posted, we re-read the original message and compare it with our copy, and a channel page shows how many of its signals were edited after publication, whenever there are any. You can also open the original post in Telegram yourself and compare, as long as the channel hasn't deleted it. Telegram's own "edited" label isn't used as evidence, because Telegram also sets it for formatting, buttons, and link previews. In our first check of 100 messages, 38 carried that label, and none of their text had changed.

It doesn't prove a trade was any good. A losing signal is anchored as firmly as a winning one. A channel that advertises "blockchain-verified" as if it meant "profitable" is selling you a category error.

It doesn't make us trustworthy. It makes one specific kind of dishonesty detectable. Everything else about a rating site still has to be earned the slow way.

How to check a signal yourself

The check is built for a stranger who assumes we're lying.

  1. Open any signal on a channel page and follow its anchor mark, or start from the verification page. You'll see the exact bytes we recorded, their SHA-256 digest, the branch of the tree above them, and the batch they belong to.
  2. Hash the bytes yourself. Any SHA-256 tool should give the same digest. If it doesn't, ours is wrong.
  3. Walk the branch. Join your digest with each sibling on the side the page shows, left or right, hash the pair, and repeat until one 32-byte root is left. The page also prints a short Python script that does this for you.
  4. Read the root for that batch number from the contract on Arbiscan and compare. The chain's copy was written at a time the chain also records, and neither is ours to edit.

If step 3 and step 4 disagree, the record has changed since it was anchored, and no explanation from us should satisfy you.

Why Arbitrum, and what keeps it running

Ethereum settles the record, and Arbitrum makes writing to it cheap enough to do every day. One root costs a fraction of a cent. At that price, expense isn't why almost nobody does this. What's missing is any reason to make your own records harder to edit.

A daily write also has to keep happening. A batch skipped when money is tight isn't a guarantee, it's a habit. So a watchdog converts the anchoring wallet's balance into days left at current gas prices and warns us well before it runs out. A proof system that silently stops proving is worse than none, and it fails in the direction that flatters us.

The part that isn't technology

Anchoring answers one question: has this record changed since it was written down? It says nothing about what gets recorded in the first place, which channels we track, or whether our scoring is fair. A post we never saved leaves no gap on chain. Those still rest on the methodology being public, on losses being shown rather than hidden, and on a rule that no listing tier moves a measured number.

What's different is that one class of promise stops being a promise. You don't have to believe that the signals on this site weren't edited after the fact. You can check.

Written by

ChainRated Research

Our in-house desk. Where we quote numbers, they come from our own archive of replayed signals — never a channel's own claims.

Helped? Tell your story — the next person will find it before they pay.

Everything on ChainRated starts with someone who went through it: a channel that went quiet, a withdrawal that never arrived, an evening spent working out how this business actually runs. If any of that is you, it belongs here.

Reviews are account-bound and moderated before they go up. We never ask readers for money — only for what happened.

Related guides

Is selling crypto signals regulated?

Selling trade calls is a licensed activity in some countries and sits outside the perimeter in others, and the line moves the moment the seller touches your money. Three questions decide where a channel stands, and each one has a public page you can look up in minutes.

ChainRated Research11 min read

How old is a Telegram channel, and what does that prove?

"Running since 2019" is the second-oldest trust signal after the subscriber count, and it costs about as little. The app does not display a creation date, so everything a reader treats as age is an inference from something else — and each of those things can be edited, bought or renamed.

ChainRated Research9 min read

What Telegram's verified badge actually means

A checkmark beside a signal channel's name reads like approval. The platform that issues it describes something narrower: an identity claim from an approved application. Here is what the mark covers, what it cannot cover, and the three things that look like it but are not it.

ChainRated Research9 min read