EVM Token Decimals Done Right
Never ship balances off by 10^12 again: query decimals() at runtime, cache by chain and token, use exact math, and normalize to WAD in Solidity.
- What
- Never ship balances off by 10^12 again: query decimals() at runtime, cache by chain and token, use exact math, and normalize to WAD in Solidity.
- Cost
- Free
- Needs
- Use "EVM Token Decimals Done Right" with your Muse.
- Install
- Copy the installer prompt below into your Muse — your agent does the rest.
Curated by Skill Harbor: a defensive-coding guide for one of the easiest ways to silently ship wrong numbers in Web3 apps. Assuming every token uses 18 decimals, or that a stablecoin uses the same decimals on every chain, produces balances and USD values off by orders of magnitude without throwing an error. The skill lays down five rules: always query decimals() at runtime, cache by chain id plus token address (never by symbol), use Decimal, BigInt or exact integer math instead of floats, re-query decimals after bridging or wrapper changes, and normalize internal accounting consistently before any comparison or pricing. It includes working snippets for Python with web3.py, TypeScript with ethers, Solidity WAD normalization, defensive fallback handling for old tokens whose decimals() reverts, and a quick cast call to check a token on chain. By @affaan-m, listed here with credit to its creator. From the affaan-m/ECC repository (MIT). Honest caveats: the defensive default of 18 for reverting tokens is a guess, log it loudly when it fires; RPC calls cost latency, so the caching advice is load-bearing. Skill Harbor never reviews the code, review it yourself before use.
Version:
Install
Copy the install package below, then paste it into MuseThe install prompt below already includes the vetting steps: your agent follows the community checklist before installing anything with executable code. Want more?
Use "EVM Token Decimals Done Right" with your Muse. Prerequisites: none to install. Pure guidance; a project that reads ERC-20 balances helps (Python, TypeScript or Solidity). 1. Open the skill: https://github.com/affaan-m/ECC/blob/main/skills/evm-token-decimals/SKILL.md and copy the full SKILL.md text. 2. Paste it into a chat with Muse and add: "Audit this balance and pricing code for decimal assumptions: [paste code]." 3. Ask: "rewrite it to query decimals() at runtime with chain+token caching and exact math." Tip: paste the skill alongside a real balance that looks wrong and ask "is this a decimal mismatch?" Safety: a skill is plain-text instructions; it runs nothing by itself. Never paste private keys or seed phrases into a chat. Review generated commands before running them.
Saved to your recent installs. Find it anytime on /connect.
Questions
How do I install a build?
Every product page includes a copy-paste install prompt. Paste it into your Muse and it sets the build up for you — no manual configuration.
Where does my money go?
Straight to the seller. Skill Harbor never processes payments: checkout happens on the seller’s own page, usually Stripe.
What does the ✓ next to a creator’s name mean?
It means we confirmed the identity of the person behind the listing. It says nothing about the code itself — always check a build before installing it.