ChainGreets

Why & How

ChainGreets started as a simple idea while exploring different Web3 ecosystems.

Over the past months, I've been interacting with several networks — MegaETH, Soneium, Robinhood Chain, Arc, Tempo — testing faucets, bridges, wallets, and transactions across these environments. That process made me realize something interesting:

Sometimes the best way to understand Web3 is simply to build something yourself.

I am not a professional developer. I'm someone passionate about technology, crypto, and learning how things work. So instead of only interacting with existing dApps, I decided to build a small project where I could experiment with different aspects of Web3 development.

ChainGreets is that project. It's essentially a personal playground to learn by building and interacting onchain.

The project is also heavily supported by AI-assisted development tools, which help explore ideas, write code, debug problems, and move faster when experimenting.

Another inspiration came from simple social dApps like OnChainGM and ZNS Connect — applications showing that even the simplest interactions, like saying GM, can become engaging when recorded onchain. ChainGreets builds on this idea while focusing on experimentation, learning, and multi-chain exploration.

At its core, ChainGreets enables a very simple interaction: sending a GM or GN message onchain.

In the first version, this works through a transaction where the message is encoded directly in the transaction data:

Transaction encoding — GM / GN
GM 0x474d — ASCII "GM" in hex
GN 0x474e — ASCII "GN" in hex
gm() SC 0xc0129d43 — keccak256 selector (testnets)
01
The wallet creates a transaction to the ChainGreets smart contract (or collector address on mainnets)
02
The message is encoded in the transaction input data — or triggers the gm() function on the deployed SC
03
The transaction is broadcast to the selected blockchain and confirmed onchain
04
The interaction appears in the ChainGreets feed and dashboard — fully verifiable onchain

Most experiments are currently performed on testnets, allowing safe experimentation with different networks. A very small optional fee may be added on some mainnet interactions to support development and infrastructure costs.

Beyond sending GM or GN messages, ChainGreets is also an experiment in:

⬡ Building a Web3 frontend
🔗 Multi-chain interaction
⛓ Deploying smart contracts
📊 Visualizing onchain activity
👛 EIP-6963 wallet integration
📡 Blockscout event indexing
Multi-chain GM / GN on 8 testnets + mainnets (EOA)
Smart contract GM — 8 testnets with onchain enforcement
SC event feed via Blockscout (no API key)
D3 force graph dashboard with period filters
Daily streak tracker, TX history, local storage
GN smart contract — all testnets
GM + GN smart contracts — mainnets
NFT mint on GM / GN — daily onchain proof
Send GM or GN to a friend's wallet
Leaderboard — streaks, most chains, most active wallets
Cross-device sync via Supabase

ChainGreets is not meant to be a polished product.
It's meant to be a place to experiment, break things, learn, and improve.

If the project becomes useful or fun for others along the way, that's an added bonus.

Because in Web3, the best way to learn is often simply to build in public.

𝕏  freeouyo