TestnetTest network, no real money. Tap for free test funds.
For developers

Build on Rising Tide

You bring the product idea and the UX. The protocol handles publishing, collecting, payments, identity, and provenance.

One SDK

@rising-tide/sdk is the only backend your app needs. TypeScript-first. Drop it in, wire one tarball, ship.

Any product type

Writing pages, open letters, event tickets, prediction brackets, messages in a bottle. Same composable primitives. Add a new domain by registering one config; the rest is free.

Revenue built in

Every product type ships with revenue splits, funding-group allocations, and on-chain provenance by default. The chain executes those splits on every collect.

A published product, and the split that pays for it

One call. The revenue split is an argument to it, not a second system you run.

import { RisingTideSDK } from "@rising-tide/sdk";

const rt = new RisingTideSDK({
  baseUrl: process.env.NEXT_PUBLIC_RT_API_URL!,
  apiKey: process.env.NEXT_PUBLIC_API_KEY,
});

const { data: page } = await rt.smartProducts.createPage({
  appId: 7,
  productTypeSlug: "haiku",
  title: "Signal in the Static",
  author: "ST1PQ...GZGM",
  content: { line1: "...", line2: "...", line3: "..." },
  maxEditions: 100,
  minFeeStx: "1000000",
  minFeeSbtc: "1000",
  contributions: {
    styleSetId: 4,
    collaborators: [{ address: "ST2CY...9BR1", percentage: 20 }],
    fundingGroups: [{ id: 2, percentage: 10 }],
  },
});

const { data: editions } = await rt.smartProducts.listEditions(page!.id);
  • contributions is the whole split. Name a collaborator and a cause here and the contract pays them on every collect, with no ledger of your own to keep in step.
  • productTypeSlug picks the shape. A haiku, an open letter, a ticket and a bracket are the same call with a different slug and a different content object.
  • Every service method resolves to a { data, error } union, so a failed call is a value rather than a throw.

The SDK is headless: a typed client plus transaction-building helpers, with no React and no UI. The React surface - data hooks, authentication, the app shell, design tokens - ships from the companion @rising-tide/ui package. Take it, or bring your own brand.

Not built yet

Anything that can be numbered and owned can be built here.

The protocol does not know what a page is. It knows a numbered thing, who made it, and who gets paid when it sells.

Music
A track, a stem, a session. Everyone who played on it is written into the split before it sells.
Games
A match, a season, a run. A result that settles in the open, against picks made before it started.
Film
A short, a cut, a scene. The crew is paid from the same sale as the director.
Photography
A print, an edition, an archive. Numbered, owned, and resellable without asking anyone.
See the one call that makes any of them

Under the hood

  • Stacks blockchain for identity, ownership, payments, and contracts
  • A saved copy the apps read, plus owner-signed permanent storage the holder writes themselves, to a destination they pick
  • Privy for hosted sign-in (Google / X) plus BYOW for Stacks wallet users
  • Chainhooks ingest on-chain events into a searchable index
  • Composable revenue splits live in the contract itself - no off-chain ledger to drift

The protocol is open.
Bring the idea.

Every app on the front door is a client of the same API you would be calling. The docs take you from an empty project to a published product.