Skip to content
misofmPublic

About

Typed reads and transaction builders for the Miso platform layer on Sui — pressings, listings, and records.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

misofm/sdks

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 object-model / platform boundary

The three Sui packages split along one rule:

@misofm/musicos and @misofm/partyos are 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.

Effect

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.

Development

This is a Bun workspace.

bun install
bun run typecheck   # across all packages
bun run test        # across all packages
bun run build       # across all packages

License

Apache-2.0 — see LICENSE.

V1 event payload policy

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.

About

Typed reads and transaction builders for the Miso platform layer on Sui — pressings, listings, and records.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages