Pairing

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

Production pairing architectureARCHITECTURE
  1. Step 01LCH
    Launch

    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 /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.

    LivePump program 6EF8…F6P
  2. Step 02PAIR
    Select 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
  3. Step 03PMK
    Pair Market created

    /api/launch/confirm verifies 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 emits TOKEN_CREATED and PAIR_SELECTED. Mainnet markets register with status settlement_disabled, shown as “Settlement pending”.

    Live
  4. Step 04ECO
    Economic flow

    Pump’s creator fees for the coin accrue to its fee-sharing config. The permissionless distribute_creator_fees instruction 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.

    Live: fee splitVault funding activates per route
  5. Step 05RTR
    Routing

    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 planAcquisition. 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 an AcquisitionPlan; each condition still to be met before execution is listed in blockers.

    Quotes live for 5 SPL instrumentsActivates per route
  6. Step 06AST
    Acquisition

    executeAcquisition(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.

    Activates per route
  7. Step 07LDG
    Accounting

    PairStreet records the amount spent, the asset quantity, the execution price, the provider, the transaction and the settlement it belongs to, as rows in pair_settlements and pair_purchases. The pair_markets read model (Pair Value, Pair Asset balance, lifetime acquired) is rebuilt from those rows.

    Activates per route
  8. Step 08EPC
    Reward 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
  9. Step 09CLM
    Claim

    The holder claims through POST /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.

    Activates per route
  10. Step 10WLT
    Wallet

    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
Steps 01 to 03 run on mainnet exactly as described. Step 04 is live as the locked creator-fee split. Steps 05 to 10 are implemented in the settlement, router and reward engines and activate per instrument 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.

What each transaction does at launchMAINNET
Launch transactions
TxInstructionsSignersEffectSize
1create_v2 + create_fee_sharing_configCreator 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
2update_fee_sharesCreator walletWrites the split: creator 5,000 bps, PairStreet treasury 5,000 bps. Pump then sets adminRevoked = true and the split is permanent.≤ 1,232 B
3Pump buy + System transferCreator walletOptional 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.

Creator-fee split, locked at launchMAINNET
Creator fees · 10,000 bps
50%
25%
25%
Creator
Paid to the creator wallet by distribute_creator_fees.
PairStreet protocol
Protocol revenue, held in the treasury.
Pair Vault reserve
Earmarked for this market’s Pair Vault; accrues to the treasury until its route activates.
On-chain there are two shareholders: the creator at 5,000 bps and the treasury at 5,000 bps. The treasury share is accounted as protocol 25% plus Pair Vault reserve 25%.

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.

2.000 SOL × 50% = 1.000 SOL creator · 2.000 SOL × 25% = 0.500 SOL protocol · 2.000 SOL × 25% = 0.500 SOL Pair Vault reserve
Example: 2.000 SOL of accrued creator fees distributed for one market.

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.

Pairing sequence, creator to holderARCHITECTURE
  1. 01Creator → PairStreetcreate token
  2. 02Creator → PairStreetselect instrument
  3. 03PairStreet → Pumplaunch (1 prompt)
  4. 04PairStreet → Pair Vaultregister Pair Market
  5. 05Pump → Pair Vaultcreator-fee allocation
  6. 06Pair Vault → Pair Routersettlement request
  7. 07Pair Router → Providerquote / acquire
  8. 08Provider → Pair VaultPair Asset
  9. 09Pair Vault → Reward Enginefund epoch
  10. 10Reward Engine → Holderclaim allocation
  11. 11Holder → Reward Engineclaim
  12. 12Reward Engine → HolderPair Asset
Messages 01 to 05 run on mainnet today; message 05 is the creator-fee share for the market, held as its Pair Vault reserve in the treasury. Messages 06 to 12 activate per instrument route.

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.

Records written by each pairing step
StepWritten toKey fields
01 Launchtokens, token_marketsmint, creatorWallet, metadataUri, launchTxSignature; bondingCurveAddress, graduationStatus
02 Select Pairpair_marketspairInstrumentId
03 Pair Market createdpair_markets, activity_eventsstatus, configuration (feeSplit), ledgerMode; TOKEN_CREATED, PAIR_SELECTED
04 Economic flowpair_vault_fundings (with vault custody)source, amountRaw, usdValue, txSignature
05 Routingpair_settlementssequence, status, routeMode, settlementAmountRaw, plan, error
06 Acquisitionpair_purchasesproviderId, inputAmountRaw, outputAmountRaw, executionPriceUsd, txSignature
07 Accountingpair_markets (read model)pairValueUsd, pairAssetBalanceRaw, pairAssetAcquiredLifetimeRaw
08 Reward epochreward_epochs, reward_allocationsepochNumber, totalPoolRaw, totalWeight, allocationRoot; wallet, weight, amountRaw
09 Claimreward_claimswallet, amountRaw, status
10 Walletreward_claimstxSignature, 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.

Conditions for a Pair Market's settlement route to activate
ConditionWhat it meansWhere it stands
Provider routeThe instrument’s provider can quote and execute a route into its Pair Asset.Route ready for 5 SPL instruments
Pair Vault custodyThe 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.