# Agent integration (Claude Code skill)

Quiver ships a **Claude Code skill** so an AI agent can integrate verifiable on-chain randomness for
you — write a `QuiverConsumer` contract, wire up the push/pull flow, use the `@quiver/sdk` client,
or run a Fletcher keeper. The skill carries the verified coordinator/provider addresses, the safety
rules for `_fulfillRandomness`, and the full SDK surface, so an agent produces correct integration
code without guessing.

Everything below is public and self-contained. Pick whichever install path fits your setup.

## Option A — install as a Claude Code plugin (recommended)

Add the Quiver marketplace once, then install the plugin:

```
/plugin marketplace add camdengrieh/quiver-kit
/plugin install quiver@quiver
```

This installs the `quiver-integration` skill (plus its reference files). Your agent will invoke it
automatically whenever you ask it to add randomness/VRF/RNG to a contract or dApp on Robinhood Chain.

## Option B — drop the skill into a project

Copy the skill straight into a repo's `.claude/skills/` directory:

```bash
mkdir -p .claude/skills/quiver-integration/references
base=https://quiver.foundation/skills/quiver-integration
curl -sfL $base/SKILL.md -o .claude/skills/quiver-integration/SKILL.md
for f in consumer-contract typescript-sdk keeper-and-provider networks; do
  curl -sfL $base/references/$f.md -o .claude/skills/quiver-integration/references/$f.md
done
```

The skill is now active for any agent working in that project.

## Option C — point any agent at the hosted files

Every file is fetchable directly, so an agent (Claude Code, an SDK app, or any tool that can read a
URL) can pull it on demand:

- Skill entrypoint: [`/skills/quiver-integration/SKILL.md`](https://quiver.foundation/skills/quiver-integration/SKILL.md)
- References: [`consumer-contract.md`](https://quiver.foundation/skills/quiver-integration/references/consumer-contract.md) ·
  [`typescript-sdk.md`](https://quiver.foundation/skills/quiver-integration/references/typescript-sdk.md) ·
  [`keeper-and-provider.md`](https://quiver.foundation/skills/quiver-integration/references/keeper-and-provider.md) ·
  [`networks.md`](https://quiver.foundation/skills/quiver-integration/references/networks.md)
- Machine index of the skill bundle: [`/skills/quiver-integration/skill.json`](https://quiver.foundation/skills/quiver-integration/skill.json)

For general LLM context (not the skill), the [`llms.txt`](https://quiver.foundation/llms.txt) and
[`llms-full.txt`](https://quiver.foundation/llms-full.txt) indexes cover the whole documentation set.

## What the skill knows

- **Push (callback) flow** — inherit `QuiverConsumer`, request in your entrypoint, settle in
  `_fulfillRandomness`, and the keeper delivers the result. Includes the non-negotiable rules
  (never revert on the happy path, correlate by sequence number, fund the contract for fees).
- **Pull flow** — request with a sealed commitment and reveal yourself, no keeper required.
- **TypeScript** — the `@quiver/sdk` `QuiverClient` (`requestRandomness`, `request`, `reveal`,
  `waitForFulfillment`) and hash-chain helpers.
- **Keeper & provider ops** — running Fletcher and registering/rotating a hash-chain provider.
- **Verified network constants** — coordinator + default provider addresses and fees for mainnet
  (chainId 4663) and testnet (chainId 46630).

## Try it

Ask your agent something like:

> "Add a Quiver-powered raffle to my Solidity project on Robinhood Chain testnet — one entry per
> address, pick a winner with verifiable randomness."

With the skill installed it will scaffold a `QuiverConsumer`, wire the request/callback, and plug in
the correct testnet coordinator and provider addresses.
