# Orb: text for the Metropolis submission form

Prepared on October 9, 2026 and checked against the form on October 12, for **Track 03, Social, Attention & Culture**. Every statement below can be
checked against this repository and Monad testnet (chain 10143), and nothing in it describes a feature that is not built. Two lines depend on the
founder's actions and say so: the live host must serve this build, and the videos must be uploaded.

## The form's required fields, and what blocks each one

| Field | What to paste | Blocked by |
| --- | --- | --- |
| Project name | `Orb` | — |
| One-line description (200) | "Orb: a community workspace — chat, voice, feed, missions, Council, trading — whose history can be saved on Monad and read back without Orb." | — |
| Description (8,000) | the **Description** section below | — |
| Go-to-market and user acquisition (8,000) | the **Go to market** section below | — |
| GitHub repository | `https://github.com/RobotDeveloper1/orb` | the repository is still **private**; §4.1.1 asks for public source |
| Live product (must run on Monad) | `https://joinorb.online` | serves the **October 13** release: Open Ledger, stage, `/developers`, and the wallet transfer fix |
| Technical demo video (≤3 min) | the uploaded link | upload; the file is `outputs/demo-v3/orb-demo.mp4`, 2:42 |
| Pitch video (≤2 min) | the uploaded link | upload; the file is `outputs/pitch/orb-pitch.mp4`, 1:56 |
| Privy bounty video | the uploaded link | `outputs/privy/orb-privy-session.mp4`, 1:33 — onboarding with a wallet, the embedded Orb Wallet Privy creates, the AUSD and ORB claims, and an ORB transfer signed through Privy's approval modal (`0x5c4e6513…f02f`, 1.0 ORB delivered) |
| Perpl bounty video | the uploaded link | `outputs/perpl-live/orb-perpl-session.mp4`, 1:50 — the desk on live market data, the four chain steps that open the account, the assistant asked for a ticket, and the order the member reviewed and sent: Perpl answered "Order accepted by Perpl. Waiting for execution on the book." with 1 open position |
| Judge access instructions (optional, 8,000) | the **Access instructions** section at the end of [orb-demo-video-script.md](orb-demo-video-script.md) | the same host as "Live product" |
| Sponsor bounties | only the ones whose evidence exists | see the warning under **Bounties** below |

## Name and one line

**Orb.** A community workspace whose history can belong to its members, because it can be saved on Monad.

## Short description (about 300 characters)

Orb is a community workspace (chat, voice, feed, missions, Council, trading) whose history can be saved on Monad testnet, sealed to the owner's key or public, and read back by anyone with only an RPC: no Orb server, no account. A Discord community can bring its history in first, and authors can take opt-in MON tips.

## Description

Communities lose their history when a platform changes its mind. Orb is a place where a community meets, talks, works and trades, and where its history is not only on Orb's server. The owner of a community can turn on the **Open Ledger**: a contract on Monad testnet that stores the community's text as numbered, hash-chained entries written by a keeper. The owner chooses which channels are saved and signs a consent in a wallet; the contract rebuilds the readable consent text itself, so the signature binds the owner to exactly what the chain shows. A ledger is either **private** (sealed to a key only the owner holds, recovered with a one-time code) or **public** (plain text, permanent, and the screen says so before the owner signs).

Reading it back needs nothing from Orb. A browser, a command (`npm run ledger:read`) or the static independent client fetches the entries from a public RPC, checks the hash chain, checks the owner's signed consent, and checks that the contract at that address is the published build, then lays the community out like the chat it came from, with search and downloads. Members of a saved community see a **Saved on Monad** chip that opens that reading. A community that is leaving Discord can import its DiscordChatExporter history first (who said what, when and in reply to what; avatars, roles and reactions stay behind), and an author can switch on opt-in tips, sent wallet to wallet in MON and counted only after the server reads the transfer back from the chain.

Around it, Orb keeps the rest of a community's life in one place: text and voice rooms, a social feed, prefunded missions paid in the ORB test token, a team-reviewed Council whose votes count the square root of the ORB locked, Passport evidence anchored to a registry on Monad, reviewed (never auto-signed) trading drafts on Perpl and Kuru, and a Discord-style **apps platform**: a program with its own token reads, posts and answers `/commands` in the communities that installed it, and its developer can put it on a public registry on Monad with an optional price that pays them directly.

## Go to market

**First users.** Operators of small communities that already keep something worth keeping — a playtest group, a study group, a market discussion, a
guild — on a platform they do not control. They are the ones who feel a lost archive, and the one thing Orb does that they cannot get elsewhere is a
copy of their history that survives the platform. Second, the people who build for those communities: Orb gives them a real surface (a bot with its own
token, the scopes a community accepted, an SDK, and a registry on chain that can carry a one-time price paid to the developer directly), so an app
author arrives with their own users. Third, members who already trade and would rather have the conversation, the reviewed draft and the proof in the
same room instead of four.

**How we reach them.** Not by asking a community to move everything at once. Orb asks for one thing first — bring the history, or save it — because the
importer and the Open Ledger are the parts a competitor cannot copy without giving the community a way out. The channels are the ones this project
already sits in: the Monad builder community and the hackathon directory, the Discord servers whose operators would import their own archive first, and
links a stranger can open without an account (`/judges`, the demo ledger, the independent client). A community that saved its own history is the pitch:
the **Saved on Monad** chip in a channel header is what a member shows somebody else.

**What is not claimed.** There is no retention, no revenue and no paying customer yet. The pilot target written in [orb-submission-checklist.md](orb-submission-checklist.md)
is ten new people across three communities, observed after the hackathon with the denominators kept, and the fee lines in the whitepaper are a
hypothesis: a visible percentage on approved work in the pilot, and coordination tools for organizers. Test tokens, locks and a treasury are not
revenue.

## Bounties

Select only what the evidence already shows. Two cautions from the form itself:

- **Perpl** asks for *a demo video of up to two minutes showing a trading bot or automation system on Perpl with demonstrated real on-chain activity*.
  That video now exists: `outputs/perpl-live/orb-perpl-session.mp4`, recorded on the public host. The on-chain part is the four steps that open the
  account — AUSD approve, `createAccount`, the deposit and allowing order forwarding — and the automation part is the assistant being asked for a
  ticket. Say what the venue answer was, not more than that: Perpl accepted the order and the position opened; **an accepted order is not a fill**, and
  no fill hash exists to show, because orders are WebSocket frames signed in the browser rather than chain transactions.
- **Privy** asks how Privy is used. Orb uses an embedded wallet as the only spending wallet and keeps the login wallet separate from it, which is what
  the Privy video shows end to end, including Privy's own "Sign message" approval before the ledger consent and before a transfer.
- **Tencent's Kepler Plan** asks for a link. Inference in Orb runs on a free OpenRouter configuration, not a guaranteed Hunyuan model, so selecting it
  would be a false representation under §8.2/§10.

## What is on Monad

All of it on Monad testnet, chain 10143, with the addresses in the [README table](../README.md#live-app-architecture-and-contracts) and `/proofs`.

- **Open Ledger** `0xA6DE00A98b0f3a191992D1099d48a62905b64eD0`, deployed on October 9, 2026 ([transaction](https://testnet.monadscan.com/tx/0x5a53e754cdac52f7945d50380785a2a4dc4551222d9fbeaec9b306aa1cbfcdff)).
- **A public demo ledger** on that contract, `0xe6e2ea5420d807803cb2b5ebdd08786d324d1b95916ffcf6505b183c4eae3028`: invented people and messages, written by the real keeper. Every transaction is listed in [docs/orb-ledger.md](orb-ledger.md#the-public-demo-ledger).
- **A demonstration mission** on the Missions contract `0x26859391CD7562c1e2221B75748C96815447FF90`, open until November 6, 2026 ([transaction](https://testnet.monadscan.com/tx/0x8b0db0e8bc9eda249bac05d64ca86be3aff1f55f75f8fc349fcd53a9d91fd981)).
- **Orb Bot Registry** `0x4dc0f7105D872273492f8Ac486e78e7A28Ed3d54`, deployed on October 10, 2026: who registered an app, a hash of its manifest that anyone can recompute from the public listing, the scopes each community accepted and an optional one-time price paid in the test token, split 95% to the developer and 5% to Orb in code with no admin, pause or take-back ([docs/orb-bot-registry.md](orb-bot-registry.md)). Orb installs a priced app only after the community's payment is on chain.
- **Orb Council v2** `0x00C23Dc1c24a67e35d929146e9cFB8aFd54ec82F`, deployed on October 10, 2026 before any proposal existed on the first version: a voice is the square root of the ORB locked, a vote that flips the lead near the deadline extends it, an author can withdraw before the first vote, and the team can flag spam without moving funds ([docs/orb-council.md](orb-council.md)).
- The ORB token, its faucet, Holder Pro, the Passport registry, the open communities registry and the chat archive contracts, from earlier work.

## Why Monad

Saving a community's history is a lot of small writes, so the chain has to be cheap and quick, and it has to speak the tools people already have. Monad keeps Ethereum addresses, transactions and libraries, so Orb uses ordinary wallets and ethers instead of inventing custody. Writes are batched: an entry carries many messages and a pointer to the previous entry's block, so a reader walks the chain one block per entry, which also fits a public RPC that answers `eth_getLogs` over at most a hundred blocks. The four transactions of a full rehearsal (open, two entries, stop) cost about 0.07 test MON at 102 gwei, and a 100,000-message benchmark is in [docs/orb-ledger.md](orb-ledger.md).

## How to test it

1. **Live, in five minutes** (once the host serves this build): open `/judges` on https://joinorb.online. The page reads the chain at that moment (block, token supply, missions, Council, Passport epochs, the Open Ledger contract compared with its published build), joins the demo community as a guest, and walks through the reading described above.
2. **From a clone, with no configuration:** `npm ci`, then `npm run ledger:read -- --ledger 0xe6e2ea5420d807803cb2b5ebdd08786d324d1b95916ffcf6505b183c4eae3028`. It reads the demo ledger straight from Monad testnet and prints what it verified.
3. **In the independent client:** open `/independent?tab=ledger` and press **Read the demo community**. That client is a static bundle that talks to the RPC and not to Orb.
4. **Build an app:** open `/developers`, which shows the five-minute path, the SDK and the apps people listed; `/apps/<id>` is the page an invite link opens, with the manifest a registry record can be checked against. `npm run bots:registry:test` runs the registry contract, its reader and the server's paid-install gate on a local EVM, and `npm run bots:registry:test:ui` drives the apps panel in a browser with real transactions on that chain.
5. **The tests:** `npm run ledger:test` (contract, reader, keeper and the reading page against a local EVM), `node scripts/test-judge-status.mjs` (the judge page's checks), `npm run import:test`, `npm run tips:test`, and `npm run check:production` for the whole offline suite.

## What is honest about it

- It is Monad **testnet**. The ORB token and test MON have no promised value, and the Open Ledger is not offered as a custody or storage guarantee.
- The keeper reads a message's text before it writes it. A private ledger is private from the chain and from every reader without the recovery code, **not from the operator**.
- A deletion hides a message from the reading but cannot erase what an earlier entry already holds. In a public ledger that text stays readable, and the owner is told so before signing.
- The filter that removes keys and contact details is a safety net, not a guarantee.
- A long history reaches the chain at a daily allowance, which can take weeks for a very large community.
- The demo ledger's owner is the testnet deployer wallet, and the keeper that wrote it uses the same key, so a deployment of this build should give the keeper its own key before real communities turn the ledger on ([docs/orb-ledger.md](orb-ledger.md) says how).
- The tips and the importer are covered by offline and browser tests on a local EVM and fixtures. No tip has been sent from the app with a real Privy wallet on testnet, and no real community's history was imported for this submission: the demo ledger holds an invented sample.

## AI assistance and what predates the build window

Orb reuses the existing Orbita social and desktop foundation, which is disclosed in the [README](../README.md#build-window-ai-assistance-and-licensing). AI coding assistance included OpenAI Codex, Anthropic Claude (through Claude Code), Qwen and Qoder; the Open Ledger, judge mode, tips and the Discord importer were written mostly with Claude, at the founder's direction, and reviewed and tested. The assistant inside the product uses a free OpenRouter configuration, not a guaranteed Tencent model, so no Tencent-sponsored bounty should be selected. The video's narration is a synthetic voice.

## The video

`outputs/demo-v3/orb-demo.mp4` is **2:42**, inside the three-minute limit, 1080p with subtitles beside it.
[docs/orb-demo-video-script.md](orb-demo-video-script.md) describes the cut beat by beat, how it is made and what the recorder draws itself. It is
recorded from a local production build against the real testnet: the keeper writes a real transaction to the Open Ledger, the receipt on screen is
what the Monad RPC returned, a second browser joins a voice room with the stage open and is admitted from the raised-hand queue, and the saved
community is then read back by a client served from another origin while Orb's own server is stopped. The founder uploads it and puts the link in
the README and in the form.
