Ultima Online, reborn on Solana.
A decentralized, player-owned sandbox MMO built on the ClassicUO client.
Ultima OnChain brings the world of Ultima Online onto the Solana blockchain. Characters, items, gold, and land are no longer trapped inside a single shard's database — they are player-owned, portable, and verifiable on-chain.
The client is a fork of ClassicUO, the open source Ultima Online Classic Client. We retain its rendering, networking, and game-logic foundations, and layer on wallet-based identity, tokenized assets, and decentralized shard infrastructure.
Traditional UO shards are custodial. Your 20-year-old character, your Valorite runic hammer, your tower in Trinsic — they exist at the mercy of a single server admin. One shutdown, one rollback, one policy change, and decades of play vanish.
Ultima OnChain flips that model:
- You own your character. Your avatar is an NFT in your wallet.
- You own your loot. Rare items are mintable NFTs with verifiable provenance.
- You own your gold. In-game currency is an SPL token, tradeable anywhere.
- You own your land. Houses and plots are on-chain deeds.
- Shards compete for players, not lock them in. Any operator can host a shard; your assets travel with you.
┌─────────────────────┐ ┌──────────────────────┐ ┌─────────────────────┐
│ Ultima OnChain │◄───►│ Shard Server │◄───►│ Solana Program │
│ Client (this repo) │ │ (modified ServUO) │ │ (asset + state) │
│ │ │ │ │ │
│ wallet adapter │ │ signature verify │ │ characters (NFT) │
│ tx signing │ │ action commits │ │ items (NFT) │
│ on-chain lookups │ │ settlement batches │ │ GOLD (SPL token) │
└─────────────────────┘ └──────────────────────┘ └─────────────────────┘
- Client — this fork. Adds a Solana wallet adapter, signs login + high-value actions, and reads asset metadata directly from the chain.
- Shard server — a modified ServUO that verifies wallet signatures at login, emits on-chain commits for meaningful events (mint, trade, death, house deed), and batches low-stakes state to keep costs negligible.
- Solana programs — hold the canonical asset ledger. Characters and items are NFTs; gold is an SPL token; shards read and write through signed instructions.
Hot-path game state (movement, combat rolls, chat) stays off-chain to preserve the feel of classic UO. Only consequential, ownership-changing events settle to Solana.
| Phase | Milestone | Status |
|---|---|---|
| 1 | Fork ClassicUO, rebrand to Ultima OnChain | ✅ done |
| 2 | Solana wallet adapter + signed-login flow (C# client) | ⏳ next |
| 3a | character program — NFT mint + on-chain traits (devnet) |
✅ live |
| 3b | Shard-side character signature verification | ⏳ |
| 4a | gold program — $GOLD SPL token (devnet) |
✅ live |
| 4b | In-game faucet + sink economy integration | ⏳ |
| 5 | item program — NFT minting for rares and runics |
⏳ |
| 6 | house program — deed NFTs + land registry |
⏳ |
| 7 | Cross-shard asset portability | ⏳ |
| 8 | Mainnet launch | ⏳ |
Devnet program IDs (see solana/):
gold—ULT4AZDFwL5TT5JS6B4JUr7S9wHPCwAfScvaVTSFbhTcharacter—ULT6Xb7DautiSF8b3hq2qpJXjfqpdu1S3Evd7XkVi7s
git clone --recursive https://github.com/UltimaOnChain/Ultima.git
cd Ultima/scripts
bash build-naot.sh
Binaries land in bin/dist.
Warning
On Windows, run .sh scripts from Git Bash (bundled with Git for Windows).
To run the client you still need a legally obtained copy of the Ultima Online Classic Client assets. Ultima OnChain does not distribute any copyrighted game files.
Inherited from ClassicUO:
- Browser (Chrome)
- Windows (DirectX 11, OpenGL, Vulkan)
- Linux (OpenGL, Vulkan)
- macOS (Metal, OpenGL, MoltenVK)
The project is early and moving fast. Issues and PRs welcome — check the GitHub issues for open work. For design conversations and announcements, follow @UltimaOnChain on X.
Ultima OnChain stands on the shoulders of:
- ClassicUO — the client we forked. Massive thanks to andreakarasho and contributors.
- OrionUO, Razor, UltimaXNA, ServUO
- FNA — the XNA-compatible backend
Released under the BSD 4-Clause License (inherited from ClassicUO — see LICENSE.md). This project does not distribute any copyrighted game assets. Using a custom client to connect to official UO servers is strictly forbidden. We assume no responsibility for misuse of this client.
Ultima Online® © Electronic Arts Inc. All Rights Reserved. Ultima OnChain is a fan project and is not affiliated with or endorsed by Electronic Arts.
Solana® is a trademark of the Solana Foundation. Ultima OnChain is not affiliated with or endorsed by the Solana Foundation.

