Docs

How Viewstock works.

The loop

Viewstock is a campaign marketplace. A brand funds a campaign in a tokenized stock and sets a rate in dollars per 1,000 verified views. Creators join, post clips on the platforms the campaign accepts, and submit the links. Views are tracked where the post lives, verified, and paid out in the campaign's stock.

  • A campaign is created with a rate per 1K, a budget, a reward ticker, the platforms it accepts, a minimum view count and a per-clip cap.
  • Funding converts the budget into the reward stock and moves it into escrow. The campaign goes live.
  • A creator submits a post URL. The platform adapter validates it, fetches the post and checks the handle against the creator's connected account.
  • Each refresh appends a metrics snapshot, re-scores the clip and settles what is newly owed.

Payout math

raw = views / 1000 × rate, capped per clip, only once the clip has passed the campaign's minimum. What is paid is the delta against what the clip already earned, and never more than the remaining budget or the escrow. The dollar amount is converted to stock at the live price when it settles. Settlement is idempotent: running it twice pays nothing twice.

Verification and fraud

Views are counted once per post and never go down. Every refresh scores the clip — velocity, plausibility against the platform, ownership — into LOW, REVIEW, HIGH or FRAUD_SUSPECTED. From HIGH up the clip is flagged: it stops earning until a moderator clears it, and earnings already settled stay settled.

The stock

Rewards are tokenized AAPL, NVDA, TSLA, GOOGL, META, AMZN and MSFT. Rates are always shown in dollars; the amount of stock is worked out per payout at that moment's price. After a payout lands, its value moves with the stock.

Campaign lifecycle

  • Funding — created, not yet paid for.
  • Active — escrowed and accepting clips.
  • Paused — the brand paused it; tracking continues, payouts wait.
  • Depleted — spent its budget. Live clips are finalised as paid.
  • Ended — reached its end date or was ended by the brand. Unspent escrow returns.

Providers

Everything external sits behind an interface: a StockProvider for prices, balances, deposits and payouts, and a SocialPlatformProvider per platform for validation, metadata, view counts and ownership. In development both are labelled mocks — every mock ledger row says so, and no chain transaction is ever sent or pretended.

Refreshing

Views settle whenever a clip or a submissions list is viewed, and on a daily tick. Nothing depends on a creator being online.

Open app