Skip to content

MystenLabs/evm-sui

Repository files navigation

EVM × Sui · integrate the Sui stack with EVM dApps.
Walrus decentralized storage for your EVM contracts, and everyday Solidity patterns rebuilt as idiomatic Sui Move — all as code you can run.


Two tracks, one site: https://mystenlabs.github.io/evm-sui/

  • Walrus on EVM — six Solidity showcases that put a Walrus blob behind an EVM contract, each with a step-by-step walkthrough page.
  • Everyday Solidity, done on Sui — thirteen of the most common Solidity/EVM patterns paired side by side with their Sui Move equivalents, in a keyboard-first browser (j/k to move between patterns, d to morph a pair into a unified diff, ⌘K to jump).

Site source lives under docs/; the patterns page is generated by patterns/build-landing.py.

Track 1 · Walrus showcases — decentralized storage for EVM

Each showcase pairs a Solidity contract with a few hundred lines of TypeScript — same EVM surface, storage swapped from IPFS/Arweave to Walrus.

# Showcase Layout Status
01 NFT image + metadata showcases/01-evmwal-nft/ + showcases/contracts/src/EvmWalNFT.sol shipped
02 Walrus Sites for dApp frontend hosting showcases/02-walrus-sites/ implemented
03 WalrusResolver — IPNS replacement showcases/03-walrus-resolver/ + showcases/contracts/src/WalrusResolver.sol implemented
04 DAO governance proposals on Walrus showcases/04-dao-proposals/ + showcases/contracts/src/Governance.sol implemented
05 Verifiable token list / dApp manifest showcases/05-verifiable-manifest/ + showcases/contracts/src/WalrusResolver.sol implemented
06 Quilted ERC-721 collection drop showcases/06-quilted-collection/ + showcases/contracts/src/QuiltedCollection.sol implemented

Pick a showcase under showcases/<n>-* and read its README — each one stands alone.

Track 2 · Chapter 2 — Everyday Solidity, done on Sui

Thirteen pattern pairs under patterns/: fungible token, NFT, access control, upgradeability, factory/clones, escrow, vesting, multisig, merkle airdrop, gasless UX, flash loan, the security canon, and governance. Each pairs a Foundry-tested Solidity snippet with a lean Sui Move module (or, where Sui provides the pattern natively — multisig, sponsored transactions — a shell/TS snippet, which is itself the lesson). Where OpenZeppelin Contracts for Sui applies, it's used.

See patterns/README.md for the full pattern table and build instructions for both sides.

Repo conventions

  • Walrus-track Solidity lives in a single shared Foundry package at showcases/contracts/. Build + test with cd showcases/contracts && forge build && forge test -vv.
  • Patterns-track code lives in patterns/: a Foundry package (patterns/solidity/, with smoke tests) and a Sui Move package (patterns/move/patterns/, kept lean — sui move build --build-env testnet type-checks it).
  • TypeScript / Next.js packages sit one per showcase under showcases/<n>-*. Showcase 01 is a pnpm workspace (01-evmwal-nft + 01-evmwal-nft/web); 03 and 05 expect pnpm install to be run in their own directories.
  • Repo-wide tooling at root: dev:chain (anvil), format (Prettier + prettier-plugin-solidity), dev:nft shortcut into showcase 01's frontend.
  • Node 22, pnpm 10, Foundry, Sui CLI (for the Move package). .nvmrc pins Node.

Quick start

pnpm install
pnpm dev:chain    # anvil on 127.0.0.1:8545

# in another terminal — bring up showcase 01's frontend
cd showcases/01-evmwal-nft
pnpm deploy:local
pnpm dev:web      # http://localhost:3000

See each showcase's README for its own setup.

License

MIT. Solidity sources carry SPDX-License-Identifier: MIT per Foundry/OpenZeppelin convention.

About

A basic example of how to use Walrus to store your EVM NFT's metadata

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors