Holy Mary Chain: The Blockchain Living Inside My XR Space
Holy Mary Chain: The Blockchain Living Inside My XR Space
If you've walked into the XR Space on this site and noticed a little "🔥 HMC live" indicator in the header, you've already touched a real blockchain. This post explains what it is, why it exists, and how it's built.
What is Holy Mary Chain?
Holy Mary Chain (HMC) is a sovereign Layer 1 blockchain I built using Cosmos SDK and CometBFT (the consensus engine formerly known as Tendermint). It's not a toy testnet running in a Docker container on my laptop — it's a live node running on a cloud server, producing a block roughly every 5 seconds, with its own native coin: uhmc (micro-HMC).
The chain exists to give the XR Space something most metaverse demos don't have: a tamper-proof, independently verifiable log of who showed up.
Why bolt a blockchain onto a personal website?
Mostly curiosity, honestly. But there's a real idea underneath it: when you enter the XR Space, your presence isn't just a row in a database I control — it's a signed transaction broadcast from a wallet generated in your own browser. Anyone can independently verify it happened by querying the chain directly. It's a small, weird experiment in what "proof you were here" could look like when it isn't just server logs.
But what's the point if it isn't money?
Fair question — and worth answering directly, because HMC has no price, isn't for sale, and isn't listed on any exchange. So what does it actually do?
One thing, really: it's a record of presence that even I — the person who runs this site — cannot forge or secretly alter.
Think about the alternative. With a normal database, I (or anyone with the password) can edit it, backdate it, delete a row, or invent a visit that never happened. You'd have no way to prove otherwise. With HMC, every visit is cryptographically signed by a wallet only you hold, and written to a ledger whose history can't be quietly rewritten. "I was here on this date" becomes something anyone can verify — without having to trust me.
That single property is the foundation everything else sits on:
- A tamper-proof guestbook — a permanent record of who passed through, that can't be edited after the fact.
- Self-sovereign identity — every visitor owns their own key. Your participation is yours, provable independently of my site.
- A real, working technical artifact — a genuine sovereign Layer 1 with custom modules, not a mockup or a slide. It's a serious engineering piece.
- A foundation for keepsakes — proof-of-presence collectibles ("I was here") are a natural next step, without ever touching real money.
I'll be honest: for a presence toy, a plain database would cover most of this. What earns the blockchain its place is that one trust property — provable without trusting the operator — plus the simple fact that it's a genuinely fun and hard thing to have actually built and shipped.
A note on value (and legality)
To head off the obvious question: HMC is deliberately not a cryptocurrency you can invest in. The tokens are handed out free by a faucet, can't be purchased, and hold no cash value — they're closer to arcade tokens than to anything financial. That's an intentional choice, not a missing feature. The moment a token like this can be bought and sold for real money, it steps into a world of financial regulation that a personal art project has no business wandering into. Keeping it valueless keeps it fun, safe, and free for everyone. If that ever changes, it'll be a deliberate decision made with a lawyer in the room — not a quiet code change.
How it's built
Cosmos SDK works like a framework for building blockchains, the same way Next.js is a framework for building websites — it handles consensus, networking, and transaction signing so you only write the business logic. HMC has three custom modules:
spark— handlesMsgIgnite, a token transfer that automatically burns 0.5% of every amount sent. A little deflationary pressure baked into the protocol.burn— an on-chain registry for the burn rate parameter, intended to eventually be governance-controlled rather than hardcoded.presence— the module the XR Space actually talks to.MsgEnterSpaceandMsgLeaveSpacerecord a signed, timestamped event every time someone enters or leaves a space, including position and display name.
Everything else — accounts, staking, governance, IBC — comes straight from the Cosmos SDK's standard module set. I didn't need to reinvent account management or peer-to-peer networking; I only needed to write the parts specific to HMC.
How the XR Space uses it
User opens the XR Space
→ a CosmJS wallet is generated in-browser (or restored from localStorage)
→ MsgEnterSpace is signed and broadcast to the HMC node's RPC endpoint
→ the transaction is confirmed on-chain
→ everyone in the space sees "🔥 HMC live · attested" in the header
No backend of mine decides who was in the room — the chain does, and it's queryable by anyone who wants to check.
What's still evolving
I'm treating this as an honest work-in-progress, not a finished product:
- One validator today. HMC currently runs on a single node I operate. It's genuinely decentralized software, but not yet a decentralized network — that's a deliberate next step, not an oversight.
- Presence is currently event-only. Entering and leaving a space emits a verifiable on-chain event, but the chain doesn't yet maintain queryable state like "who is in this room right now." The XR Space's live presence list is handled by its own WebSocket layer; the chain is the attestation record sitting underneath it.
- Governance wiring is partial. The burn rate is still a hardcoded constant in the
sparkmodule rather than something adjustable through on-chain governance — that's the next piece I'm connecting.
Try it yourself
Walk into the XR Space and watch the header. If the chain is reachable, you'll see the live indicator; if it's ever mid-restart (I do maintenance on it directly via SSH, no fancy CI/CD yet), you'll see "⛓ chain offline" instead. Either way, now you know what's actually happening behind that little flame icon.
Questions about how any of this works? Feel free to ask in the chat.
