Source profileQuality 64/100

affaan-m/ECC/docs/ja-JP/skills/nodejs-keccak256/SKILL.md

nodejs-keccak256

Review nodejs-keccak256's use cases, installation, workflow, and original source instructions.

Source repository stars
234,327
Declared platforms
0
Static risk flags
0
Last source update
2026-07-27
Source checked
2026-07-28

Decision brief

What it does—and where it fits

EthereumはKeccak-256を使用し、Nodeのcrypto.createHash('sha3-256')が公開するNIST標準化SHA3バリアントではない。

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/affaan-m/ECC --skill "docs/ja-JP/skills/nodejs-keccak256"
    Safe inspection promptEditorial

    Inspect the Agent Skill "nodejs-keccak256" from https://github.com/affaan-m/ECC/blob/4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38/docs/ja-JP/skills/nodejs-keccak256/SKILL.md at commit 4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      使用するタイミング

      Ethereum関数セレクターやイベントトピックの計算

      Ethereum関数セレクターやイベントトピックの計算JS/TSでEIP-712、署名、Merkle、またはストレージスロットヘルパーの構築Nodeのcryptoを直接使用してEthereumデータをハッシュするコードのレビュー
    2. 02

      仕組み

      2つのアルゴリズムは同じ入力に対して異なる出力を生成し、Nodeは警告しない。

      2つのアルゴリズムは同じ入力に対して異なる出力を生成し、Nodeは警告しない。
    3. 03

      Review the “例” section in the pinned source before continuing.

      Review and apply the “例” source section.
    4. 04

      ethers v6

      Review the “ethers v6” section in the pinned source before continuing.

      Review and apply the “ethers v6” source section.

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score64/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars234,327SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    affaan-m/ECC
    Skill path
    docs/ja-JP/skills/nodejs-keccak256/SKILL.md
    Commit
    4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38
    License
    MIT
    Collected
    2026-07-28
    Default branch
    main
    View the original SKILL.md

    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対応ヘルパーを使用すること。

    Alternatives

    Compare before choosing