upstream

Start

Overview

Point a coin’s creator fees at a GitHub repo, a YouTube channel, a Twitch or a Kick stream. The money waits until the owner proves the handle.

Every trade of a pump.fun coin pays a creator fee. Normally it goes to one wallet, chosen at launch by whoever launched. That is a poor fit for a very common case: a fan launches a coin for a streamer, a channel or a project that has no idea it exists. Either the fees go to the fan, or they go nowhere useful.

Upstream makes the target of the fees an account on another platform. The fees sit in a vault. When the owner of that account shows up, they prove it, and the vault pays out everything that was waiting. From then on, fees stream straight to them.

The problem

  • The people who earn attention (streamers, maintainers, channels) are rarely the people who launch coins about them.
  • Sending fees to "the right person" needs a way to prove who the right person is. A wallet address does not prove it. A bio does.
  • If nobody claims, the money should not vanish or be taken by the first person who asks.

The idea in five lines

  1. Attach. A coin is created with a vault as its fee destination and an account as its target: twitch.tv/name, kick.com/name, youtube.com/@name or github.com/owner/repo.
  2. Wait. Fees accrue in escrow. Nobody can take them.
  3. Prove. The owner asks for a code. The code is derived from their wallet, so it can only ever pay that wallet. They paste it somewhere only they can edit: a bio, a description, a file in the repo.
  4. Attest. Independent attesters read the public page, see the code, and sign what they saw.
  5. Release. With enough signatures the vault pays out what was waiting and binds the wallet. If nobody ever claims, the fees go back after a delay the coin chose at launch.
Why a leaked code is harmless

The wallet is part of what the code is computed from. If someone copies a code off the page and asks for the fees to go to their own wallet, the vault computes a different code for that wallet and refuses. See Proof of handle.

Four platforms, one rule

PlatformWhere the code goesRead live from a page
GitHubfile .upstream in the repo, or the account bioyes
YouTubechannel descriptionwith an API key (the CLI needs none)
Twitchchannel bioyes
Kickchannel bioyes, but Kick may block some browsers

pump.fun supports GitHub accounts for fee sharing in its own app, and its program has a social fee mechanism in which one claim authority key signs every release. Upstream covers GitHub too, adds the three streaming platforms, and replaces the single signer with independent attesters. See pump.fun integration.

Where it stands

The engine, the attester network software, the CLI and an on-chain vault program are written. The program is tested on a local Solana runtime, including a differential test that runs random histories through the program and through the JS engine and requires identical results to the lamport, and an integration test against the real pump.fun programs on a fork of mainnet. All of it is listed, with numbers, in the verification report.

What does not exist yet: an independent audit, a deployment to a real cluster, and attesters run by independent operators. The vault on this website is the JS engine running in your browser, and the attesters on it are demo keys. See Limits and risks.