Skip to main content
Looking for Contributors! This Skill needs an implementation.Contributing a Skill involves:
  1. Writing a reference implementation with full functionality
  2. Adding comprehensive tests
  3. Writing documentation with usage examples
See the ethers-provider Skill for an example of a complete Skill implementation.Interested? Open an issue or PR at github.com/evmts/voltaire.
Skill — Copyable reference implementation. Use as-is or customize. See Skills Philosophy.
Integrate Chainlink price feeds, VRF randomness, and CCIP cross-chain messaging.

Planned Implementation

Price Feeds

import { Chainlink } from './Chainlink.js';

const chainlink = Chainlink({ provider });

// Get latest price
const ethUsd = await chainlink.getLatestPrice(ETH_USD_FEED);
console.log('ETH/USD:', ethUsd.answer / 10n ** 8n);

// Get historical round
const round = await chainlink.getRoundData(ETH_USD_FEED, roundId);

VRF (Verifiable Random Function)

// Request randomness
const requestId = await chainlink.requestRandomWords({
  keyHash: VRF_KEY_HASH,
  subId: subscriptionId,
  minimumRequestConfirmations: 3,
  callbackGasLimit: 100000,
  numWords: 1,
  signer,
});

// Randomness delivered to your contract's fulfillRandomWords()

CCIP (Cross-Chain)

// Send cross-chain message
await chainlink.sendCcipMessage({
  destinationChainSelector: ARBITRUM_SELECTOR,
  receiver: receiverContract,
  data: encodedMessage,
  tokenAmounts: [], // Optional token transfer
  feeToken: LINK_ADDRESS,
  signer,
});

// Get message status
const status = await chainlink.getMessageStatus(messageId);

Resources