Install
openclaw skills install scaffold-art-scriptBuild or convert Art Blocks generative art scripts using artblocks-mcp. Use when helping a user create, scaffold, port, or convert an art script for Art Blocks, or when working with tokenData, hash-based PRNG, FLEX dependencies, PostParams, window.$features traits, p5.js, Three.js, or the Art Blocks generator format.
openclaw skills install scaffold-art-scriptBefore any art script work, fetch this MCP resource:
artblocks://generator-spec
It contains the authoritative reference for: tokenData structure, hash-based PRNG patterns, FLEX dependency types (IPFS, Arweave, ONCHAIN, Dependency Registry), supported script types and library versions, HTML structure requirements, and window.$features. It also includes the step-by-step conversion guide for porting existing scripts.
Use scaffold_artblocks_project to generate a ready-to-run index.html + starter art script.
| Param | Options / Notes |
|---|---|
scriptType | "js" (vanilla), "p5js", "threejs" — required |
dependencyVersion | p5.js: "1.0.0" or "1.9.0" (default). Three.js: "0.124.0", "0.160.0", "0.167.0" (default). Ignored for "js". |
includePostParams | true — adds ONCHAIN/PostParams (PMP) stubs in tokenData and example usage |
includeFlexDependencies | true — adds IPFS and Arweave dependency stubs with usage patterns |
includeFeatures | true — adds window.$features trait assignment stub |
Note on Three.js v0.167.0: uses ES module import maps instead of a global <script> tag. This affects script type detection on-chain — see the generator spec for details.
scaffold_artblocks_project covers vanilla JS, p5.js, and Three.js. Art Blocks supports many more via the on-chain dependency registry: regl, Tone.js, Babylon.js, A-Frame, Paper.js, Zdog, Processing, and custom types. See artblocks://generator-spec for the full list and how to reference them.
When a user has an existing piece to convert to Art Blocks format:
artblocks://generator-spec — it contains a detailed step-by-step conversion guidescaffold_artblocks_project with the matching scriptType to get the correct HTML shellConversion checklist:
Math.random() with hash-based PRNG derived from tokenData.hashwindow.innerWidth / window.innerHeightDate.now(), setTimeout) that affects the initial render (time-based animation after load is fine)window.$features (optional but recommended for reveals) — features must be set synchronously before or during initial rendertokenData.hash and confirm identical initial output| Flag | Enable when... |
|---|---|
includeFeatures | Script has distinct visual categories worth exposing as traits |
includePostParams | Script will have configurable on-chain parameters after minting (PMP) |
includeFlexDependencies | Script loads external assets from IPFS or Arweave |