# Community missions and business pilot

> Current status reviewed September 29, 2026. See [the release index](README.md) for shipped versus planned features, network, wallet signing and deployment boundaries. Older dated experiments below are retained as history.

Web3 Orb testnet pilot. The ORB token and mission contract are deployed on Monad testnet.
No mainnet token or subscription checkout is enabled.

## Product loop

Projects sponsor useful public work. Members submit a public HTTPS proof link.
The sponsor evaluates the published criteria; accepted work reserves a reward
for that wallet. The contributor withdraws it without the sponsor's permission.
The contract permanently records sponsor approval, not independent quality or
unique human identity. Mission counts do not automatically increase Passport scores.

`/?view=missions` opens the new workspace; `/missions` is a standalone view.
Discover, My work and Organize filter one bounded page of 20 missions. Only a
selected mission loads its submission page. Visible panels refresh every 30
seconds, pause while hidden and refresh after writes; there is no per-card DB
polling. Labels are sponsor-provided, not verified ownership of an Orb community.
All mission details, links and wallet addresses are public onchain. No chat or
private message content is collected or automatically copied into a mission.

## Escrow accounting

- Uses **test ORB** in this deployment, chain 10143 only. Funding requires an exact-budget
  allowance; no trading key. Native MON mode remains supported for older deployments.
- Exact budget = slots × gross reward. Slots 1–50; duration 1–29 days in the UI.
- Net = gross minus floor(gross × 5%). Approval reserves net in recipient credits
  and accrues the fee. A later withdrawal is a separate wallet-signed action.
- Sponsor review only; one submission per wallet; no self-submission by sponsor.
- No promise of automatic approval, slot reservation or a reward for every submission.
- The review window ends seven days after submissions close. Then the sponsor
  may refund unused funds to their own credits, without a fee on unused funds.
- An accepted reward cannot be revoked or refunded to the sponsor, even if the
  contributor has not yet withdrawn. Credits have no artificial expiry.
- Pull payments and a reentrancy guard isolate failing receivers. There is no
  admin sweep, upgrade function or arbitrary-call gateway. The fee recipient is
  fixed at deployment and can withdraw accumulated fees only.
- The client simulates exact transactions and verifies runtime bytecode/chain.
  Pending receipts are wallet-scoped and survive reloads. A changed account must
  not inherit another wallet's pending hash.

These controls do not prevent Sybil accounts, collusion, subjective review or
malicious external proof links. Public campaigns need moderation and clearly
defined acceptance criteria. This testnet prototype is not an audited mainnet
contract or a legal escrow/dispute-resolution service.

## Startup experiments

Organize exposes a collapsible business panel and persisted pilot-interest requests.
Initial proposed prices: Community Pro $19/month; AI reviews $5/100; campaign
setup $99/campaign, excluding rewards; 5% mission service fee. Only the mission
fee is in the test contract. None is a production subscription or real revenue.

`/api/orb/business` authenticates the application session, blocks foreign-origin
writes, restricts plan names, limits request size/rate and returns only the user's
own requests. Repeated interest is idempotent. Cancellation removes only that
user's request. No billing, signing, trading prompt or wallet key is stored.

ORB is deployed with fixed 100M supply and allocation vaults. The 20% founder/team
allocation has twelve months without release followed by 36 monthly installments.
Holder Pro is active on testnet: the current community owner locks 100 ORB for
30 days to access organizer metrics and report exports. Expanded features and
production thresholds remain proposals needing cost/demand validation. Council
uses a separate refundable voting escrow and always requires team approval.

Trading execution fees remain unimplemented: do not insert a second transfer,
change recipients or pretend an unsupported venue fee is collected. The current
AI and trading signing scopes remain unchanged.

## Setup and validation

```sh
npm run missions:compile
npm run missions:test
npm run business:test
npm run missions:test:ui
npm run missions:deploy:check
```

The UI test supports `ORBITA_PLAYWRIGHT_PATH` and `ORBITA_BROWSER_CHANNEL`. It
uses a real local EVM with two browser wallets and a simulated Privy adapter.
This is not live Privy authentication or a Monad throughput benchmark.

The current ORB mission contract is deployed and recorded in
/token/missions.deployment.monad-testnet.json. For a separately reviewed new deployment use
`npm run missions:deploy:testnet` with the existing private testnet deployer and
an explicitly reviewed `ORB_MISSIONS_FEE_RECIPIENT`. The script saves transaction
intent before broadcast and resumes the same hash. It adds only the public
`ORB_MISSIONS_CONTRACT` to `.env.arena.local`; never commit that private file.
The script also records ORB_MISSIONS_ASSET. Never overwrite an existing deployment to reset state.

Apply database migration 0042 to the isolated Orb database for pilot requests;
never use the normal Orbita database. The preview startup script migrates its
existing local file automatically. The mission board deliberately shows an
unconfigured state rather than fake tasks or fake funded rewards.

English whitepaper source: `docs/orb-whitepaper.en.md`. PDF builder:
`scripts/build-whitepaper.py` (ReportLab + svglib + pypdf). The generated PDF is
served at `/whitepaper/Orb-Whitepaper.pdf`: the local preview serves the current
PDF, and the public origin serves whatever the last deploy shipped, which may be
an older version than this repository's.
