{
  "source": "shared skill data",
  "skills": [
    {
      "id": "fhevm-router",
      "name": "fhevm-router",
      "topic": "fhevm",
      "category": "router",
      "description": "General-purpose skill that triages a Zama FHEVM task, points to the right official docs, and keeps contract and frontend responsibilities separated.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-router/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-router/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-router/SKILL.md",
      "covers": [
        "Classifies the task as contract, frontend, wallet, or review oriented",
        "Points to the narrowest official Zama docs page to keep open while working",
        "Calls out trust boundaries, ACL concerns, and decryption boundaries early",
        "Keeps the repo honest about current scope instead of routing to missing modules"
      ],
      "docs": [
        {
          "label": "Solidity guides",
          "href": "https://docs.zama.org/protocol/solidity-guides"
        },
        {
          "label": "User decryption",
          "href": "https://docs.zama.org/protocol/relayer-sdk-guides/fhevm-relayer/decryption/user-decryption"
        },
        {
          "label": "Public decryption",
          "href": "https://docs.zama.org/protocol/relayer-sdk-guides/fhevm-relayer/decryption/public-decryption"
        },
        {
          "label": "Web app guide",
          "href": "https://docs.zama.org/protocol/relayer-sdk-guides/development-guide/webapp"
        },
        {
          "label": "ERC7984 integration",
          "href": "https://docs.zama.org/protocol/examples/openzeppelin-confidential-contracts/integration-guide"
        }
      ]
    },
    {
      "id": "oz-erc7984-confidential-tokens",
      "name": "oz-erc7984-confidential-tokens",
      "topic": "oz-erc7984",
      "category": "core-mechanics",
      "description": "Designing, implementing, or reviewing ERC7984 confidential tokens, especially wrappers, operators, transfer variants, and unwrap correctness.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/oz-erc7984-confidential-tokens/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/oz-erc7984-confidential-tokens/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/oz-erc7984-confidential-tokens/SKILL.md",
      "covers": [
        "Frames ERC7984 around token, caller, decryption, and proof-verification boundaries",
        "Calls out operator semantics instead of drifting back to ERC20 allowance mental models",
        "Keeps unwrap flows honest as async decrypt-and-verify, not single-step plaintext settlement",
        "Maps custom designs back to the smallest OpenZeppelin confidential token module set"
      ],
      "docs": [
        {
          "label": "ERC7984 integration",
          "href": "https://docs.zama.org/protocol/examples/openzeppelin-confidential-contracts/integration-guide"
        },
        {
          "label": "Examples",
          "href": "https://docs.zama.org/protocol/examples"
        },
        {
          "label": "Solidity guides",
          "href": "https://docs.zama.org/protocol/solidity-guides"
        }
      ]
    },
    {
      "id": "fhevm-privacy-constraints",
      "name": "fhevm-privacy-constraints",
      "topic": "fhevm",
      "category": "core-mechanics",
      "description": "Product and mechanism design when confidential balances, ACL boundaries, and async decryption change what can actually be measured or enforced.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-privacy-constraints/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-privacy-constraints/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-privacy-constraints/SKILL.md",
      "covers": [
        "Separates what is public, hidden, user-readable, or only available after async decrypt",
        "Explains why balance-based rewards and threshold checks break under confidential transfers",
        "Forces ACL access plans to be explicit before proposing on-chain reads or enforcement",
        "Reframes blocked mechanisms toward wrap activity, lockups, utility, or user-initiated proofs"
      ],
      "docs": [
        {
          "label": "Examples",
          "href": "https://docs.zama.org/protocol/examples"
        },
        {
          "label": "Solidity guides",
          "href": "https://docs.zama.org/protocol/solidity-guides"
        },
        {
          "label": "ERC7984 integration",
          "href": "https://docs.zama.org/protocol/examples/openzeppelin-confidential-contracts/integration-guide"
        }
      ]
    },
    {
      "id": "fhevm-acl-lifecycle",
      "name": "fhevm-acl-lifecycle",
      "topic": "fhevm",
      "category": "core-mechanics",
      "description": "Managing encrypted value permissions: FHE.allow, FHE.allowThis, FHE.allowTransient, handle re-creation, and the critical rule that new handles carry no permissions.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-acl-lifecycle/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-acl-lifecycle/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-acl-lifecycle/SKILL.md",
      "covers": [
        "Explains why FHE operations return NEW handles that need fresh ACL grants",
        "Distinguishes allow, allowThis, and allowTransient for different trust scenarios",
        "Traces permission chains across multi-step encrypted computations",
        "Catches the #1 FHEVM bug: assuming permissions transfer to derived values"
      ],
      "docs": [
        {
          "label": "ACL semantics",
          "href": "https://docs.zama.org/protocol/solidity-guides/smart-contract/acl"
        },
        {
          "label": "Solidity guides",
          "href": "https://docs.zama.org/protocol/solidity-guides"
        }
      ]
    },
    {
      "id": "fhevm-control-flow",
      "name": "fhevm-control-flow",
      "topic": "fhevm",
      "category": "core-mechanics",
      "description": "Replacing if/else and require patterns with FHE equivalents: FHE.select, silent zeroing, and designing UX around non-reverting failures.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-control-flow/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-control-flow/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-control-flow/SKILL.md",
      "covers": [
        "Explains why require(ebool) does not exist and what replaces it",
        "Shows FHE.select as the only way to branch on encrypted conditions",
        "Covers silent fallback to zero and its impact on user experience",
        "Guides product design for non-reverting failure modes"
      ],
      "docs": [
        {
          "label": "Solidity guides",
          "href": "https://docs.zama.org/protocol/solidity-guides"
        },
        {
          "label": "Operations",
          "href": "https://docs.zama.org/protocol/solidity-guides/smart-contract/operations"
        }
      ]
    },
    {
      "id": "fhevm-encrypted-inputs",
      "name": "fhevm-encrypted-inputs",
      "topic": "fhevm",
      "category": "core-mechanics",
      "description": "Accepting user-encrypted values in contracts: FHE.fromExternal, input proofs, caller binding, and replay prevention.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-encrypted-inputs/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-encrypted-inputs/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-encrypted-inputs/SKILL.md",
      "covers": [
        "Explains the FHE.fromExternal(ciphertext, inputProof) ingestion pattern",
        "Shows how input proofs bind ciphertext to msg.sender and contract address",
        "Covers client-side encryption with the Zama SDK",
        "Prevents replay and cross-contract ciphertext injection attacks"
      ],
      "docs": [
        {
          "label": "Input handling",
          "href": "https://docs.zama.org/protocol/solidity-guides/smart-contract/inputs"
        },
        {
          "label": "Solidity guides",
          "href": "https://docs.zama.org/protocol/solidity-guides"
        }
      ]
    },
    {
      "id": "fhevm-user-decryption",
      "name": "fhevm-user-decryption",
      "topic": "fhevm",
      "category": "decryption",
      "description": "Client-side decryption: off-chain reencryption, EIP-712 authorization, React hooks, and ACL pre-grant requirements.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-user-decryption/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-user-decryption/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-user-decryption/SKILL.md",
      "covers": [
        "Explains the off-chain reencryption flow: sign, decrypt, display",
        "Shows ACL pre-grant as a prerequisite for user decryption",
        "Covers EIP-712 typed signatures for reencryption authorization",
        "Guides React and Next.js integration with the relayer SDK"
      ],
      "docs": [
        {
          "label": "User decryption",
          "href": "https://docs.zama.org/protocol/relayer-sdk-guides/fhevm-relayer/decryption/user-decryption"
        },
        {
          "label": "Relayer guides",
          "href": "https://docs.zama.org/protocol/relayer-sdk-guides"
        }
      ]
    },
    {
      "id": "fhevm-public-decryption",
      "name": "fhevm-public-decryption",
      "topic": "fhevm",
      "category": "decryption",
      "description": "Two-step decrypt-verify-finalize flows: public decryption, on-chain proof verification, and state-changing plaintext settlement.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-public-decryption/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-public-decryption/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-public-decryption/SKILL.md",
      "covers": [
        "Explains the two-step pattern: compute encrypted result, then finalize with proof",
        "Shows FHE.makePubliclyDecryptable and relayer publicDecrypt flow",
        "Covers on-chain proof verification with FHE.checkSignatures",
        "Prevents the single-step unwrap bug where user-claimed plaintext bypasses FHE checks"
      ],
      "docs": [
        {
          "label": "Public decryption",
          "href": "https://docs.zama.org/protocol/relayer-sdk-guides/fhevm-relayer/decryption/public-decryption"
        },
        {
          "label": "Relayer guides",
          "href": "https://docs.zama.org/protocol/relayer-sdk-guides"
        }
      ]
    },
    {
      "id": "fhevm-security-audit",
      "name": "fhevm-security-audit",
      "topic": "fhevm",
      "category": "security",
      "description": "Auditing and reviewing confidential contracts: ACL flow verification, silent fallback tracing, handle lifecycle, and a catalog of common footguns.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-security-audit/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-security-audit/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-security-audit/SKILL.md",
      "covers": [
        "Provides a systematic audit checklist for FHEVM contracts",
        "Traces ACL permission flows across multi-step operations",
        "Catalogs known footguns: missing ACL, silent zero, wrong unwrap, handle reuse",
        "Covers arithmetic constraint verification and overflow behavior"
      ],
      "docs": [
        {
          "label": "Solidity guides",
          "href": "https://docs.zama.org/protocol/solidity-guides"
        },
        {
          "label": "Examples",
          "href": "https://docs.zama.org/protocol/examples"
        }
      ]
    },
    {
      "id": "oz-erc7984-compliance-patterns",
      "name": "oz-erc7984-compliance-patterns",
      "topic": "oz-erc7984",
      "category": "security",
      "description": "Implementing regulatory compliance on confidential tokens: observer access, freezing, blocklists, RWA controls, and institutional adoption patterns.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/oz-erc7984-compliance-patterns/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/oz-erc7984-compliance-patterns/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/oz-erc7984-compliance-patterns/SKILL.md",
      "covers": [
        "Maps OpenZeppelin compliance modules: ObserverAccess, Freezable, Restricted, Rwa",
        "Explains selective transparency for auditors without breaking user privacy",
        "Covers force-transfer, pause, and encrypted freeze amount mechanics",
        "Guides institutional adoption: how to satisfy regulators while preserving confidentiality"
      ],
      "docs": [
        {
          "label": "ERC7984 integration",
          "href": "https://docs.zama.org/protocol/examples/openzeppelin-confidential-contracts/integration-guide"
        },
        {
          "label": "Examples",
          "href": "https://docs.zama.org/protocol/examples"
        }
      ]
    },
    {
      "id": "fhevm-arithmetic-ops",
      "name": "fhevm-arithmetic-ops",
      "topic": "fhevm",
      "category": "operations",
      "description": "FHE arithmetic: add/sub/mul, ciphertext-scalar vs ciphertext-ciphertext costs, division constraints, euint64 limits, and operation chaining.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-arithmetic-ops/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-arithmetic-ops/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-arithmetic-ops/SKILL.md",
      "covers": [
        "Lists supported vs unsupported FHE operations with type constraints",
        "Explains why ciphertext-scalar is far cheaper than ciphertext-ciphertext",
        "Shows division requires a plaintext divisor (no encrypted denominators)",
        "Covers euint64 overflow behavior and safe arithmetic patterns"
      ],
      "docs": [
        {
          "label": "Operations",
          "href": "https://docs.zama.org/protocol/solidity-guides/smart-contract/operations"
        },
        {
          "label": "Solidity guides",
          "href": "https://docs.zama.org/protocol/solidity-guides"
        }
      ]
    },
    {
      "id": "fhevm-testing",
      "name": "fhevm-testing",
      "topic": "fhevm",
      "category": "operations",
      "description": "Testing FHE contracts: Hardhat plugin, mock utils, mocked vs real protocol, debug decrypt, and end-to-end validation.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-testing/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-testing/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-testing/SKILL.md",
      "covers": [
        "Shows @fhevm/hardhat-plugin and @fhevm/mock-utils setup for local testing",
        "Explains mocked mode vs real protocol: what each catches and misses",
        "Covers debug decrypt for inspecting encrypted values during development",
        "Guides end-to-end validation on testnet before mainnet deployment"
      ],
      "docs": [
        {
          "label": "Testing",
          "href": "https://docs.zama.org/protocol/solidity-guides/getting-started/write-contract/testing"
        },
        {
          "label": "Examples",
          "href": "https://docs.zama.org/protocol/examples"
        }
      ]
    },
    {
      "id": "fhevm-token-registry",
      "name": "fhevm-token-registry",
      "topic": "fhevm",
      "category": "operations",
      "description": "Looking up official Zama confidential token deployments, wrappers registry addresses, decimals, and safe indexer start blocks on Sepolia or mainnet.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-token-registry/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-token-registry/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-token-registry/SKILL.md",
      "covers": [
        "Looks up official plain-token and confidential-token addresses by network",
        "Keeps `c*` token decimals and start blocks aligned with the right deployment",
        "Uses the wrappers registry as the canonical validation layer for official confidential tokens",
        "Prevents wrong-network or wrong-token wiring in apps, indexers, scripts, and test fixtures"
      ],
      "docs": [
        {
          "label": "Wrapper registry",
          "href": "https://docs.zama.org/protocol/protocol-apps/confidential-tokens/wrapper-registry"
        },
        {
          "label": "ERC7984 integration",
          "href": "https://docs.zama.org/protocol/examples/openzeppelin-confidential-contracts/integration-guide"
        }
      ]
    },
    {
      "id": "fhevm-frontend-integration",
      "name": "fhevm-frontend-integration",
      "topic": "fhevm",
      "category": "advanced",
      "description": "Integrating the Zama SDK into web apps: React, Next.js, relayer setup, SSR boundaries, and browser-side encryption.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-frontend-integration/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-frontend-integration/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-frontend-integration/SKILL.md",
      "covers": [
        "Shows @zama-fhe/react-sdk and @zama-fhe/sdk setup in React and Next.js",
        "Explains SSR boundaries: SDK must run client-side only",
        "Covers relayer SDK integration for reencryption and decryption",
        "Guides WalletConnect vs Privy auth patterns for different user bases"
      ],
      "docs": [
        {
          "label": "Web app guide",
          "href": "https://docs.zama.org/protocol/relayer-sdk-guides/development-guide/webapp"
        },
        {
          "label": "Relayer guides",
          "href": "https://docs.zama.org/protocol/relayer-sdk-guides"
        }
      ]
    },
    {
      "id": "fhevm-cross-contract",
      "name": "fhevm-cross-contract",
      "topic": "fhevm",
      "category": "advanced",
      "description": "Passing encrypted handles between contracts: multi-contract ACL flows, DeFi composability, and permission chain patterns.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/fhevm-cross-contract/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/fhevm-cross-contract/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/fhevm-cross-contract/SKILL.md",
      "covers": [
        "Explains how to pass encrypted handles across contract boundaries",
        "Shows multi-contract ACL grant chains: allowTransient for immediate forwarding",
        "Covers factory and proxy patterns that preserve encrypted state",
        "Guides composable DeFi flows where encrypted values traverse multiple protocols"
      ],
      "docs": [
        {
          "label": "ACL semantics",
          "href": "https://docs.zama.org/protocol/solidity-guides/smart-contract/acl"
        },
        {
          "label": "Solidity guides",
          "href": "https://docs.zama.org/protocol/solidity-guides"
        }
      ]
    },
    {
      "id": "oz-erc7984-confidential-governance",
      "name": "oz-erc7984-confidential-governance",
      "topic": "oz-erc7984",
      "category": "advanced",
      "description": "Confidential governance: ERC7984Votes, encrypted voting power, public delegation, private ballot casting, and tally patterns.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/oz-erc7984-confidential-governance/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/oz-erc7984-confidential-governance/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/oz-erc7984-confidential-governance/SKILL.md",
      "covers": [
        "Explains ERC7984Votes: delegation is public but voting power stays encrypted",
        "Shows private ballot casting without revealing token holdings",
        "Covers tally and reveal patterns for confidential vote counting",
        "Guides integration with existing DAO governance frameworks"
      ],
      "docs": [
        {
          "label": "ERC7984 integration",
          "href": "https://docs.zama.org/protocol/examples/openzeppelin-confidential-contracts/integration-guide"
        },
        {
          "label": "Examples",
          "href": "https://docs.zama.org/protocol/examples"
        }
      ]
    },
    {
      "id": "oz-erc7984-custodian-omnibus",
      "name": "oz-erc7984-custodian-omnibus",
      "topic": "oz-erc7984",
      "category": "advanced",
      "description": "Omnibus and custodian patterns: ERC7984Omnibus, sub-account management, exchange custody, and reconciliation under encryption.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/oz-erc7984-custodian-omnibus/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/oz-erc7984-custodian-omnibus/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/oz-erc7984-custodian-omnibus/SKILL.md",
      "covers": [
        "Explains ERC7984Omnibus for managing sub-accounts under one on-chain address",
        "Shows exchange deposit and withdrawal flows with encrypted amounts",
        "Covers per-user accounting within omnibus wallets",
        "Guides reconciliation and audit patterns under encrypted custodian state"
      ],
      "docs": [
        {
          "label": "ERC7984 integration",
          "href": "https://docs.zama.org/protocol/examples/openzeppelin-confidential-contracts/integration-guide"
        },
        {
          "label": "Examples",
          "href": "https://docs.zama.org/protocol/examples"
        }
      ]
    },
    {
      "id": "oz-utils-safemath",
      "name": "oz-utils-safemath",
      "topic": "oz-utils",
      "category": "operations",
      "description": "Overflow-safe encrypted arithmetic with the OpenZeppelin FHESafeMath library: tryIncrease, tryDecrease, tryAdd, trySub, uninitialized-handle semantics, and when to prefer it over raw FHE.add/sub.",
      "source": "z-korp/fhevm-cookbook",
      "path": "skills/oz-utils-safemath/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/z-korp/fhevm-cookbook/main/skills/oz-utils-safemath/SKILL.md",
      "githubUrl": "https://github.com/z-korp/fhevm-cookbook/blob/main/skills/oz-utils-safemath/SKILL.md",
      "covers": [
        "Wraps raw FHE.add/sub with encrypted success flags so overflow does not corrupt balances",
        "Distinguishes tryIncrease/tryDecrease (fall back to old value) from tryAdd/trySub (fall back to zero)",
        "Explains uninitialized-handle semantics so mappings with unset slots stay correct",
        "Calls out the ACL plumbing the library does NOT do for you"
      ],
      "docs": [
        {
          "label": "Operations",
          "href": "https://docs.zama.org/protocol/solidity-guides/smart-contract/operations"
        },
        {
          "label": "Solidity guides",
          "href": "https://docs.zama.org/protocol/solidity-guides"
        }
      ]
    }
  ]
}