project screenshot 1
project screenshot 2
project screenshot 3

Frmandy

A Fully on-chain NFT mint using Cartesi and Ethereum smart contracts

Frmandy

Created At

ETHBogotá

Winner of

🥇 Cartesi — Best Use

Project Description

Cartesi is designed for doing computation off-chain that would be otherwise be difficult in the EVM. A Mandelbrot set is a classic example. Although we could generate a Madelbrot set escape time plot in the EVM, writing the resulting PNG file would be a challenge. In this hypothetical example, we make a NFT that sells off portions of the set such as "seahorse valley" (--0.75:0.1:10.0) to collectors. In an ideal scenario, we could use Cartesi to write a file to IPFS and publish the URL on the chain by use of Cartesi's unique voucher system.

How it's Made

Rust is the ideal language for these computational loads having a good degree of stability and an established set of libraries such as the PNG library used in this example.

The core code of this contract is as follows:

fn escape_time(cx: f64, cy: f64) -> u8 { let mut zx = cx; let mut zy = cy; let mut res = 0; loop { (zx, zy) = (zxzx - zyzy + cx, 2.0zyzx + cy ); if zxzx + zyzy > 4.0 || res == 255 { return res; } res += 1; } }

We give three parameters to the contract: x, y and zoom. This determines the generated image.

In a more complex example, we could composite SVG images to create mutations of comic book characters or sell off images of plots of land on Mars.

There is a small demo UI which intereacts with the emulator directly as testing the smart contracts end to end was a challenge given the many moving parts. Hopefully this demonstrates the core concepts. Next step would be to deploy to chain.

background image mobile

Join the mailing list

Get the latest news and updates