How Owarine fits together
The hosted DevNet app, its venue operations, ledger contracts and read models.
Owarine runs at owarine.xyz on Canton DevNet. Its test funds have no cash value. The browser requests a firm quote, your seat accepts it, and Daml records the position. Oracle parties sign boundary prices. The resolver records the result and the settler pays it.
System context
The browser and native app share the venue's server routes. The phone app exists in source; public distribution and physical-device acceptance are separate, unverified claims.
Loading diagram…
Read diagram source
flowchart TD
browser[Browser] --> web[Next.js web and API]
phone[Expo phone app] --> web
web -->|Quotes and venue reads| ops[Ops actors]
web -->|Seat reads and commands| ledger[Noders DevNet participant]
ops -->|Venue commands and updates| ledger
sources[Price sources] --> ops
x[X mentions and replies] <-->|Optional x-relay| ops
ops -->|Projector| db[(Postgres)]
web -->|Projection and seat leases| db
| Piece | Responsibility |
|---|---|
web | Trade ticket, seat authentication, Portfolio, proof and server routes. |
mobile | Expo client using the same seat and trading APIs. See Phone app. |
packages/core | Market policies, registry and integer money arithmetic. |
packages/markets | Builds venue, seat and agent operations. |
packages/ledger | JSON Ledger API v2 client: reads, submissions, deduplication and updates. |
| Six Daml packages | Contracts for cash, quotes, positions, settlement, tickets, agents, games, Canton Coin and seat transfers. |
services/ops | Roller, oracle feeders, resolver, pricer, issuer, settler and other venue actors. |
packages/db | Ledger projection, seat leases and service journals. A database row cannot change a ledger outcome. |
Follow a trade, a seat, the prints, contract visibility or deployment.
The shared participant boundary
The venue, resolver, oracle and seat parties use one shared participant. Its configured ledger user can act as those parties. The browser's signing key authenticates a request to Owarine; the server submits the Daml command for the party attached to that lease.
The server must enforce that mapping. Seat routes derive the party from the current lease and scope history to the lease's start offset. The no-party-from-request invariant checks that routes do not take a party supplied by the caller. This is an operator and server trust boundary alongside Daml's contract rules.
A Leg has two stakeholders: its owner and the venue. Other seat parties cannot query it. The venue is the counterparty and can see it. See Who sees what.
Evidence and availability
The repository records a first-call DevNet journey on 6 October 2026, including payout, void and stale refunds. A test Canton Coin deposit/withdrawal round trip is recorded on 7 October. These dated runs do not prove every displayed lane, game or integration works today.
Use Availability for the boundaries and Status for current service readings. Earn has left the public product; its historical contracts remain in source.