Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
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.
npx claudepluginhub bootnodedev/zama-s2-bounty-skillsUse 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, 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.
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
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
Complete collection of battle-tested Claude Code configs from an Anthropic hackathon winner - agents, skills, hooks, and rules evolved over 10+ months of intensive daily use
Testing, security, and code quality experts - code review, penetration testing, QA automation
Harness-native ECC plugin for engineering teams - 64 agents, 262 skills, 84 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses
Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.
Context-efficient development methodology — each stage writes artifacts to disk so the next stage starts clean with exactly the right context
DeFi skills for AI agents — supply, borrow, stake, and manage positions across protocols using the Agentic Wallet
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/solidity@0.11.x 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/sdk@3.0.0 |
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 shot