develop-secure-contrac…
Develop secure smart contracts using OpenZeppelin Contracts libraries. Use when users need to integrate OpenZeppelin library…
Migrate OpenZeppelin Defender Actions, Autotasks, Monitors and scheduled or Relayer-backed workflows to Chainlink CRE. Use when assessing CRE migration feasibility, adapting an existing Defender workflow, or validating its event delivery and onchain permissions. Does not cover
$ npx -y skills add OpenZeppelin/openzeppelin-skills --skill migrate-defender-to-cre --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/migrate-defender-to-creContext preview
The summary Claude sees to decide when to auto-load this skill.
Migrate OpenZeppelin Defender Actions, Autotasks, Monitors and scheduled or Relayer-backed workflows to Chainlink CRE. Use when assessing CRE migration feasibility, adapting an existing Defender workflow, or validating its event delivery and onchain permissions. Does not cover
name: migrate-defender-to-cre description: "Migrate OpenZeppelin Defender Actions, Autotasks, Monitors and scheduled or Relayer-backed workflows to Chainlink CRE. Use when assessing CRE migration feasibility, adapting an existing Defender workflow, or validating its event delivery and onchain permissions. Does not cover migration to the self-hosted OpenZeppelin Relayer when CRE is not requested." license: AGPL-3.0-only metadata: author: OpenZeppelin
Adapt the user's workflow, preserving its intended behavior. CRE is one migration path; do not redirect a user who chose another destination. This skill covers EVM and offchain workflows using TypeScript, not every Defender capability or CRE network.
Inspect the Action, Monitor configuration, contract permissions when relevant, manifests, lockfiles and existing CRE configuration. Ask only for missing information that changes the design:
Check installed CLI/SDK APIs, current [supported networks](https://docs.chain.link/cre/supported-networks) where applicable, and [service quotas](https://docs.chain.link/cre/service-quotas). Derive paths, package manager, scripts, config fields and target names from this project. Example layouts are not defaults.
| Defender behavior | CRE starting point | Preserve or explicitly resolve | |---|---|---| | Scheduled Action / Autotask | [Cron trigger](https://docs.chain.link/cre/guides/workflow/using-triggers/cron-trigger-ts) and handler | Cadence, timezone and condition for doing work | | Event Monitor and response | [EVM log trigger](https://docs.chain.link/cre/guides/workflow/using-triggers/evm-log-trigger-ts) and handler predicate | Emitting address, event signature, filter semantics and confirmation requirements | | Webhook-triggered Action | [HTTP trigger](https://docs.chain.link/cre/guides/workflow/using-triggers/http-trigger/configuration-ts) | Request authentication and authorized callers | | Notification or API action | HTTP capability | Payload, credentials, duplicate handling and errors | | Relayer-backed contract call | Signed report → Forwarder → Receiver | New caller identity and target authorization |
Deployed HTTP triggers require requests signed by an authorized EVM key. Unsigned webhook sources need signing support or an authorized intermediary; an unsigned local simulation does not establish deployed compatibility.
Function-call/status monitoring, high-frequency schedules, counters and cooldowns need explicit assessment. Explain unsupported behavior without treating it as fundamentally impossible. Do not implement a changed cadence or weaker condition while awaiting approval. An HTTP trigger is not a proven workaround for service limits. Preserve expression semantics, including math.js operators and numeric precision; persistent counters need durable state and concurrency handling.
The [OpenZeppelin migration examples](https://github.com/OpenZeppelin/defender-to-cre-examples/tree/v1.0.2) are optional worked examples. Use a versioned example when it matches the task; do not require its Governor, payload or folder structure.
Make a minimal diff. Import existing library components and inspect their installed APIs. Discover optional generator tools only when needed; do not assume a CRE Receiver generator exists. A notification-only workflow needs no Receiver, and monitoring an existing contract needs no replacement contract.
Local preparation does not authorize deployment, broadcasts, account-access requests, secret mutations or live notifications. Simulation can make real HTTP requests. Use an isolated destination and respect authorization already given. Keep credentials and private endpoints out of tracked files and output.
Report the behavior preserved, checks actually run, untested paths and unresolved decisions. Distinguish local tests, simulation, deployed execution and production readiness.
Agent skills for secure smart contract development with OpenZeppelin Contracts libraries and migration of Defender workflows.
Develop secure smart contracts using OpenZeppelin Contracts libraries. Use when users need to integrate OpenZeppelin library…
Review Sui Move code that integrates OpenZeppelin Contracts for Sui against the library's own patterns and conventions. Use this…
Set up a Cairo smart contract project with OpenZeppelin Contracts for Cairo on Starknet. Use when users need to: (1) create a new…
Set up a Solidity smart contract project with OpenZeppelin Contracts. Use when users need to: (1) create a new Hardhat or Foundry…
Set up a Stellar/Soroban smart contract project with OpenZeppelin Contracts for Stellar. Use when users need to: (1) install…
Set up a Stylus smart contract project with OpenZeppelin Contracts for Stylus on Arbitrum. Use when users need to: (1) install…