betterERC
Docs/Clients

Integration checklist

The list to keep next to the pull request, in the order the questions actually have to be answered.

All docs

Everything here is covered in more detail on the pages above. The order matters: the first two decide what the rest of the list is worth.

Establish the tier first
Bytecode against your pinned runtime for verified, an answering behaviorFlags for self-declared, everything else unknown. Until this is answered, the declaration is a number with no standing.
Never map a revert to zero
A silent token is unclassified, not plain. Tokens outside this framework charge fees too, and an uninitialised clone also reverts — then anyone can initialise it, with a fee.
Cache the word
Read behaviorFlags once and store it next to the token address. It is fixed for the lifetime of the deployment.
Fee on transfer
Quote against computeFee, or the published ceiling if the quote has to survive a configuration change between quoting and landing. Or skip the question entirely with a checked transfer, which is correct without knowing anything about the fee.
Transfer hook
Budget the published gas limit times sixty-four over sixty-three, on top of a plain transfer. Expect transfers to be able to revert for reasons unrelated to balances.
Pause and blocklist
Screen with detectTransferRestriction before submitting, and render the message rather than hard-coding codes.
Non-transferable
Do not list. There is no configuration that makes this one work.
Upgradeable
Find out who holds UPGRADER_ROLE and whether it is a timelock, before relying on anything above.
Then ask who holds the admin role
It can grant itself every other role, so no separation of keys means anything until this one is answered. If you lend against the token, treat the seize authority as able to burn your collateral.
Mintable and seizable
Assume supply can grow and balances can vanish without a transfer you could have screened. Neither is visible in a simulation.
Stay current
Follow ExtensionConfigured if you need live configuration without polling. One event covers every module.

Know what the tier proves: that a token runs one specific runtime and cannot change it. What that runtime does with your money is a separate question, and the answer is whatever review stands behind the address you pinned.