Skip to content

ATS Overview

ATS (Allfeat Time Stamp) is the Allfeat service for anchoring creative works on the blockchain. A single registration produces a permanent, verifiable on-chain record linking an audio asset to its creators and metadata.

You can integrate ATS into your platform in two ways. Pick the one that matches your architecture.

PropertyWidgetAPI
Where it runsYour frontend (web component embedded in your page)Your backend (server-to-server HTTP)
End-user interactionYes — the widget renders the form and the upload UINo — you build any UI; the API never touches the browser
Credentialsite_key (public) + secret_key (server-side, mints JWTs)afo_sk_live_… bearer token (server-side only)
Session modelShort-lived JWT (~5 min, one-time-use) issued per user actionLong-lived bearer token bound to the organization
Audio handlingThe widget uploads via a presigned S3 URL directly from the browserYour backend gets a presigned S3 URL and uploads server-side
End-user identityAbstracted; user holds the access codeAbstracted; you correlate via opaque external_user_ref
WebhooksNot exposed (use the allfeat:complete Custom Event)Yes — signed work_registered / work_updated / work_failed POSTs
Update flowUser enters access code in the widget UIYour backend calls /v1/organizations/{org}/works/{id}/versions/...
Best forWeb platforms wanting a drop-in registration UIB2B partners with their own UI, batch flows, or non-web clients
  • You have a web frontend and want a ready-made registration UX without building forms, upload flows, or progress tracking yourself.
  • Your end-users register their own works and you want them to hold their own access codes.
  • You’re fine with direct browser → Allfeat uploads (CORS-friendly).
  • Your registrations come from a backend pipeline (mass-ingest, batch jobs, cron) with no user-facing browser flow.
  • You’re integrating from mobile, desktop, or non-browser clients.
  • You want signed webhooks on completion to drive your own state machine.
  • You need idempotency keys and explicit control of every retry.

Each registration or version update has up to four fee components:

FeeDescription
Network feeBlockchain transaction cost, estimated via dry-run simulation
DepositOn-chain storage deposit for the work or version
Service feeAllfeat platform fee (applied as basis points on the transaction)
Storage feeMedia storage fee — free up to 10 MB, increases progressively above

What actually gets debited from your organization’s credit balance depends on the network:

  • Mainnet — full price is debited (network fee + deposit + service fee + storage fee).
  • Testnet — chain fees are waived; only the storage fee is debited (so any file ≤ 10 MB is free).

Fees are deducted automatically; calls fail if your balance is insufficient. Pricing details are returned during the prepare phase of the registration flow.

Allfeat runs two parallel chains. You pick the target on every call via the network field.

NetworkUse it forBlock timeWhat you pay
testnetDevelopment, integration tests, staging12 sStorage fee only (chain fees waived). Files ≤ 10 MB cost 0 credits.
mainnetProduction registrations6 sFull price debited from org credits.

Asset files up to 500 MB are accepted on both networks. See Networks for details.