Chainlink Hardhat plugin and Foundry toolkit
Chainlink is the oracle layer under a large share of on-chain finance, but a team adding a price feed, a VRF call, or an Automation upkeep to a contract had to wire Chainlink in by hand and test it against a real node. Protofire built two developer tools to reduce that friction: a Hardhat plugin and a Foundry toolkit that let developers call Chainlink Data Feeds, VRF, Automation, and Functions directly from the framework they already use, and spin up a local Chainlink node to test against before mainnet.
Protofire authored the original Hardhat plugin at protofire/hardhat-chainlink-plugin; the maintained tools now live in Chainlink's `smartcontractkit` GitHub organization: smartcontractkit/hardhat-chainlink and smartcontractkit/foundry-chainlink-toolkit.
โChainlink wanted its services as easy to adopt and test as any local library, inside the tools developers already use.โ
Why Chainlink integration was a manual step for every developer
Chainlink supplies the off-chain data and computation that on-chain contracts cannot produce themselves: price feeds, verifiable randomness, scheduled automation, and arbitrary API calls through Functions. Chainlink reports its network underpins over $1.2 trillion in annualized on-chain value across DeFi, gaming, and insurance (source: Chainlink).
That reach depends on developers integrating it, and integration was the rough edge: adding a service meant looking up the right interface, hardcoding feed and coordinator addresses per network, and writing bespoke glue code, all outside the Hardhat and Foundry workflows most Solidity teams live in.
Why testing against oracles was the harder half of the problem
Wiring the contract is only half the job. An oracle-dependent contract behaves differently depending on what the oracle returns, so a team cannot responsibly ship one without testing that behavior first. Before these tools there was no convenient way to exercise a Chainlink integration locally: developers either pointed at a live testnet, slow and flaky for iteration, or mocked the oracle, which does not test the real interaction.
That gap slowed iteration, made continuous integration harder, and left teams less confident a VRF callback or an Automation upkeep would fire as expected. Chainlink wanted its services as easy to adopt and test as any local library, inside the tools developers already use.
How Protofire built the Hardhat plugin and Foundry toolkit
Protofire built two standalone developer tools so a developer stays in one framework. The Hardhat plugin exposes Chainlink functionality through TypeScript tasks inside a Hardhat project; the Foundry toolkit provides atomic methods, driven by Forge, Make, and Solidity scripting, for the same services in a Foundry project.
Both cover the four core services: Data Feeds, VRF, Automation, and Functions. The part that closes the testing gap is a local sandbox: each tool can spin up a local Chainlink node, or a small cluster, so a team runs tests and simulations against a real node offline instead of a live testnet. A developer can create Chainlink jobs, deploy and call the related contracts, and do it from code or CLI in the framework they already run.
The work started in Protofire's own repositories and was subsequently adopted into the `smartcontractkit` organization, where the maintained tools now live. Each repository's contributor graph shows Protofire's contribution history.
Results
The verifiable artifacts are public. The Foundry toolkit is at smartcontractkit/foundry-chainlink-toolkit and the Hardhat tool at smartcontractkit/hardhat-chainlink; Protofire's original plugin is at protofire/hardhat-chainlink-plugin. The Hardhat plugin's README notes it is in a beta testing phase; check current status before relying on it in production.