# Robinhood App Boilerplate > A Foundry boilerplate for on-chain projects on Robinhood Chain (chain id 4663). > Three contracts: `MembershipNFT` (ERC-721; every token owns an ERC-6551 > token-bound account), `RevenueVault` (splits explicitly deposited ERC-20 > revenue across current holders by a pluggable weight), and `Factory` > (EIP-1167 deterministic clones of the pair, wired and owned by the caller in > one transaction). Game logic lives only behind `IWeightStrategy.weightOf()`. > Optional: a Next 15 + wagmi/viem front end (`--fullstack`) and a plain > ERC-20 `GameToken` (`--with-token`). `pnpm verify` (forge fmt + forge test > incl. fuzz/invariants, + tsc + lint when the web app exists) is the gate. ## Conventions for code generation - Read `CLAUDE.md` first. Five golden rules; rule 1 is load-bearing: the vault distributes only what arrives through `depositRevenue()`. Never route mint proceeds, sell taxes or any auto-fee into `RevenueVault`. - Game mechanics go in an `IWeightStrategy` implementation, never in the vault. The vault must pass its tests against `MockWeightStrategy`. - Test first: extend `contracts/test/**` and confirm red before touching `src/`. Anything touching arithmetic or ownership gets a fuzz or invariant run. - Solidity ^0.8.24, OpenZeppelin, custom errors (no revert strings), rich events for every state change, checks-effects-interactions, `nonReentrant` on `distribute()` and `claim()`. - Clones use `initialize()`; implementations call `_disableInitializers()`. - Every chain-4663 address lives in `contracts/src/Constants.sol` and `apps/web/lib/robinhood.ts`, marked `// VERIFY:` until confirmed. Never add an address literal anywhere else. - Out of scope, permanently: market-making, multi-wallet or volume tooling, upgradeable clones, owner escape hatches over user funds. ## Docs - [Tutorial](https://dvd90.github.io/robinhood-app-boilerplate/#tutorial): every concept in plain words, diagrams, a worked example — for non-crypto readers - [Getting started](https://dvd90.github.io/robinhood-app-boilerplate/#getting-started): install → scaffold → test → local run → deploy, ~10 min - [Weight strategies](https://dvd90.github.io/robinhood-app-boilerplate/#guides-weight-strategies): write your own `IWeightStrategy` - [Deploying](https://dvd90.github.io/robinhood-app-boilerplate/#guides-deploying): anvil dry run, Robinhood Chain, env vars, VERIFY checklist - [Front end](https://dvd90.github.io/robinhood-app-boilerplate/#guides-frontend): the optional Next 15 app - [Example: Arcade Guild](https://dvd90.github.io/robinhood-app-boilerplate/#guides-example-arcade-guild): a project built on the boilerplate - [Architecture](https://dvd90.github.io/robinhood-app-boilerplate/#architecture): mint → TBA, deposit → distribute → claim, clones - [Economics & trust](https://dvd90.github.io/robinhood-app-boilerplate/#economics): the revenue-share model and its invariants - [Contracts reference](https://dvd90.github.io/robinhood-app-boilerplate/#reference-contracts): every function, event and error - [CLI & scripts](https://dvd90.github.io/robinhood-app-boilerplate/#reference-cli), [Configuration](https://dvd90.github.io/robinhood-app-boilerplate/#reference-configuration), [Testing](https://dvd90.github.io/robinhood-app-boilerplate/#reference-testing) - [Agent guide](https://dvd90.github.io/robinhood-app-boilerplate/#claude): conventions and invariants ## Full text - [Every page, one file](https://dvd90.github.io/robinhood-app-boilerplate/llms-full.txt) - [Agent guide](https://dvd90.github.io/robinhood-app-boilerplate/CLAUDE.md): conventions, golden rules and the gate - [Source](https://github.com/dvd90/robinhood-app-boilerplate)