Documentation

Don't trust us. Verify. This page states the exact rules the money follows, links the published code and tests that pin them, and tells you how to check everything yourself. Every section carries its real status; nothing is labeled trustless before you can verify it.

LIVE

Campaigns, submissions, owner approvals, the payout engine, on-chain payment verification for pay-as-you-go, zero platform fees, and the published verification repository.

IN BUILD

Platform view-tracking APIs (YouTube first), automatic on-chain payment detection, automated 72h pause enforcement, and the escrow program for locked campaigns. During the pilot, view counts are set by campaign owners from each post's public counter before they approve.

01 · The payout formulaLIVE

Every amount is an integer in micro-USDC (6 decimals). Floating point never touches money, and rounding always floors: never up, never in anyone's favor. The exact implementation is published in payments.ts.

payout = floor(views × rate_per_1k / 1000) if payout < min_payout → payout = 0 // below review threshold payout = min(payout, max_per_post) // per-post cap fee = 0 // launch: zero platform fees cost = payout // clipper receives payout, in full
ViewsRateBoundsClipper getsOwner pays
50,000$2.00/1Knone$100.00$100.00
1,000$1.50/1Kmin $2$0 (below min)$0
10,000,000$1.50/1Kmax $300$300.00 (capped)$300.00
1$0.07/1Knone$0.000070 exact$0.000070
02 · Vault rules (locked campaigns)SPEC FINAL

A locked campaign's vault is a state machine with exactly four operations. Anything not listed here is impossible. Not forbidden, impossible. The full specification is published in ESCROW_SPEC.md.

OperationWhoRule
fundAnyoneDeposit into the vault: owner tranches, creator-fee routing, community crowdfunding. Permissionless.
approveOwner onlyReserve a payout for a specific clipper. Allowed only if amount ≤ balance − already reserved.
claimThe approved clipper onlyWithdraw a reserved payout to their own wallet. Permissionless timing; no one can block it.
refundOwner onlyReclaim leftovers: only after closing the campaign, only after 48h, and only balance − reserved.
Invariants, always true: 0 ≤ reserved ≤ balance · a refund can never touch reserved funds · an approved payout can only ever reach the clipper it was approved for. There is no withdraw-to-platform path in the instruction set.
03 · Proven by testsLIVE

The accounting above is not a promise in a whitepaper. It runs in this app today and is published verbatim at github.com/Clippio/clippio-core, pinned by 20 automated tests:

  • USD → micro-USDC conversion is exact, including classic float traps ($0.07/1K = exactly 70 micro).
  • Rounding only ever floors; payouts and fees are never rounded up.
  • Minimum thresholds zero out sub-minimum clips; per-post caps hold at any view count.
  • Fee edges hold at 0% and 100%; batch fees never shortchange a clipper; payouts always arrive in full.
  • Vault invariants survive 2,000 randomized operations (fund/approve/claim/refund in random order) without ever breaking balance ≥ reserved ≥ 0.
  • Refund can never touch approved-but-unclaimed payouts, tested explicitly.
  • Batch transfer transactions encode every amount correctly, verified byte-by-byte inside the built instructions.
$ git clone https://github.com/Clippio/clippio-core && cd verify $ npm install && npm test Test Files 1 passed (1) Tests 20 passed (20)
04 · How pay-as-you-go payments are verifiedLIVE

Clippio is not in the payment path at all, not even as a transaction builder. When creating a campaign, the owner registers the wallet they will pay from. To pay approved clips, they use the payment sheet (each clipper's wallet and exact amount, with copy buttons and Solana Pay links), send the transfers from their own wallet app, and paste the transaction signature. Clippio then fetches the transaction from Solana and matches it:

approved payout: { clipper wallet, exact amount } on-chain transfer: { sender, destination, amount, signature } sender == the campaign's registered payment wallet destination == the clipper's USDC token account → marked PAID, amount == the approved amount transaction linked publicly anything else → stays unpaid

Paid status is chain-derived. Every paid submission links its transaction; anyone can open it and check sender, recipient and amount. A pasted explorer link proves nothing by itself: a payment counts only when the on-chain transfer matches the approved payout, and only when it comes from the campaign's registered payment wallet. Transfers from any other wallet will not match, which is exactly what keeps the public payment record meaningful.

In build: automatic detection (watching the chain so owners don't need to paste anything) and automated enforcement of the 72h unpaid-approvals pause, which is currently platform policy applied during the pilot.

05 · The escrow programSPEC FINALIN BUILD

The vault rules in section 02 are final and their accounting is already implemented and tested (section 03). The on-chain Anchor program that enforces them is in development against the published specification. Until it ships, locked campaigns show vault: pending and pay-as-you-go is the live mode. We will not label anything "trustless" before you can verify it. Here is the exact path:

  1. 1
    P1: Guarded mainnet

    Program ID published. Upgrade authority held by a time-locked multisig, publicly announced. Any upgrade is visible before it can activate, leaving time to claim and exit.

  2. 2
    P2: Soak & review

    Weeks of live campaigns plus external review of the public source.

  3. 3
    P3: Renounce

    Upgrade authority set to None, freezing the code forever, plus a verified build, so the deployed bytecode provably matches the public source.

# check the upgrade authority yourself, any time: $ solana program show <PROGRAM_ID> # vault addresses are PDAs, derived off the ed25519 curve. # no private key exists for them. for anyone.
06 · The honest trust table
Pay-as-you-go (live)Locked vault (after renounce)
Can Clippio take the funds?It never touches them: payments happen in the owner's own wallet app, wallet-to-wallet. Clippio only verifies them on-chain.Impossible: no key exists, and no instruction routes funds to the platform.
Can the owner rug approved payouts?They can refuse to pay; the campaign pauses and the record is public forever.No. Refund cannot touch reserved funds. Enforced by code.
Can Clippio fake your views?The owner approves against the same public post link you submitted.Same; approvals are explicit and on-chain.
What you ultimately trustThe owner's public payment record.The code, which you can verify yourself.

Remaining risks, stated plainly: for locked campaigns, deposit and claim transactions will be prepared by our interface, so always check what your wallet shows before signing. That's what the simulation is for. Pay-as-you-go payments never involve our interface at all. And until the program's upgrade authority is renounced, upgrades are possible, which is exactly why they are time-locked and public.

07 · FeesLIVE

Zero. Clippio charges no platform fees during launch: creating campaigns, joining, submitting and payouts are all free. Clippers receive 100% of what they earn; owners pay exactly the payouts, nothing more. The fee machinery exists in the published code, is tested at every edge, and is set to PLATFORM_FEE_BPS = 0. If fees are ever introduced, they will be a percentage added on top of payouts, never deducted from clippers, and announced here first.

08 · Verify the codeLIVE

Everything the money touches is published at github.com/Clippio/clippio-core under the MIT license, verbatim from what runs on clippio.fun:

FileWhat it proves
payments.tsThe payout formula, the fee machinery at 0 bps, the vault accounting state machine, and the batch transfer builder. Integer BigInt math throughout.
payments.test.tsThe 20 tests from section 03. Run them yourself: npm install && npm test.
ESCROW_SPEC.mdThe complete escrow program design: state, the six instructions, invariants, and the renounce path.

What is intentionally not public: the web application's operational code and the fraud-detection heuristics. Publishing those would hand bot operators a manual for gaming view verification. The money paths above do not depend on them: no heuristic can move funds. When the escrow program reaches guarded mainnet (P1), its source and program ID will be published in the same repository.

Questions or holes in the logic? Reach us through the official Clippio X account. We want to hear them.