By BootNodeDev
BootNode's FHEVM skill bundle for Claude Code — confidential smart contracts on Zama's FHEVM. Ten routed skills covering protocol concepts, contract authoring, ERC-7984 confidential tokens, decryption flows, testing, static analysis, antipatterns, frontends (Next.js + Vite), and project scaffolding.
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/[email protected] 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/[email protected]` (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, FHESafeMath, ConfidentialFungibleToken (legacy), ERC20Wrapper, ERC7984Restricted, ERC7984Rwa, ERC7984Freezable, ERC7984Omnibus, ERC7984ObserverAccess, ERC7984Votes, ERC7984Hooked, canTransact, IERC7984Rwa, forceConfidentialTransferFrom, confidentialFrozen, VestingWalletConfidential, BatcherConfidential, VotesConfidential, HandleAccessManager, confidential AMM, confidential DEX, euint64 overflow, decimals 6, or writing a confidential token / wrapper / RWA / governance token / AMM contract.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A Claude Code skill bundle for building confidential smart contracts on Zama's FHEVM — fully homomorphic-encryption EVM. Authored by BootNode for Zama Bounty Track Mainnet S2.
The bundle wraps the FHEVM v0.11.x stack into 12 routed skills covering protocol concepts, contract authoring, ERC-7984 confidential tokens, decryption flows, testing, static analysis, and React/Next.js + Vite frontends. A canonical Hardhat workspace ships alongside in project/, and /create-template scaffolds either contracts, frontend, or both into a fresh directory in seconds.
| Path | What it is |
|---|---|
skills/fhevm-overview/ | Protocol mental model — coprocessor, KMS, gateway, relayer; ZKPoK input-proof flow; v0.9+ async decryption |
skills/fhevm-setup/ | Hardhat workspace bootstrap; hardhat vars workflow; pinned versions |
skills/fhevm-contracts/ | @fhevm/[email protected] API: encrypted types, FHE.* ops, ACL lifecycle, input proofs, control-flow patterns |
skills/fhevm-erc7984/ | OpenZeppelin confidential tokens: IERC7984, FHESafeMath, the v0.4 extension family, 10 DeFi blueprints |
skills/fhevm-decryption/ | User decryption + the v0.9 three-step public-decrypt pattern via @zama-fhe/[email protected] |
skills/fhevm-testing/ | Mocha + Hardhat patterns; hre.fhevm.isMock gating; mock KMS proof construction; three-gate ship checklist |
skills/fhevm-frontend/ | React (Vite + Next.js App Router) integration; ZamaProvider; encrypt/decrypt hooks; ERC-7984 wrap/unwrap UI |
skills/fhevm-antipatterns/ | v0.11-era rename catalogue, the 12 high-frequency footguns, debug checklist |
skills/fhevm-static-analysis/ | Slither / Aderyn / Semgrep / Halmos integration on FHEVM contracts (incl. ZamaConfig source-map workaround) |
skills/create-template/ | /create-template wizard — scaffold contracts-only / frontend-only / both into a new repo |
project/ | Canonical Hardhat workspace — three flagship contracts (counter, ERC-7984 token, voting), Sepolia + mock tests, deploy scripts |
templates/frontend-next/, templates/frontend-vite/ | React frontend skeletons consumed by /create-template |
This repo is packaged as a Claude Code plugin named bn-fhevm. Once installed, the ten skills surface as /bn-fhevm:fhevm-overview, /bn-fhevm:fhevm-contracts, etc. — namespaced so they don't collide with skills from other plugins.
From any Claude Code session:
/plugin marketplace add github:BootNodeDev/zama-s2-bounty-skills
/plugin install bn-fhevm
Copy the plugin into a target directory in one command:
mkdir -p /path/to/your/project
curl -fsSL https://raw.githubusercontent.com/BootNodeDev/zama-s2-bounty-skills/main/scripts/install.sh | bash -s /path/to/your/project
The target's .claude-plugin/plugin.json + skills/ get populated. Per-file overwrite prompts; non-interactive runs (CI, piped) default to "no".
git clone https://github.com/BootNodeDev/zama-s2-bounty-skills.git
cd zama-s2-bounty-skills
./scripts/copy-plugin.sh /path/to/your/project
npm --prefix project install
npm --prefix project test # mock-mode tests
npm --prefix project run test:sepolia # real Sepolia (requires hardhat vars)
From inside Claude Code, with this plugin installed:
/bn-fhevm:create-template
/create-template/create-template is an interactive wizard. Choose:
contracts — copies project/ into your target directoryfrontend (Next.js) or frontend (Vite) — copies the matching templateboth — contracts + frontend in one shotnpx claudepluginhub bootnodedev/zama-s2-bounty-skillsDeFi skills for AI agents — supply, borrow, stake, and manage positions across protocols using the Agentic Wallet
Context-efficient development methodology — each stage writes artifacts to disk so the next stage starts clean with exactly the right context
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Comprehensive .NET development skills for modern C#, ASP.NET, MAUI, Blazor, Aspire, EF Core, Native AOT, testing, security, performance optimization, CI/CD, and cloud-native applications
Harness-native ECC plugin for engineering teams - 67 agents, 279 skills, 94 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses
Lazy senior dev mode. Forces the simplest, shortest solution that actually works: YAGNI, stdlib first, no unrequested abstractions.
Develop, test, build, and deploy Godot 4.x games with Claude Code. Includes GdUnit4 testing, web/desktop exports, CI/CD pipelines, and deployment to Vercel/GitHub Pages/itch.io.
Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.