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/kto move between patterns,dto morph a pair into a unified diff,⌘Kto jump).
Site source lives under docs/; the patterns page is generated by patterns/build-landing.py.
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.
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.
- Walrus-track Solidity lives in a single shared Foundry package at
showcases/contracts/. Build + test withcd 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 testnettype-checks it). - TypeScript / Next.js packages sit one per showcase under
showcases/<n>-*. Showcase 01 is apnpmworkspace (01-evmwal-nft+01-evmwal-nft/web); 03 and 05 expectpnpm installto be run in their own directories. - Repo-wide tooling at root:
dev:chain(anvil),format(Prettier +prettier-plugin-solidity),dev:nftshortcut into showcase 01's frontend. - Node 22, pnpm 10, Foundry, Sui CLI (for the Move package).
.nvmrcpins Node.
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:3000See each showcase's README for its own setup.
MIT. Solidity sources carry SPDX-License-Identifier: MIT per Foundry/OpenZeppelin convention.