PreviewCubicle has not launched yet. Numbers shown here are live demo data from a reference protocol.

CubicleDocs

What Cubicle is

Cubicle is the everything protocol. It builds whatever is capturing volume, attention and revenue on Solana right now, ships it, and moves on to the next thing when the market does. Every product it runs turns its fees into yield for the people holding it, and sends a share to the desks, which are the one asset that captures all of it.

Every trade on chain pays a fee to somebody. On almost every venue that somebody is the team, and holders get a token and a roadmap. We route it the other way. Fees are claimed automatically and spent on assets that go straight to holders, usually within the hour they were earned.

The products that do that today.

The launcher. Coins launched here convert their creator fees into tokenised stock for their holders. We claim the fees about once a minute and spend 67.5% of every one buying the coin’s reward asset on the open market, then send it out pro rata. A coin can pay a single stock or rotate through a basket of them.

The desks.A desk is an NFT with a vault attached. A share of every product’s revenue, half of what $CUBE earns from its own trading, and most of what every new desk pays to mint go into a shared pot. When the pot fills it buys one stock and credits every live desk the same amount. You collect whenever you want, and the stock waits in your vault until you do.

Different products, same rule. Revenue arrives, and holders are what it gets spent on. Products come and go; the desks capture all of them.

All of it is on chain

Every payout is a transaction. So is every buyback and every burn. The running totals sit on the revenue page and the rewards page, and each row links to the transaction behind it, so you can check any figure here yourself.

The wallets

Every fee this protocol claims passes through one of these, and all of them are public. Nothing below is a claim you have to take on trust — open any of them and the transactions are the record.

WalletAddressWhat it does
Launcher rewards2k5h…pP5yClaims pump fees and buys the stock holders are owed
Meteora rewards4wYG…xhyLThe same, for coins launched on Meteora
Desk potKLR4…UnJuHolds the 10% every launch pays, plus half of CUBE's own fees, and spends it on stock for desk holders
Buyback5JVy…CveeBuys CUBE off the market and burns it, from every launch and from half of CUBE's own fees
ProtocolFSjV…Jdq6The share that funds servers, databases and APIs

The addresses the program itself runs on — the config, the collection, the rotation — are at the bottom of this page, read live from the chain.

Products, not a product

Desks and the launcher are what we run today. Neither of them is what Cubicle is.

Nothing on chain stays busy forever. Whatever has volume this month will have less in six, and a protocol built around one product has an expiry date whether it admits it or not. Plenty of them are, and they spend the whole decline saying volume is temporarily soft.

So we did not build it that way. Cubicle is the machine that turns revenue into holder rewards. A product is just whatever is feeding it at the time. When one slows down we build the next one and plug it into the same claim, the same split, and the same wallets. We do not sit and wait for the first one to come back.

The desks came first and still run, still buying stock every time the pot fills. The launcher came second and is where the volume is now. Whatever is third works the same way, because that part was built to outlast any single product.

That is why the revenue page is the one worth reading. It measures the machine, and the machine is what carries over.

What the token is for

$CUBE is our token. It is not a governance badge and it is not a fee discount. It does three things.

Revenue buys it and burns it. A fixed 10% of every creator fee we claim goes to a wallet that buys $CUBE on the open market and burns what it buys, every five minutes. The buy and the burn are two separate transactions on purpose, so you can see the purchase on chain instead of it cancelling out against the burn.

It is what a desk costs. Minting a desk burns $CUBE. No purchase, the tokens are just gone. That has destroyed far more supply than the buybacks have, and it cost us nothing, because the person minting paid for it.

Its own trading fees pay the desks. $CUBE is a coin that trades, so it earns creator fees like any other, and they are split 50% desk pot · 50% protocol. The pot’s half is spent on stock for desk holders. The other half is protocol revenue. It bought $CUBE back and burned it for a while, which was the same job twice: every launched coin already sends 10% of its fees to the buyback and nothing else.

All of it is on the revenue page, listed separately. Spending revenue and destroying supply are two different claims and they should not be added together.

What a launch is

A launch is an ordinary pump.fun coin. We do not run the market, hold the liquidity, or take custody of anything. The coin trades on pump.fun exactly like any other, and you are its creator there.

The one thing that differs is set at the moment of creation and can never be changed: the coin’s creator fees are assigned to our reward wallet instead of to you. That assignment is what funds everything below.

This cannot be undone

pump.fun revokes the admin once the fee split is written, so nobody can point those fees anywhere else afterwards. Not you, and not us.

You stay the creator on pump.fun and the coin is credited to you normally. What you give up is the fee stream, and what your holders get for it is below.

Where the fees go

Every trade on a launched coin pays a creator fee. A worker claims those fees roughly once a minute and splits them in the same transaction that claims them, so nothing sits unsplit.

ShareOf each feeWhat happens to it
Holders67.5%Buys tokenised stock for everyone holding the coin
Desk pot10%Paid out to Cubicle desks on their rounds
Buyback10%Buys CUBE off the market and burns it
Protocol12.5%Servers, database, APIs and infrastructure

Everything below the holders’ share comes out of the protocol’s side, never out of theirs. The buyback is funded by the protocol taking less.

A coin paired against a stock earns that stock rather than SOL, so its holders are paid in the asset the coin already trades against and nothing is swapped for them. The rest of the fee is swapped to SOL once and split four ways in a single transaction, because the desk pot holds lamports and the buyback exists to spend them.

Holders open their own accounts

A holder cannot receive a token until an account exists to hold it, and the chain charges a deposit to create one. The protocol paid that and it came to 6.2% of every fee ever claimed, against a budget of 2.5%, which emptied the wallet rounds were paid out of. Holders open their own now, from the coin page, at about thirty-seven cents per stock. The account is theirs and the deposit comes back in full if they ever close it.

The buyback is bought and burned in two separate transactions, so a burn that fails leaves the CUBE in the wallet to be burned next cycle rather than losing the purchase with it. Every buy and every burn is recorded as it happens.

What holders earn

The holders’ 67.5% accumulates as SOL against the coin. Once it reaches 0.1 SOL a round swaps the whole balance into the coin’s chosen stock and credits every holder their share.

The threshold exists because a swap costs a transaction fee and gives up slippage. Below a tenth of a SOL those costs are a real fraction of the trade, so a coin waits rather than paying them repeatedly on small amounts. A coin under the line is not being skipped. Its balance sits and grows until it crosses.

Shares are strictly proportional to how much of the coin you hold at the moment the round runs. There is no minimum and no rounding you out. A wallet holding a thousandth of a percent is credited a thousandth of a percent.

Who is excluded

The bonding curve, the AMM pool and the creator vault are excluded before anything is divided. They hold the coin without being anybody, and a young coin whose curve holds 98% of supply would otherwise send 98% of its rewards into an account that cannot spend them.

Credits are cumulative. Nothing expires, nothing is forfeited for not paying attention, and a wallet that never looks accrues exactly as much as one that checks daily.

Getting paid

Rewards arrive on their own, once. A round buys the coin’s reward stock and sends each holder their share in proportion to what they hold. There is nothing to claim and nothing to sign every round.

Solana charges a deposit for every token account, so a stock you have never held needs one opened before it can reach you. You open it from the coin page, once per stock, at about thirty-seven cents. The account is yours, the deposit stays in it, and closing it returns the deposit. A round divides among the holders who can receive it, so activating is worth doing before the next one.

One balance per stock, not per coin. Hold ten coins that all pay NKE and the NKE lands in one account.

Nobody is skipped for being small

Every holder is paid, whatever their share is worth. An earlier version required a share to cover the rent of the account it needed, which meant small positions were not paid late. They were not paid at all, and their share went to everybody else. That rule is gone.

Payouts are listed as they happen on the rewards page, one row per transaction, each linking to the transfer on chain.

Choosing the reward

A launch picks what its holders are paid in: a tokenised equity, a pre-IPO name, or a basket that rotates between several. There is also a curated list, and you can import any mint that passes an automated audit.

The audit refuses anything that cannot actually be paid out:

CheckWhy
Transfers work at allA non-transferable token can never reach a holder
No transfer feeA fee would silently shrink every payout
No transfer hookA hook can revert and take the coin's rounds down with it
A real market existsRewards are bought on the open market. No liquidity means no reward

Rejections are recorded along with the measured figures, so a token that passes today and rots later leaves a trail rather than a stale verdict.

What a desk is

A desk is an NFT that owns a vault. The vault fills with tokenised stock over time, and whoever holds the NFT owns whatever is in it. It is the second product here. The launcher is the first.

Minting burns — CUBE and issues a Metaplex Core NFT with a vault address derived from it. The burn happens inside the mint instruction, before the NFT exists. Solana transactions are all-or-nothing, so there is no version of this where somebody gets a desk without the supply going down.

You payAmountWhere it goes
Deposit— CUBEBurned
Surcharge0.5 SOL0.45 pot · 0.05 protocol
Account rent~0.023 SOLYour own accounts · refundable

The vault is what makes it a desk rather than a picture: it holds real stock, it is owned by the NFT rather than by you, and it travels with the NFT when you sell.

Activating one

A desk needs an open account for every stock in the rotation before it can be paid in them. Activating opens all of them in one press.

Why activation is one button

A desk with some accounts open and some not is skipped for the ones it is missing, every round, and looks live the whole time. That is why it is one button rather than one per stock.

The rent for those accounts is yours and comes back if you ever close them.

What a round does

When the pot crosses its threshold, a round converts the whole thing into one stock and credits every live desk equally. The rotation decides which:

Crediting is a single number. The program tracks how much of each stock has ever been paid per desk, and your desk tracks where it last collected. What you are owed is the difference. So a round writes one account no matter how many desks exist, and claiming yours does not move anybody else’s.

The invariant

the pool always holds at least the sum of what every desk has been credited and not yet taken. It is checked on every claim.

Selling

Selling the desk hands over everything: the NFT, its vault, the stock inside it, and anything credited but not yet collected. There is no exit instruction and no protocol marketplace. The vault is a PDA of the NFT, so ownership follows the NFT wherever it goes.

A royalty is set on the collection. It is a marketplace convention rather than something the chain enforces, so it is a behaviour, not a guarantee.

Launching from your own app

Two launchpads, and they need different amounts of help. A Meteora launch is built here, because its pool config is a fresh keypair this server holds. A pump launch is built entirely in your own code: the pump SDK does it, nothing is signed here, and the only call you make to this API is the one that lists the coin.

Pump

Nothing on this server decides whether a pump coin earns rewards. Its fee-sharing config does, on chain, and this protocol reads it rather than being told. A coin whose shares point at the reward wallet is paying holders whether or not anybody registered it.

01

Pin the metadata

POST /api/ipfs, the same call the Meteora flow uses. Generate the coin’s keypair first if you want the metadata to point at its own page.

02

Create the coin

createV2Instruction from @pump-fun/pump-sdk, with creatorset to the launching wallet rather than to us. Attribution on pump follows that field, and a coin credited to this protocol is not the launcher’s coin.

03

Point the fees here

createFeeSharingConfig, then updateFeeSharesV2 assigning the whole 10000 bps to the reward wallet in the accounts table. This is the step that makes it a coin on this platform. It is permanent: pump revokes the admin once it runs and no later transaction can change the split.

04

Send it as two transactions

All three instructions in one comes to roughly 1,280 bytes against a 1,232 limit and always fails. Create in the first, the two fee-sharing instructions in the second, with the mint keypair co-signing the first. Sign them together so the wallet prompts once.

05

Record it, if you want it listed

POST /api/coins. Required: mint, name, symbol, uri, creator, createTx. Add rewardMint and rewardSymbol for the stock it pays, or rewardBasket for an ETF, and pairMint if it trades against something other than SOL.

The config is read, not trusted

POST /api/coins checks the chain before it lists anything. A mint whose fee shares do not point at the reward wallet is refused with 400. A 409 means the config was not found yet, which is usually a node behind the slot that confirmed the launch rather than a mistake, so it is worth retrying a few times.

ETFs are a field, not a different launch

A basket coin is launched exactly as above. The difference is rewardBasket, an array of stock mints in the order they pay. The coin rotates through them, one per payout, and the rotation lives on this protocol rather than on chain, so it costs nothing extra at launch.

Meteora

A Meteora launch here is three requests and two signatures. This site’s launcher makes exactly the same calls in the same order, so anything it can do, so can you. There is no key, no registration and no allow list.

What the API will not do is sign for you. It builds the two transactions and partially signs the parts only it holds — the pool config’s keypair, and the launchpad’s identity — and hands them back. The coin’s own key and the creator’s are yours to add, so a response leaving this server can do nothing on its own.

01

Pin the metadata

POST /api/ipfs with a multipart/form-data body: file (the image), name, symbol, description, and optionally twitter, telegram and website. It answers with metadataUri. Generate the coin’s keypair before this if you want its metadata to point at its own page.

02

Build the launch

POST /api/meteora/launch with JSON. It answers with two base64 transactions, the config address, and a blockhash they are already built against.

03

Sign and send, in order

Add the coin’s keypair to the second transaction, have the creator sign both, and send them one after the other. The config has to exist before a pool can be created from it, so they cannot be combined and the second must not be sent until the first has confirmed.

04

Record it, if you want it listed

POST /api/coinswith the mint, the signature and what it was paired with. Optional: the coin exists and earns correctly without this, because the config decided that before the first trade. It is what puts the coin on this site’s board and payout feed.

// 2. build
const res = await fetch("https://otcdesks.cash/api/meteora/launch", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    mint:      mintKeypair.publicKey.toBase58(),
    name:      "My Coin",
    symbol:    "MINE",
    uri:       metadataUri,
    creator:   wallet.publicKey.toBase58(),
    quoteMint: "XsbEhLAtcf6HdfpFZ5xEMdqW8nfAvcsP5bdudRLJzJp", // AAPLx
    mode:      "high",   // or "low"
    buy:       "0",      // optional opening buy, base units of the quote
  }),
});

const plan = await res.json();
// { transactions: [b64, b64], config, blockhash, lastValidBlockHeight, quoteUsd }

// 3. sign and send, in order
const txs = plan.transactions.map((t) =>
  Transaction.from(Buffer.from(t, "base64"))
);
txs[1].partialSign(mintKeypair);              // the coin's own key
const signed = await wallet.signAllTransactions(txs);

for (const tx of signed) {
  const sig = await connection.sendRawTransaction(tx.serialize());
  await confirm(sig, plan.lastValidBlockHeight); // wait before the next
}

The quote decides everything downstream

A coin’s fees arrive as the asset it trades against, and that is what its holders are paid. Pick quoteMint carefully: it is written into a config that cannot be changed afterwards, for that coin, forever.

It has to be one of the assets this site offers — checked on the server, not taken from your request. A mint that charges a transfer fee is refused by the bonding curve itself, and one Meteora has not vetted has no token badge to pass.

The fields

Everything POST /api/meteora/launch takes. Strings unless said otherwise.

FieldRequiredWhat it is
mintyesThe coin's address. You generate the keypair and keep the secret; this only needs the public key to build against.
nameyesUp to 32 characters.
symbolyesUp to 13 characters.
uriyesThe pinned metadata, up to 200 characters. Step one returns it.
creatoryesWho pays and is credited as the pool's creator. Signs both transactions.
quoteMintyesWhat the coin trades against, and therefore what it earns and what its holders are paid.
modenoThe curve: "low" opens at $3K and graduates at $45K, "high" opens at $20K and graduates at $100K. Anything else, including nothing, builds the low one.
buynoAn opening buy, as a decimal string in base units of the quote. Omit it or send "0" for none.

Recording it, if you want the coin on this site, is POST /api/coins. It needs mint, name, symbol, uri, creator and createTx — the signature of the transaction that created the pool — plus pairMint, pairSymbol, rewardMint, rewardSymbol (all four are the quote, on a Meteora launch), venue: "meteora" and meteoraConfig, the config address the build returned. Nothing is taken on trust: the route reads the transaction off the chain and checks it. A 409means the signature has not been indexed yet, so wait a second and send it again — every other status is final.

And what comes back from the build: transactions, two the order they must be sent; config, the pool config this launch created; blockhash and lastValidBlockHeight, which both transactions are already built against; and quoteUsd, the price the curve was sized from.

What you cannot set

The fee is 2% and the split is fixed — 67.5% to holders, 10% to the desk pot, 10% to buying CUBE back and burning it, 5% to the protocol, 5% to CUBE holders, 2.5% held back for the token accounts a payout has to open. The launcher earns nothing and cannot be given a cut.

All of the graduated liquidity is permanently locked, by anybody’s definition including ours, and the fee claimer is written into the config at creation. None of it is a parameter.

The numbers

Value
Deposit— CUBE
Surcharge0.5 SOL
Launch fee split67.5% holders · 10% desk pot · 12.5% protocol · 10% buybacks
$CUBE fee split50% desk pot · 50% protocol
Payout threshold0.10 SOL of accumulated fees
Account rent~0.0031 SOL per stock, once. Yours, and refundable.
Royalty on a sale5%

The accounts

Every address this runs on, live from the chain.

Protocol wallet————
Collection————
Metaplex CoreCoRE…hX7d
Stocks in rotation