chainlink

Integrate Chainlink price feeds, VRF randomness, Automation, and CCIP messaging into smart contracts.

1|1|Updated May 21, 2026
One-click install
npx skills add https://github.com/naruto11eth/cryptoskills --skill chainlink-naruto11eth
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: chainlink
Source: https://github.com/naruto11eth/cryptoskills/tree/main/skills/chainlink
Command: npx skills add https://github.com/naruto11eth/cryptoskills --skill chainlink-naruto11eth

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? AI agents frequently produce outdated or incorrect Chainlink integration code — using deprecated VRF v2 interfaces, assuming 8 decimals for all feeds, skipping staleness checks, or confusing CCIP with VRF — which leads to exploitable contracts and lost funds. ## Core Features & Use Cases - Price Feeds: Read AggregatorV3Interface feeds with staleness checks, decimal normalization, sanity bounds, and L2 sequencer uptime validation across Ethereum, Arbitrum, Base, Optimism, and Polygon. - VRF v2.5: Request verifiable randomness with subscription management, gas lane (keyHash) selection, and safe fulfillRandomWords callback patterns. - Automation & CCIP: Implement checkUpkeep/performUpkeep conditional execution, log-triggered upkeeps, and cross-chain message/token transfers with allowlisted receivers. - Use Case: Build a lending contract that reads ETH/USD with a 3600s staleness threshold, checks the Arbitrum sequencer uptime feed, and falls back safely when the oracle stops updating. ## Quick Start Use the chainlink skill to write a Solidity contract that reads the ETH/USD price feed on Arbitrum with staleness and sequencer checks.

Frequently Asked Questions about chainlink

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I read a Chainlink price feed in Solidity?

Call latestRoundData() on the AggregatorV3Interface feed contract, then validate that answer is positive, updatedAt is within the feed's heartbeat threshold, and answeredInRound is not less than roundId. Always call decimals() rather than assuming 8 decimals.

How to request random numbers with Chainlink VRF v2.5?

Extend VRFConsumerBaseV2Plus and call requestRandomWords with a RandomWordsRequest struct containing keyHash, subId, requestConfirmations, callbackGasLimit, and numWords. Fund a subscription with LINK or native token and register your contract as a consumer.

Chainlink vs Pyth oracle, which should I use?

Chainlink offers zero-cost reads, 1000+ EVM feeds, and the VRF/CCIP/Automation ecosystem. Pyth provides sub-second price freshness, confidence intervals, and non-EVM chain support, but consumers pay gas to push price updates on-chain.

Why is my Chainlink VRF request never fulfilled?

Unfulfilled VRF requests usually mean an underfunded subscription, an unregistered consumer contract, or a wrong keyHash for your chain. Check the subscription balance via getSubscription, verify consumer registration, and confirm the gas lane keyHash matches your network.

Do I need to check the sequencer uptime feed on Arbitrum?

Yes, on Arbitrum, Base, and Optimism you must check the sequencer uptime feed before trusting price data. When the sequencer restarts, oracle updates lag, so enforce a grace period after it comes back online before accepting prices.

Why is my CCIP message stuck in pending?

Stuck CCIP messages typically result from the receiver's _ccipReceive reverting, an insufficient gasLimit in extraArgs, or the sender not being allowlisted on the destination contract. Look up the message ID on ccip.chain.link and use manual execution to retry.