Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
affaan-m avatar

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)
At a glance

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
From the docs

What nodejs-keccak256 says it does

import { keccak256, toUtf8Bytes } from 'ethers';
SKILL.md
console.log(nistSha3 === keccak); // false
SKILL.md
import { keccak256, toUtf8Bytes, solidityPackedKeccak256, id } from 'ethers';
SKILL.md
npx skills add https://github.com/affaan-m/everything-claude-code --skill nodejs-keccak256

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs4.1k
repo stars238k
Security audit3 / 3 scanners passed
Last updatedAugust 5, 2026
Repositoryaffaan-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

SKILL.mdMarkdownGitHub ↗

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')を絶対に使用しない。ethersviemweb3、または別の明示的な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.

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.

Web3 & Blockchainbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.