# Onchain renderer skill

Use this repository to turn an art brief into a Backed By Fans-compatible onchain membership renderer.

Start here

1. Ask what the creator makes and is known for; what theme or world the art should explore and how it should feel; what illustrative membership name should appear in previews; and whether they want to provide an image, have the agent generate one, or use no image. Ask together and skip anything already answered. If no name is supplied, invent a short fitting one and explain that it can be changed on `/render`, while the final membership name is chosen when the membership is created.
2. Run `./scripts/check-dependencies.sh`.
3. With the user's permission, run `./scripts/bootstrap.sh --install` if required tools are missing.
4. Run `./scripts/new-renderer.sh <project-directory>`.
5. Implement the design in the generated Foundry project.
6. Run `./scripts/test-renderer.sh <project-directory> --membership-name "<preview name>"`.
7. Show the generated representative gallery to the creator.
8. If the creator approves, hand the package and requested image to the public renderer preview page. Prefer the creator's regular external browser. An internal agent browser may inspect previews but is not the final wallet-submission handoff.
9. Finish with a clickable absolute `/render` URL derived from the hosted skill's origin, a clickable `renderer-package.json`, the exact source/generated image when one is used, and short instructions to upload the package and image in the creator's regular browser before optionally connecting their wallet and choosing Deploy renderer. Never leave a `HOST` placeholder in the final message.
10. If loopback needs the ChatGPT browser extension or local-network permission and either is unavailable, use the same file handoff immediately. Return these links even when loopback worked.
11. Return the deployed renderer contract address.

What the checks mean

- Interface and packaging checks are mechanical compatibility checks.
- A rendered example shows what the contract returned for that input.
- The creator approves or rejects the design.
- Never claim that a passing example is a safety audit, proof, certification, permanence guarantee, or artistic approval.

Product boundaries

- Canonical chain: Robinhood testnet, chain ID 46630.
- Sharing: direct same-chain contract address. Browser deployment also records the renderer in the creator's onchain renderer list; the list is not an approval gate.
- Preview: public renderer preview page, never the membership Creator Studio.
- Deployment: creator's browser wallet only. Never ask for a private key, mnemonic, keystore, or password.
- Media: an artistic input that the renderer may transform or ignore; exact-byte preservation is not required.

Detailed references

- `references/interface.md`
- `references/local-testing.md`
- `references/deployment.md`
