What was built
A message that cannot be taken back
GuestbookETH is a public guestbook built around a simple idea: some words are worth leaving somewhere permanent. A visitor connects an Ethereum wallet, writes a message, and confirms a transaction. Once the transaction is mined, the message sits in an append-only contract alongside the signing wallet, timestamp, and ETH committed to the entry.
This is not a mock blockchain interface or a testnet proof of concept. GuestbookETH is deployed on Ethereum mainnet at 0x45ce58fbD7944A2451A12cEd878944622721DBb1. The live interface reads from that deployment, and a real mainnet transaction is required to add a message.
The product
The experience is deliberately quiet. The home screen puts the act of signing beside a public wall of entries: a writing surface on one side, an on-chain ledger on the other. The current contract fee is visible before a wallet is connected, while the wallet remains responsible for showing the separate network gas cost.
Each entry has its own detail page with the committed ETH amount, message, wallet address, date, and sharing controls. The wall stays focused on the words; the detail view carries the heavier provenance.
What is permanent
- Messages are appended directly to the smart contract.
- The contract has no edit or delete function, including for the owner.
- The wallet address and timestamp are public Ethereum data.
- The ETH payment is emitted in the
GuestbookSignedevent and can be verified independently. - The app reads messages from contract storage rather than depending on a separate indexer.
Engineering decisions
The contract uses OpenZeppelin's Ownable2Step, Pausable, and ReentrancyGuard. Messages are stored on-chain and exposed through paginated reads so the public wall can remain usable as the ledger grows. A configurable minimum fee gives the owner a simple spam deterrent without turning the guestbook into a payment product.
On the frontend, Next.js handles the public pages and metadata while Wagmi and Viem handle wallet connection, reads, and transaction status. The network, RPC endpoint, and contract address stay environment-driven so the same application can be run locally or pointed at the mainnet deployment without rewriting the interface.
Mainnet deployment
GuestbookETH is live on Ethereum mainnet. The deployed contract is 0x45ce58fbD7944A2451A12cEd878944622721DBb1. The contract source and Foundry test suite are available on GitHub.

