Integrate D20DAO verifiable randomness into my existing application. Inspect its stack and request lifecycle, then implement the smallest working consumer and validation flow. Read these references before choosing APIs: - Agent guide: https://github.com/d20dao/web/blob/main/public/agents.md - Full text docs: https://github.com/d20dao/web/blob/main/public/llms-full.txt - This guide: https://github.com/d20dao/d20-sdk#getting-started - Current deployment and upgrade history: https://github.com/d20dao/keeper/blob/main/deployments/arc-testnet.json - SDK and packaging instructions: https://github.com/d20dao/d20-sdk - Integration skills: https://github.com/d20dao/skills - Reviewed protocol source: https://github.com/d20dao/keeper/tree/d7e785dda57499220bd37d73bc6fad9226872dcc If a reference needs repository access, use the installed package's AGENTS.md and provenance or request the reviewed files. Do not invent signatures or addresses. Use the existing project toolchain. Install @d20dao/vrf-sdk from npm and read its AGENTS.md and PROTOCOL-PROVENANCE.json. Use Solidity 0.8.28. Configure the actual chain and coordinator proxy; Arc Testnet is 5042002 and requires consumer allowlisting. Read requestFee() instead of hardcoding the fee. Keep callbacks small and authenticated through D20VRFConsumer. Mapped requests still deliver a raw bytes32 word. Accepted proof with a failed callback is paid service; retry the same stored result, never reroll it. Unfulfilled requests are refundable strictly after 60 seconds. Optional _onRefund(requestId) means the fixed recipient was paid or credited, not that the consumer received funds; notification retries must not pay twice. Do not request randomness from inside a callback. Separate application assets and settlement rules. For verification, retain original epoch packets, request/target context and accepted proof evidence. Mathematical replay alone does not establish chain inclusion. An implementation upgrade inside a relevant block requires transaction-ordered evidence; block-end storage alone cannot prove which code ran. Implement only the requested application changes. Do not request keeper, VRF, deployer or bot secrets. Respect my authorization for any deployment or funded transaction. Run relevant compilation and lifecycle tests; report changed files, results, missing inputs and any remaining onboarding step.