Agent skill

Evm Token Decimals

by affaan-m in affaan-m/ECC

防止跨EVM链的静默小数不匹配错误。涵盖运行时小数查找、链感知缓存、桥接代币精度漂移以及面向机器人、仪表盘和DeFi工具的安全归一化。

MITAuto-check passedBackend & APIs

Install Evm Token Decimals

skills CLI
$ npx skills add affaan-m/ECC --skill evm-token-decimals -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install affaan-m/ECC evm-token-decimals --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .claude/skills && cp -r skills-src/docs/zh-CN/skills/evm-token-decimals .claude/skills/evm-token-decimals && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
evm-token-decimals
GitHub stars
276k
Token cost
~762 tokens
SKILL.md length
54 words
Files
1
Skills in repo
683
Repo updated
First seen
Licence
MIT

At a glance

防止跨EVM链的静默小数不匹配错误。涵盖运行时小数查找、链感知缓存、桥接代币精度漂移以及面向机器人、仪表盘和DeFi工具的安全归一化。

  • Tasks that involve Smart contracts
  • SKILL.md covers 适用场景, 工作原理, 示例 and 规则
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Evm Token Decimals is an agent skill from affaan-m/ECC. 防止跨EVM链的静默小数不匹配错误。涵盖运行时小数查找、链感知缓存、桥接代币精度漂移以及面向机器人、仪表盘和DeFi工具的安全归一化。

Its SKILL.md is about 760 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Smart contracts. The repository describes itself as: The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond. The licence is MIT.

When your agent uses it

  • Tasks that involve Smart contracts

Example prompts

  • “/evm-token-decimals”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit 4eb71d9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python, solidity, typescript and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Evm Token Decimals loads about 762 tokens when it runs. Until then it costs about 22 tokens; SKILL.md has 54 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~22
When it runs · the whole SKILL.md, loaded when a task matches
~762

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from affaan-m/ECC at commit 4eb71d9, republished under its MIT licence (© affaan-m). 54 words, ~762 tokens.

Download SKILL.mdSave it as .claude/skills/evm-token-decimals/SKILL.md (or your agent's skills folder).
name
evm-token-decimals
description
防止跨EVM链的静默小数不匹配错误。涵盖运行时小数查找、链感知缓存、桥接代币精度漂移以及面向机器人、仪表盘和DeFi工具的安全归一化。
origin
ECC direct-port adaptation
version
1.0.0

EVM 代币精度

静默的精度不匹配是导致余额或美元价值出现数量级偏差且不抛出错误的最常见原因之一。

适用场景

  • 在 Python、TypeScript 或 Solidity 中读取 ERC-20 余额
  • 根据链上余额计算法币价值
  • 跨多条 EVM 链比较代币数量
  • 处理跨链桥接资产
  • 构建投资组合追踪器、机器人或聚合器

工作原理

切勿假设稳定币在所有链上使用相同的精度。在运行时查询 decimals(),按 (chain_id, token_address) 进行缓存,并使用精度安全的数学运算进行价值计算。

示例

运行时查询精度
python
from decimal import Decimal
from web3 import Web3

ERC20_ABI = [
    {"name": "decimals", "type": "function", "inputs": [],
     "outputs": [{"type": "uint8"}], "stateMutability": "view"},
    {"name": "balanceOf", "type": "function",
     "inputs": [{"name": "account", "type": "address"}],
     "outputs": [{"type": "uint256"}], "stateMutability": "view"},
]

def get_token_balance(w3: Web3, token_address: str, wallet: str) -> Decimal:
    contract = w3.eth.contract(
        address=Web3.to_checksum_address(token_address),
        abi=ERC20_ABI,
    )
    decimals = contract.functions.decimals().call()
    raw = contract.functions.balanceOf(Web3.to_checksum_address(wallet)).call()
    return Decimal(raw) / Decimal(10 ** decimals)

不要硬编码 1_000_000,因为同名代币在其他链上通常有 6 位小数。

按链和代币缓存
python
from functools import lru_cache

@lru_cache(maxsize=512)
def get_decimals(chain_id: int, token_address: str) -> int:
    w3 = get_web3_for_chain(chain_id)
    contract = w3.eth.contract(
        address=Web3.to_checksum_address(token_address),
        abi=ERC20_ABI,
    )
    return contract.functions.decimals().call()
防御性处理异常代币
python
try:
    decimals = contract.functions.decimals().call()
except Exception:
    logging.warning(
        "decimals() reverted on %s (chain %s), defaulting to 18",
        token_address,
        chain_id,
    )
    decimals = 18

记录回退值并保持可见。旧版或非标准代币仍然存在。

在 Solidity 中归一化为 18 位 WAD 精度
solidity
interface IERC20Metadata {
    function decimals() external view returns (uint8);
}

function normalizeToWad(address token, uint256 amount) internal view returns (uint256) {
    uint8 d = IERC20Metadata(token).decimals();
    if (d == 18) return amount;
    if (d < 18) return amount * 10 ** (18 - d);
    return amount / 10 ** (d - 18);
}
使用 ethers 的 TypeScript 示例
typescript
import { Contract, formatUnits } from 'ethers';

const ERC20_ABI = [
  'function decimals() view returns (uint8)',
  'function balanceOf(address) view returns (uint256)',
];

async function getBalance(provider: any, tokenAddress: string, wallet: string): Promise<string> {
  const token = new Contract(tokenAddress, ERC20_ABI, provider);
  const [decimals, raw] = await Promise.all([
    token.decimals(),
    token.balanceOf(wallet),
  ]);
  return formatUnits(raw, decimals);
}
快速链上检查
bash
cast call <token_address> "decimals()(uint8)" --rpc-url <rpc>

规则

  • 始终在运行时查询 decimals()
  • 按链加代币地址进行缓存,而非按代币符号
  • 使用 Decimal、BigInt 或等效的精确数学运算,避免使用浮点数
  • 在跨链桥接或代币包装变更后重新查询精度
  • 在比较或定价前,始终将内部记账归一化为一致精度

© affaan-m, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in docs/zh-CN/skills/evm-token-decimals of affaan-m/ECC.

Open the folder on GitHubat commit 4eb71d9

Compare with similar skills

Evm Token Decimals next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Evm Token Decimals compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Evm Token Decimals this skillaffaan-m/ECC276k—~762Automated safety check: PassMIT
Verifyalsk1992/CloddsBot3k—~1.2kAutomated safety check: PassMIT
Okx Dex MarketLeoYeAI/openclaw-master-skills2.2k—~5.9kAutomated safety check: NotesMIT
UrizenBankrBot/skills1.2k—~1.7kAutomated safety check: PassNone
Solana Token Extensionssolanabr/ai-kit109—~3.5kAutomated safety check: PassMIT
Deposit QrSuperior-Trade/superior-skills215—~1.1kAutomated safety check: PassMIT

Similar skills

  • Verify

    alsk1992/CloddsBot

    Verify agent identity using ERC-8004 on-chain registry. An agent skill from alsk1992/CloddsBot.

    3k GitHub stars~1.2k tokensUpdated 8 days ago
    Backend & APIsAuto-check passed
  • Okx Dex Market

    LeoYeAI/openclaw-master-skills

    A skill your agent uses for on-chain market data: token prices/价格, K-line/OHLC charts, index prices, and wallet PnL/盈亏分析 (win rate, my DEX trade history, realized/unrealized PnL per token).

    2.2k GitHub stars~5.9k tokensUpdated 2 mo ago
    Backend & APIsAuto-check: notes
  • Urizen

    BankrBot/skills

    Urizen — an AI equity-research desk + the first autonomous fund on Robinhood Chain (4663), as an agent skill.

    1.2k GitHub stars~1.7k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Helps choose, combine and create Token-2022 mint and account extensions on Solana with the spl-token CLI, @solana/kit or Anchor, and integrate the resulting mints.

    109 GitHub stars~3.5k tokensUpdated today
    Backend & APIsAuto-check passed
  • Deposit Qr

    Superior-Trade/superior-skills

    A skill your agent uses when a user needs a QR code or wallet payment URI to fund a Superior-managed EVM wallet on a specific chain before using Lighter, Polymarket, Hyperliquid, or other Superior…

    215 GitHub stars~1.1k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Add Network

    OriginProtocol/origin-dollar

    Checklist for adding a new EVM network (mainnet or testnet) to the origin-dollar repo.

    153 GitHub stars~2.8k tokensUpdated yesterday
    Backend & APIsAuto-check: notes

More from affaan-m/ECC

All 682 skills in this repo
  • Skill Stocktake

    affaan-m/ECC

    Audits your installed Claude skills and commands for quality, with a quick mode for recently changed skills and a full mode that evaluates all of them through subagents.

    277k GitHub starsUsed in 5 repos~3.1k tokens
    Auto-check passed
  • Ingests, indexes, searches, edits and monitors video, audio and live streams through the VideoDB Python SDK, returning stream links, clips and timestamps.

    277k GitHub starsUsed in 3 repos~3.5k tokens
    Auto-check: notes
  • Docs Governance

    affaan-m/ECC

    Route broad documentation-governance requests to existing ECC skills and run an opt-in, read-only audit of mapped documentation roles, links, ADR indexes, and evidence references.

    277k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Rules Distillation

    affaan-m/ECC

    Scans installed skills for principles that recur across them and proposes rule-file changes: append, revise, add a section, create a file or leave as covered.

    277k GitHub starsUsed in 2 repos~2.3k tokens
    Auto-check passed
  • Builds DRAFT counterparty agreements from one markdown template and a small JSON spec per party, with clauses picked by the party's role.

    277k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Set an ECC-specific frontend design direction for production UI work.

    277k GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed

Questions about Evm Token Decimals

What does Evm Token Decimals do?

防止跨EVM链的静默小数不匹配错误。涵盖运行时小数查找、链感知缓存、桥接代币精度漂移以及面向机器人、仪表盘和DeFi工具的安全归一化。. Evm Token Decimals is an agent skill from affaan-m/ECC.

When should I use Evm Token Decimals?

Evm Token Decimals fits situations like: tasks that involve Smart contracts.

How do I install Evm Token Decimals in Claude Code?

Run `npx skills add affaan-m/ECC --skill evm-token-decimals -a claude-code`. Or copy the skill folder (docs/zh-CN/skills/evm-token-decimals in affaan-m/ECC) into .claude/skills/evm-token-decimals in your project. Claude Code loads it when a task matches its description.

How do I install Evm Token Decimals in Codex?

Run `npx skills add affaan-m/ECC --skill evm-token-decimals -a codex`. Or copy the skill folder (docs/zh-CN/skills/evm-token-decimals in affaan-m/ECC) into .agents/skills/evm-token-decimals in your project. Codex loads it when a task matches its description.

Can I use Evm Token Decimals in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add affaan-m/ECC --skill evm-token-decimals -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/evm-token-decimals, .gemini/skills/evm-token-decimals, .github/skills/evm-token-decimals and .opencode/skills/evm-token-decimals in your project.

What does Evm Token Decimals need to run?

SKILL.md names no scripts, command-line tools or credentials: Evm Token Decimals is instructions for the agent only. Our summary lists: Python 3.

Does Evm Token Decimals access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Evm Token Decimals safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Evm Token Decimals use?

Evm Token Decimals is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Evm Token Decimals use?

About 762 tokens (SKILL.md is roughly 3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Evm Token Decimals?

Skills that share tags, products or a category with Evm Token Decimals: Verify (alsk1992/CloddsBot, 3k stars), Okx Dex Market (LeoYeAI/openclaw-master-skills, 2.2k stars), Urizen (BankrBot/skills, 1.2k stars) and Solana Token Extensions (solanabr/ai-kit, 109 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Evm Token Decimals?

affaan-m (a GitHub user) maintains it in affaan-m/ECC, which has 276,111 GitHub stars. The repository holds 683 skills in this directory. The repository was last updated on October 10, 2026.

Source: affaan-m/ECC on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.