Monorepo for the Miso platform-layer TypeScript SDKs.
| Package | Description |
|---|---|
packages/effect |
@misofm/effect — deprecated, superseded by sui-effect; 0.2.0 is a code-identical final release whose README carries the migration table. |
packages/musicos |
@misofm/musicos — typed bindings, queries, event decoders, and PTB builders for the works object model (Composition, Recording, Release, Track). |
packages/partyos |
@misofm/partyos — typed bindings, queries, and PTB builders for the Party object model (Party, admin cap, group membership). |
packages/platform |
@misofm/platform — a sui-effect extension (the Miso service): the complete client SDK for the Miso platform layer — work and Party extensions, catalog/artist/wallet reads, record production and sale, and Vault custody/Actions/plugins — composed over @misofm/musicos and @misofm/partyos. |
packages/streaming |
@misofm/streaming — the miso-hls/v1 streaming transcode contract (ladder, segment policy, Quilt item naming) plus a browser player entry point. |
packages/transcoding |
@misofm/transcoding — deterministic AAC-LC fMP4 HLS transcoder that produces and verifies the miso-hls/v1 layout. Node only, FFmpeg required. |
This root package.json is private; each package under packages/* is
published independently. See each package's own README for install
instructions and API surface.
The three Sui packages split along one rule:
@misofm/musicosand@misofm/partyosare the object models. Everything Miso offers on top of them is platform.
@misofm/musicos binds only the musicos Move package (Composition, Recording,
Release, Track) and @misofm/partyos only the partyos Move package (Party,
admin cap, group membership) — the permissionless object models anyone can
build on. Everything else Miso's own product adds on top — work and Party
extensions, royalty primitives, Vault, Actions, and every product-specific
workflow — ships from @misofm/platform. Generated bindings follow the same
split: packages/musicos/src/contracts/ and packages/partyos/src/contracts/
hold only their object model, and packages/platform/src/contracts/ holds
everything else. sui-codegen.config.ts
is the source of truth for exactly which Move package lands in which tree —
see its packages list rather than looking for an enumeration here.
Every SDK exposes Effect v4 in its public API: reads and
submissions return Effect values that require the Sui service from
@unconfirmed/sui-effect (Miso also
needs SuiGraphQL) and fail with tagged errors (Effect.catchTag); the Promise
registrations (musicos(), partyos(), miso(), used as client.$extend(...)) provide
that service themselves so their methods have no requirements; PTB builders stay synchronous.
Each package's ./errors subpath lists its failures. The packages peer on
stable Effect >=4.0.3 <4.1 (and @unconfirmed/sui-effect >=0.3.0 <0.4.0); install
effect and every @effect/* package at the same 4.0.x.
This is a Bun workspace.
bun install
bun run typecheck # across all packages
bun run test # across all packages
bun run build # across all packagesApache-2.0 — see LICENSE.
Events retain IDs, capability provenance, amounts, financial snapshots, flags, counts, and short bounded labels. Full lyrics, descriptions, bios, CTA/DSP content, and large lists stay in source objects rather than being copied into receipts. Fetch object state or transaction inputs/effects when those details are needed.
This coordinated V1 schema update changes wire layouts: Release publication uses
assigned_track_count instead of track relationship/split arrays; Party creation uses
member_count; coin receipt actions use counts; extension decoders omit bulky content.
The three distinct Recording credit-removal events remain available.
Pay carries the target type through event generics (no target_type field). Its
metadata is optional: up to 256 BCS bytes remain inline; larger values yield
metadata: null and a 32-byte metadata_digest (Blake2b-256 of the original BCS).
These bindings require the matching V1 source rollout; bundled deployment IDs are unchanged.