How Pairing Works
Ten steps take a Pair Market from a creator’s launch to a Pair Asset in a holder’s wallet. The first four run on Solana mainnet today. The remaining six activate per Pair Instrument, as its provider route and vault custody come online.
Overview
Pairing has two halves. The first half creates the Pair Market and starts the economic flow: launch, instrument selection, registration and the creator-fee split. The second half converts that flow into the instrument’s Pair AssetPair AssetThe transferable onchain asset the implementation acquires and distributes for a Pair Instrument. Holders receive the Pair Asset, not the reference market itself. and delivers it: routing, acquisition, accounting, reward epochs, claims and the wallet.
The first half is identical for every Pair Market and runs on mainnet for every launch. The second half depends on the instrument: each Pair InstrumentPair InstrumentThe financial exposure a Pair Market is paired with, such as Tokyo Residential or Swiss Government Debt. A catalog object with a provider, an eligibility policy and a status. has its own provider, route mode and settlement asset, so each activates on its own schedule. The protocol is one system; instrument routes are modules inside it.
The example throughout is $TOKYO × Tokyo Residential: a hypothetical ticker paired with a catalog instrument (symbol TKYRES). Tokyo Residential is a Pair Instrument representing the target financial exposure configured for the Pair Market.
The ten steps
- Step 01LCHLaunch
The creator fills in name, symbol, image and socials, chooses a Pair Instrument and optionally a first buy. PairStreet stores the image and an immutable metadata JSON (served at
LivePump program 6EF8…F6P/api/metadata/<id>), then builds up to three Solana transactions. The creator signs all of them in one wallet prompt (signAllTransactions) and they are sent in order. The token is created by the Pump program on Solana. - Step 02PAIRSelect Pair
Selection happens in the launch form, before anything is signed. The creator picks Tokyo Residential from the catalog. PairStreet accepts only instruments whose status is active, and the Eligibility EngineEligibility EngineEvaluates a viewer's region and verification state against a Pair Instrument's rules and returns allow or restrict before any Pair interaction. checks the creator’s region against the instrument’s rules. A launch into an instrument the creator’s region restricts is rejected with “Pair unavailable in your region.”
Live - Step 03PMKPair Market created
Live/api/launch/confirmverifies the launch on-chain (mint and creator in the transaction, bonding curve exists), then writes the token, its market and the Pair MarketPair MarketThe canonical pairing of an internet asset with a financial Pair: TOKEN × PAIR INSTRUMENT, plus the Pair Vault, configuration and accounting that connect them. in one database transaction. The canonical relationship is $TOKYO × TKYRES. PairStreet reads the fee split back from chain, stores it in the market’s configuration, and emitsTOKEN_CREATEDandPAIR_SELECTED. Mainnet markets register with statussettlement_disabled, shown as “Settlement pending”. - Step 04ECOEconomic flow
Pump’s creator fees for the coin accrue to its fee-sharing config. The permissionless
Live: fee splitVault funding activates per routedistribute_creator_feesinstruction pays them out: 50% to the creator and 50% to the PairStreet PairStreet treasuryPairStreet treasuryThe protocol wallet that receives the protocol share and Pair Vault reserve of creator fees plus the 0.5% trading fee., which carries the 25% protocol share and the 25% Pair Vault reservePair Vault reserveThe 25% share of a Pair Market's creator fees earmarked for its Pair Vault. Held by the PairStreet treasury until the market's settlement route activates.. Until the market’s vault custody activates, the reserve accrues to the treasury, attributable per market because each coin has its own sharing config. - Step 05RTRRouting
On the market’s settlement cadence (hourly by default), the Pair RouterPair RouterThe execution layer that converts a Pair Vault's settlement balance into an acquisition plan for the Pair Asset and hands it to the right executor. plans an acquisition with
Quotes live for 5 SPL instrumentsActivates per routeplanAcquisition. It evaluates the target instrument, the Pair VaultPair VaultThe account that receives settlement value allocated to one Pair Market, holds it until conversion, and holds the acquired Pair Asset until it is allocated to holders.’s settlement balance, the provider, a quote, the instrument’s status and the Route modeRoute modeHow the Pair Router acquires a Pair Asset: ONCHAIN_SWAP, PROVIDER_API, RFQ, ISSUER_MINT or BROKER_ROUTE.. The result is anAcquisitionPlan; each condition still to be met before execution is listed inblockers. - Step 06ASTAcquisition
Activates per routeexecuteAcquisition(plan, vaultAddress)hands the plan to the provider’s executor. The Pair Asset is acquired into the market’s Pair Vault and the execution returns the output amount, execution price and transaction signature. For an ONCHAIN_SWAP instrument this is a swap of the settlement asset into the instrument’s SPL token. - Step 07LDGAccounting
PairStreet records the amount spent, the asset quantity, the execution price, the provider, the transaction and the settlement it belongs to, as rows in
Activates per routepair_settlementsandpair_purchases. Thepair_marketsread model (Pair Value, Pair Asset balance, lifetime acquired) is rebuilt from those rows. - Step 08EPCReward epoch
A Reward EpochReward EpochA window over which acquired Pair Asset is allocated to eligible holders by their holder weight. Produces exact integer allocations and a Merkle root. allocates acquired Pair Asset to eligible holders by Holder WeightHolder WeightA holder's share basis inside a reward epoch. Under the time-weighted method: the integral of balance over time held inside the epoch (token-seconds)., time-weighted balance by default. The creator, the vault and liquidity accounts are excluded. Allocations are exact integers that sum to the pool, and a Merkle root is computed over them.
Activates per route - Step 09CLMClaim
The holder claims through
Activates per routePOST /api/rewards/claim. Eligibility is checked again for the holder’s region, and each allocation pays out once. An onchain Merkle distributor for claims is planned and activates with settlement. - Step 10WLTWallet
The Pair Asset arrives in the holder’s wallet. From that point it is custodied by the holder and governed by its issuer’s terms, like any other token the wallet holds.
Activates per route
Figure summary: Ten steps. 01 Launch, 02 Select Pair, 03 Pair Market created, 04 Economic flow: live on Solana mainnet, with the Pair Vault reserve accruing to the treasury. 05 Routing, 06 Acquisition, 07 Accounting, 08 Reward epoch, 09 Claim, 10 Wallet: activate per Pair Instrument when its provider route and vault custody activate.
The launch, transaction by transaction
A Pump launch with a fee split does not fit in one Solana transaction: each part fits the 1,232-byte limit only on its own. PairStreet therefore builds up to three transactions and asks for one signature prompt that covers all of them.
| Tx | Instructions | Signers | Effect | Size |
|---|---|---|---|---|
| 1 | create_v2 + create_fee_sharing_config | Creator wallet; mint keypair (generated and pre-signed by the server) | Mints the coin and its bonding curve. The curve’s creator becomes the fee-sharing config PDA. | ~1,047 B |
| 2 | update_fee_shares | Creator wallet | Writes the split: creator 5,000 bps, PairStreet treasury 5,000 bps. Pump then sets adminRevoked = true and the split is permanent. | ≤ 1,232 B |
| 3 | Pump buy + System transfer | Creator wallet | Optional first buy, priced on the fresh curve with 5% slippage tolerance, plus the 0.5% PairStreet fee to the treasury. | ≤ 1,232 B |
Figure summary: Transaction 1: create_v2 and create_fee_sharing_config, signed by the creator and the server-generated mint keypair, about 1,047 bytes. Transaction 2: update_fee_shares, creator 5,000 bps and treasury 5,000 bps, signed by the creator; Pump then locks the config. Transaction 3, optional: the creator's first buy plus the 0.5% PairStreet fee transfer, signed by the creator.
Every transaction is built server-side as an unsigned versioned transaction. The only key PairStreet signs with is the freshly generated mint keypair, which exists to create the mint and is used for nothing else. The client simulates before asking for the signature, and PairStreet never holds the creator’s keys.
If the split transaction does not land
Transactions are sent in order. If the first lands and the second does not, the coin exists with its sharing config still editable, and the market page shows “Split pending”. The creator can lock it later with “Lock fee split”, which builds the same update_fee_shares instruction. Creator fees that accrue before the split is written are paid to the creator.
Figure summary: Creator fees for every PairStreet launch: 50% creator, 25% PairStreet protocol, 25% Pair Vault reserve. On-chain the treasury holds one 50% share that covers both the protocol share and the Pair Vault reserve.
Sequence
The same flow, drawn as messages between eight actors. Each line is one interaction; dashed lines carry the Pair Asset back toward its destination.
- 01Creator → PairStreetcreate token
- 02Creator → PairStreetselect instrument
- 03PairStreet → Pumplaunch (1 prompt)
- 04PairStreet → Pair Vaultregister Pair Market
- 05Pump → Pair Vaultcreator-fee allocation
- 06Pair Vault → Pair Routersettlement request
- 07Pair Router → Providerquote / acquire
- 08Provider → Pair VaultPair Asset
- 09Pair Vault → Reward Enginefund epoch
- 10Reward Engine → Holderclaim allocation
- 11Holder → Reward Engineclaim
- 12Reward Engine → HolderPair Asset
Figure summary: Creator to PairStreet: create token. Creator to PairStreet: select instrument. PairStreet to Pump: launch, three transactions in one prompt. PairStreet to Pair Vault: register Pair Market. Pump to Pair Vault: creator-fee allocation. Pair Vault to Pair Router: settlement request. Pair Router to Provider: quote and acquire. Provider to Pair Vault: Pair Asset. Pair Vault to Reward Engine: fund epoch. Reward Engine to Holder: claim allocation. Holder to Reward Engine: claim. Reward Engine to Holder: Pair Asset.
What each step records
Every step leaves a row. That is what makes the flow inspectable: a Pair Asset in a holder’s wallet can be traced back through its allocation, its epoch, its purchase and its settlement to the market and the launch transaction.
| Step | Written to | Key fields |
|---|---|---|
| 01 Launch | tokens, token_markets | mint, creatorWallet, metadataUri, launchTxSignature; bondingCurveAddress, graduationStatus |
| 02 Select Pair | pair_markets | pairInstrumentId |
| 03 Pair Market created | pair_markets, activity_events | status, configuration (feeSplit), ledgerMode; TOKEN_CREATED, PAIR_SELECTED |
| 04 Economic flow | pair_vault_fundings (with vault custody) | source, amountRaw, usdValue, txSignature |
| 05 Routing | pair_settlements | sequence, status, routeMode, settlementAmountRaw, plan, error |
| 06 Acquisition | pair_purchases | providerId, inputAmountRaw, outputAmountRaw, executionPriceUsd, txSignature |
| 07 Accounting | pair_markets (read model) | pairValueUsd, pairAssetBalanceRaw, pairAssetAcquiredLifetimeRaw |
| 08 Reward epoch | reward_epochs, reward_allocations | epochNumber, totalPoolRaw, totalWeight, allocationRoot; wallet, weight, amountRaw |
| 09 Claim | reward_claims | wallet, amountRaw, status |
| 10 Wallet | reward_claims | txSignature, status: confirmed |
Rows from step 04 onward carry a Ledger modeLedger modeEvery financial ledger row carries live or development. Production reads and writes live rows only.. Production reads and writes live rows only. Accounting documents the invariants that hold across these tables, and Schemas lists every column.
How the second half activates
Steps 05 to 10 are implemented as engines: the settlement engine (runSettlement), the Pair Router (planAcquisition, executeAcquisition) and the reward engine (time-weighted weights, largest-remainder allocation, Merkle roots). For a given Pair Market they run once two things are true.
| Condition | What it means | Where it stands |
|---|---|---|
| Provider route | The instrument’s provider can quote and execute a route into its Pair Asset. | Route ready for 5 SPL instruments |
| Pair Vault custody | The market has a vault with a custody model (program PDA, multisig or provider custody) that can sign the acquisition. | Activates per route |
When both hold, the market’s status moves from settlement_disabled to active, its nextSettlementAt is set, and the scheduler starts running settlements on its cadence. The five SPL instruments with live onchain swap quotes (USDY, CETES, GILTS, XAUt0 and PAXG) are the first in line; registry instruments such as Tokyo Residential connect their settlement asset when their provider route activates.