Stack
Where each call goes
REST acceptance, playable audio, payment settlement, and a confirmed chain transaction are separate results. A savedchain_song_id is a catalog link, not a chain receipt.
Portable IDs and data
Song, stem, take and voice IDs are opaque strings. Store them as returned. Chain song IDs are decimal strings; convert them tobigint when calling a contract. Durations and timeline bounds use seconds. Onchain prices and session budgets use six-decimal USDC atomic units.
New music is private in the catalog. That setting does not encrypt its media URLs. Your product should authenticate users, protect session tokens, and enforce access to its own project UI.