Questions

FAQ

Your sweep found nothing. Why is the site still here?

Because “nothing, today, on this chain” is not the same as “nothing”. 166 of 166 tokens delivered exactly what was asked, and that is precisely why the assumption is everywhere and why nothing is built to notice when it stops. The moment a taxed token is deployed here, or one is bridged in from a chain where they are ordinary, every contract that wrote down the request is holding a figure that was never true. A measurement whose answer is zero is still a measurement; publishing it is the difference between having checked and having assumed.

Is this not just SafeERC20?

No, and the difference is the whole point. A safe wrapper checks the bool if there is one, accepts silence, and checks the code — all necessary, none sufficient, because it still ends with the caller writing down the number it asked for. A fee-on-transfer token passes every one of those checks. Ullage does not use the argument as a quantity at all.

What does it cost?

Two extra balance reads per operation, through a cold external call. That is the entire price, and in exchange the fee case, the truncating case, the moved-nothing case and the rebase-mid-call case stop being special cases.

Why does a withdrawal not revert when the payee is short-changed?

Because it would make every fee-on-transfer token permanently unwithdrawable, which is a worse outcome than telling the truth. The shortfall is returned and emitted. The one case that does revert is the mirror image: a token that takes its cut out of the sender leaves the contract lighter than the holder authorised, and no receiving account may accept that.

Who bears a shortfall when a token claws units back?

Ullage does not decide. deficit(token) names the number and available() follows the balance, so payouts run first-come and the quote says so instead of promising what is no longer there. Arbitrating it — pro rata, or a socialised write-down — is a policy question, and a gauge that also adjudicates is two contracts wearing one name.

Can an unattributed transfer into the contract be stolen?

Somebody who sends tokens with a plain transfer has told the contract a quantity and not who it is for. It will not guess, so the units sit unbooked until book() claims them, and claiming is deliberately open. That is a race, and it is the honest shape of the situation: the alternative is to invent an owner. Use deposit.

Is the contract audited?

No. It has 23 properties and 16 sabotages executed against Robinhood Chain's own EVM, which is a different thing and not a substitute. It is 3,074 bytes of runtime with no owner, no upgrade path and no pause, which is the most useful thing that can be said about its risk surface without an audit.

Where is the deployed contract?

There is not one yet. The app deploys it from your own wallet and then verifies the code at the address the receipt reports — not the address it predicted. A placeholder address here would be the one number on this site that had not been measured.

Does the sweep touch the chain?

No. Every reading is eth_call against the node's own evaluator, at a pinned block, with a state override that exists only for the duration of that call. Nothing is signed and nothing is broadcast.