en un clic
zama-s2-bounty-skills
zama-s2-bounty-skills contient 10 skills collectées depuis BootNodeDev, avec une couverture métier par dépôt et des pages de détail sur le site.
Skills dans ce dépôt
Used when building React frontends (Vite or Next.js App Router) that integrate with FHEVM confidential smart contracts. Covers the @zama-fhe/* SDK stack, ZamaProvider wiring, encrypt and decrypt hooks, ERC-7984 wrap and unwrap flows, and Next.js SSR or bundler configuration.
Use when scaffolding a new FHEVM workspace -- contracts, Next.js frontend, or Vite frontend. Copies the canonical bundled template (project/ or templates/frontend-{next,vite}/) into a target directory and customizes package metadata, env-var defaults, and the Sepolia RPC URL via an interactive AskUserQuestion wizard.
Used when reviewing, debugging, auditing, or pre-commit-checking FHEVM Solidity or client code. Catalogues the v0.11-era breaking renames (TFHE→FHE, SepoliaZamaFHEVMConfig→ZamaEthereumConfig, ConfidentialFungibleToken→ERC7984, TFHESafeMath→FHESafeMath, tokenURI→contractURI, isUserAllowed→canTransact), the removed FHE.requestDecryption API, deprecated fhevmjs, and high-frequency footguns (missing FHE.allowThis after state writes, view functions returning encrypted types, .env-based Hardhat secrets). Triggers on FHEVM code review, anti-pattern, audit, migration from pre-v0.9/v0.11, pre-commit check, ACLNotAllowed, EmptyDecryptionProof, or DeclarationError.
Used when writing, refactoring, or reviewing FHEVM Solidity contracts against the @fhevm/solidity@0.11.x API. Covers encrypted types (ebool, euint8..256, eaddress), FHE operations (arithmetic, comparison, FHE.select), the ACL lifecycle (FHE.allow, allowThis, allowTransient, isSenderAllowed, makePubliclyDecryptable), and the input-proof flow (externalEuint* + FHE.fromExternal). Triggers on FHEVM contract patterns, encrypted types, FHE.* library calls, ACL permissions, input proofs, ciphertext handles, ZamaEthereumConfig, or writing a confidential counter / voting / auction / vault contract.
Used when implementing or debugging FHEVM decryption flows — user decryption (sdk.userDecrypt with the signer/keypair bound at instance creation) and public decryption (v0.9 three-step pattern: FHE.makePubliclyDecryptable on-chain → off-chain sdk.publicDecrypt → on-chain FHE.checkSignatures). Targets `@zama-fhe/sdk@3.0.0` (provider-agnostic; relayer-sdk is a transitive dep, not a direct install). Explicitly covers the removal of the deprecated FHE.requestDecryption oracle-callback API. Triggers on prompts mentioning userDecrypt, publicDecrypt, makePubliclyDecryptable, checkSignatures, EIP-712 decryption, reencrypt (legacy term), or the v0.9 migration of decryption.
Used when writing, refactoring, or reviewing FHEVM Solidity contracts that implement or extend ERC-7984 confidential tokens. Covers the IERC7984 interface (confidentialBalanceOf, confidentialTransfer, setOperator), FHESafeMath (tryIncrease, tryDecrease, tryAdd, trySub), the v0.4.0 extensions (Freezable, Restricted, Rwa, Omnibus, ObserverAccess, Votes, ERC7984ERC20Wrapper), the v0.4.0 finance/governance/utils/interfaces directories (VestingWalletConfidential, VotesConfidential, HandleAccessManager, IERC7984Rwa), the operator pattern that replaces approve/allowance, the euint64 supply ceiling and default-6-decimals trap, the v0.4 breaking change that switched unwrap request IDs from euint64 to bytes32, and the 2-step async-decrypt swap pattern for confidential AMMs (FHE.div plaintext-divisor constraint). Explicitly NOT for confidential NFTs — ERC-7984 is fungibles-only; ERC-721 + eaddress is the alternate route. Triggers on ERC7984, ERC-7984, IERC7984, confidentialBalanceOf, confidentialTransfer, setOperator, F
Used when an AI coding agent needs a mental model of the Zama Confidential Blockchain Protocol — FHEVM architecture, the four off-chain components (coprocessor, KMS threshold network, gateway, relayer), the on-chain contracts (ACL, FHEVMExecutor, KMSVerifier, InputVerifier), the ZKPoK-bound encrypted-input flow, and the v0.9+ async decryption pattern. Triggers on prompts mentioning FHEVM, confidential smart contracts, FHE on-chain, Zama protocol, coprocessor, KMS, relayer, gateway, input proofs, ciphertext handles, or how confidential transactions flow end-to-end.
Used when an AI coding agent needs to bootstrap a Hardhat workspace for FHEVM confidential contracts. Walks from zero to a working project pinned to @fhevm/solidity@0.11.1, @fhevm/hardhat-plugin@0.4.2, @fhevm/mock-utils@0.4.2, and OpenZeppelin confidential-contracts@0.4.x. Covers the hardhat vars secret workflow (no .env), Node runtime requirements, and the exact compile / test / deploy / test:sepolia command sequence. Triggers on FHEVM setup, project bootstrap, Hardhat environment initialization, installing @fhevm/* packages, hardhat vars, or deploying a first confidential contract.
Used when running Slither, Aderyn, or Semgrep on an FHEVM project, or when setting up static analysis in CI. Covers the canonical slither . invocation (never npx slither), the ZamaConfig source-map crash workaround, known FHEVM false-positive detectors, FHE-specific Semgrep rules, and when to prefer Aderyn or Halmos. Triggers on Slither crash on ZamaConfig, source code appears to be out of sync, slither-analyzer install, npx slither, aderyn ., semgrep FHE rules, Halmos on rate limiters, or adding static analysis to a Hardhat CI workflow for confidential contracts.
Used when writing or debugging Mocha / Hardhat tests for FHEVM contracts. Covers the fhevm.isMock gate pattern, encrypted input creation via fhevm.createEncryptedInput + FHE.fromExternal, test-time decryption via fhevm.userDecryptEuint and fhevm.publicDecrypt, EIP-712 PublicDecryptVerification proofs using the mock KMS private key, Sepolia timeout / retry conventions, and the three-gate deployment checklist (mock → Sepolia → pre-mainnet review). Triggers on @fhevm/hardhat-plugin, @fhevm/mock-utils, hre.fhevm, createEncryptedInput, userDecryptEuint, publicDecrypt, EmptyDecryptionProof in tests, or writing a first Hardhat test for an FHEVM contract.