/contracts-wizard

Interactive smart contract generator based on OpenZeppelin Contracts.

Primary LanguageTypeScriptMIT LicenseMIT

Solidity NPM Package Cairo NPM Package Netlify Status

Contracts Wizard is a web application to interactively build a contract out of components from OpenZeppelin Contracts. Select the kind of contract that you want, set your parameters and desired features, and the Wizard will generate all of the code necessary. The resulting code is ready to be compiled and deployed, or it can serve as a starting point and customized further with application specific logic.

Development

Install dependencies with yarn install.

packages/core contains the code generation logic for Solidity.

packages/core-cairo contains the code generation logic for Cairo.

packages/ui is the interface built in Svelte. yarn dev spins up a local server to develop the UI.

You'll need to supply your own environment variables if you want to enable Wizard AI Assistant (OPENAI_API_KEY) and/or logging (REDIS_URL, REDIS_TOKEN).

Embedding

To embed Contracts Wizard on your site, first include the script tag:

<script async src="https://wizard.openzeppelin.com/build/embed.js"></script>

Then place <oz-wizard></oz-wizard> in the body where you want Contracts Wizard to load.

Optionally focus on specific tab with the data-tab attribute as in <oz-wizard data-tab="ERC721"></oz-wizard>.

For Cairo, use the data-lang attribute: <oz-wizard data-lang="cairo"></oz-wizard>.

API

The following describes how to use the Contracts Wizard programmatic API in your own applications.