README.md
wrapped — Wrapped Ether (WETH), gno.land port
⚠️ Experimental — generated with no human supervision by the daily MCP pipeline (Solidity→Gno port). Not audited. See r/moul/x/daily.
An accounting-only port of the canonical Wrapped Ether (WETH) contract. WETH
lets you lock native ETH to mint a 1:1 ERC-20 token and burn it to unlock the ETH
again. gno.land / sapphire has no msg.value / payable, so this realm models the
wrap/unwrap purely as uint64 ledger accounting — no real coin ever moves.
Balances live in an avl.Tree; every mutation emits a Deposit, Withdrawal, or
Transfer event, mirroring the original contract.
API
Deposit(cur realm, amount uint64)— credit the caller's wrapped balance andtotalSupply(models wrapping native funds; accounting only).Withdraw(cur realm, amount uint64)— burnamountfrom the caller and fromtotalSupply(panics on insufficient balance).Transfer(cur realm, to address, amount uint64)— move wrapped units.BalanceOf(owner address) uint64— read a single balance.TotalSupply() uint64— read the total wrapped supply.Render(path string) string— Markdown: total supply + non-zero balances table.
Example calls
# wrap 1000 units for the caller
gnokey maketx call -pkgpath gno.land/r/moul/x/daily/wrapped/v0 -func Deposit -args 1000 ...
# send 250 to another address
gnokey maketx call ... -func Transfer -args g1<recipient> -args 250 ...
# unwrap 500 units
gnokey maketx call ... -func Withdraw -args 500 ...
Part of moul/gno-contracts — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage.
Dependency graph:

🧪 Highly experimental — potentially vibe-coded. Not audited; may break, change, or be removed at any time. Do not use with anything of value. Full disclaimer: DISCLAIMER.