
Nodejs Keccak256
- 4.1k installs
- 238k repo stars
- Updated August 5, 2026
- affaan-m/everything-claude-code
nodejs-keccak256 is an agent skill for prevent silent ethereum hash bugs by using keccak-256 instead of node sha3-256 for selectors and addresses.
About
The nodejs-keccak256 skill JavaScriptとTypeScriptにおけるEthereumハッシュバグを防ぐ。NodeのSHA3-256はNIST SHA3であり、Ethereum Keccak-256ではなく、セレクター、署名、ストレージスロット、アドレス導出を静かに破壊する。. EthereumはKeccak-256を使用し、Nodeのcrypto.createHash('sha3-256')が公開するNIST標準化SHA3バリアントではない。 - Ethereum関数セレクターやイベントトピックの計算 - JS/TSでEIP-712、署名、Merkle、またはストレージスロットヘルパーの構築 - Nodeのcryptoを直接使用してEthereumデータをハッシュするコードのレビュー ```javascript import crypto from 'crypto'; import { keccak256, toUtf8Bytes } from 'ethers'; const data = 'hello'; const nistSha3 = crypto.createHash('sha3-256').update(data).digest('hex'); const keccak = keccak256(toUtf8Bytes(data)).slice(2); const data = 'hello'; const nistSha3 = crypto.createHash('sha3-256').update(data).digest('hex'); const keccak = keccak256(toUtf8Bytes(data)).slice(2); console.log(nistSha3 === keccak); // false typescript import { keccak256, toUtf8Bytes, solidityPackedKeccak256, id } from 'ethers'; const hash = keccak256(new Uint8Array([0x01, 0x02])); const hash2 = keccak256(toUtf8Bytes('hello')); const topic = id('Transfer(address,address,uint256)'); const packed = solidityPackedKeccak256( ['address', 'uint256'], ['0x742d35Cc6634C0532925a3b8D4C9B569890FaC1c', 100n], ); typescript import { keccak256,.
- Ethereum関数セレクターやイベントトピックの計算
- JS/TSでEIP-712、署名、Merkle、またはストレージスロットヘルパーの構築
- Nodeのcryptoを直接使用してEthereumデータをハッシュするコードのレビュー
- Prevent silent Ethereum hash bugs by using Keccak-256 instead of Node SHA3-256 for selectors and addresses.
- Documented workflow in SKILL.md with reference files and command examples.
Nodejs Keccak256 by the numbers
- 4,090 all-time installs (skills.sh)
- +218 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #8 of 479 Web3 & Blockchain skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
nodejs-keccak256 capabilities & compatibility
- Capabilities
- ethereum関数セレクターやイベントトピックの計算 · js/tsでeip 712、署名、merkle、またはストレージスロットヘルパーの構築 · nodeのcryptoを直接使用してethereumデータをハッシュするコードのレビュー · prevent silent ethereum hash bugs by using kecca · documented workflow in skill.md with reference f
- Use cases
- api development · security audit
What nodejs-keccak256 says it does
import { keccak256, toUtf8Bytes } from 'ethers';
console.log(nistSha3 === keccak); // false
import { keccak256, toUtf8Bytes, solidityPackedKeccak256, id } from 'ethers';
npx skills add https://github.com/affaan-m/everything-claude-code --skill nodejs-keccak256Add your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 4.1k |
|---|---|
| repo stars | ★ 238k |
| Security audit | 3 / 3 scanners passed |
| Last updated | August 5, 2026 |
| Repository | affaan-m/everything-claude-code ↗ |
How do I prevent silent ethereum hash bugs by using keccak-256 instead of node sha3-256 for selectors and addresses with documented agent guidance?
Prevent silent Ethereum hash bugs by using Keccak-256 instead of Node SHA3-256 for selectors and addresses.
Who is it for?
Developers who need web3 & blockchain help during build work.
Skip if: Skip when the task falls outside Web3 & Blockchain scope described in SKILL.md.
When should I use this skill?
Prevent silent Ethereum hash bugs by using Keccak-256 instead of Node SHA3-256 for selectors and addresses.
What you get
Completed web3 & blockchain workflow aligned with SKILL.md steps and validation.
- Correct Keccak-256 hash implementation
- Review notes on broken selector or topic code
By the numbers
- Ethereum関数セレクターやイベントトピックの計算
- JS/TSでEIP-712、署名、Merkle、またはストレージスロットヘルパーの構築
- Nodeのcryptoを直接使用してEthereumデータをハッシュするコードのレビュー
Files
Node.js Keccak-256
EthereumはKeccak-256を使用し、Nodeのcrypto.createHash('sha3-256')が公開するNIST標準化SHA3バリアントではない。
使用するタイミング
- Ethereum関数セレクターやイベントトピックの計算
- JS/TSでEIP-712、署名、Merkle、またはストレージスロットヘルパーの構築
- Nodeのcryptoを直接使用してEthereumデータをハッシュするコードのレビュー
仕組み
2つのアルゴリズムは同じ入力に対して異なる出力を生成し、Nodeは警告しない。
import crypto from 'crypto';
import { keccak256, toUtf8Bytes } from 'ethers';
const data = 'hello';
const nistSha3 = crypto.createHash('sha3-256').update(data).digest('hex');
const keccak = keccak256(toUtf8Bytes(data)).slice(2);
console.log(nistSha3 === keccak); // false例
ethers v6
import { keccak256, toUtf8Bytes, solidityPackedKeccak256, id } from 'ethers';
const hash = keccak256(new Uint8Array([0x01, 0x02]));
const hash2 = keccak256(toUtf8Bytes('hello'));
const topic = id('Transfer(address,address,uint256)');
const packed = solidityPackedKeccak256(
['address', 'uint256'],
['0x742d35Cc6634C0532925a3b8D4C9B569890FaC1c', 100n],
);viem
import { keccak256, toBytes } from 'viem';
const hash = keccak256(toBytes('hello'));web3.js
const hash = web3.utils.keccak256('hello');
const packed = web3.utils.soliditySha3(
{ type: 'address', value: '0x742d35Cc6634C0532925a3b8D4C9B569890FaC1c' },
{ type: 'uint256', value: '100' },
);一般的なパターン
import { id, keccak256, AbiCoder } from 'ethers';
const selector = id('transfer(address,uint256)').slice(0, 10);
const typeHash = keccak256(toUtf8Bytes('Transfer(address from,address to,uint256 value)'));
function getMappingSlot(key: string, mappingSlot: number): string {
return keccak256(
AbiCoder.defaultAbiCoder().encode(['address', 'uint256'], [key, mappingSlot]),
);
}公開鍵からアドレス
import { keccak256 } from 'ethers';
function pubkeyToAddress(pubkeyBytes: Uint8Array): string {
const hash = keccak256(pubkeyBytes.slice(1));
return '0x' + hash.slice(-40);
}コードベースの監査
grep -rn "createHash.*sha3" --include="*.ts" --include="*.js" --exclude-dir=node_modules .
grep -rn "keccak256" --include="*.ts" --include="*.js" . | grep -v node_modulesルール
Ethereumコンテキストでは、crypto.createHash('sha3-256')を絶対に使用しない。ethers、viem、web3、または別の明示的なKeccak実装のKeccak対応ヘルパーを使用すること。
Related skills
Forks & variants (1)
Nodejs Keccak256 has 1 known copy in the catalog totaling 1.4k installs. They canonicalize to this original listing.
- affaan-m - 1.4k installs
How it compares
nodejs-keccak256 is an agent skill for prevent silent ethereum hash bugs by using keccak-256 instead of node sha3-256 for selectors and addresses, not a generic alternative.
FAQ
Who is nodejs-keccak256 for?
Developers using Web3 & Blockchain workflows with agent-guided SKILL.md steps.
When should I use nodejs-keccak256?
Prevent silent Ethereum hash bugs by using Keccak-256 instead of Node SHA3-256 for selectors and addresses.
Is nodejs-keccak256 safe to install?
Review the Security Audits panel on this page before installing in production.