FLOORLaunch app

API reference

Every instruction below exists in the source under engine/programs. Arguments are listed in order. Accounts are the ones the instruction reads or writes beyond the signer and system program.

floor_venue (3vkpdUbzcQ7p5Ak36kjcfmWmgpuH3syswtwa5CGina8j)

InstructionArgumentsSignerEffect
initializeauthority: Pubkey, fee_recipient: Pubkey, fee_bps: u16, venue_share_bps: u16payerCreates Venue at ["venue"]. Fees are checked against MAX_FEE_BPS = 1_000 and venue_share_bps <= 10_000.
set_feesfee_bps, venue_share_bpsauthorityEmits FeesChanged.
set_fee_recipientfee_recipientauthorityNon-zero key required.
set_pausedpaused: boolauthorityWhole-venue stop; emits VenuePaused.
set_pool_pausedpaused: boolauthorityOne pool; emits PoolPaused.
admitwallet: PubkeyauthorityCreates Participant at ["participant", wallet]; emits ParticipantChanged.
set_admittedadmitted: boolauthorityRevokes or readmits.
register_quotekind: QuoteKindauthorityCreates QuoteAsset at ["quote", mint].
create_poolsymbol: [u8; 12]authorityCreates Pool at ["pool", stock_mint, quote_mint], its two vaults and LP mint; requires a Token-2022 stock mint with an issuer gate (a transfer hook, or frozen-by-default accounts with a freeze authority, which is how FWDI and GLXY are issued) and a caps listing with matching decimals. Emits PoolCreated.
add_liquiditymax_stock: u64, max_quote: u64, min_lp: u64admitted userDeposits in ratio, mints LP. Emits LiquidityChanged.
remove_liquiditylp: u64, min_stock: u64, min_quote: u64admitted userBurns LP, pays pro rata. Emits LiquidityChanged.
swapstock_to_quote: bool, amount_in: u64, min_out: u64admitted userThe fill. Reads HaltState, IssuerNotice, SymbolCap; CPI to floor_caps::record_execution. Emits Fill.
collect_feesnoneanyoneMoves accrued venue fees to the fee recipient. Emits FeesCollected.

Accounts: Venue { authority, fee_recipient, fee_bps, venue_share_bps, paused, pool_count, bump }, Participant { wallet, admitted, admitted_at, bump }, QuoteAsset { mint, kind, bump }, Pool { symbol, stock_mint, quote_mint, stock_vault, quote_vault, lp_mint, stock_decimals, quote_decimals, quote_kind, paused, venue_fee_stock, venue_fee_quote, bump }.

QuoteKind: PaymentStablecoin = 0, TokenizedMoneyMarketFund = 1, TokenizedStock = 2.

floor_halt (hZWUysrRYBmuindfRrE78rKuwG7iqQwKm5c9ZpAqk7o)

InstructionArgumentsSignerEffect
initializeauthority, keepers: Vec<Pubkey>, threshold: u8payerCreates HaltConfig at ["config"]; 1 to 16 distinct keepers.
set_keeperskeepers, thresholdauthorityBumps keeper_epoch; open votes under the old epoch are void.
open_symbolsymbol: [u8; 12]authorityCreates HaltState at ["halt", symbol].
posthalted: bool, seq: u64keeperA vote for event seq; applied at threshold. Emits HaltChanged { symbol, halted, seq, at }.

HaltState { symbol, halted, since, seq, pending_seq, pending_halted, votes: u16, vote_epoch, bump }.

floor_caps (riN4V5uUokJ2GqBVtbfnHpwUKmvCQv3A2Ygt7kNYmxN)

InstructionArgumentsSignerEffect
initializeauthority, recorder: Pubkey, keepers, thresholdpayerrecorder is the venue PDA, the only signer record_execution accepts.
set_keeperskeepers, thresholdauthorityAs in floor_halt.
set_reservedtier1: u16, tier2: u16authoritySymbols counted by affiliated venues; reduce what this venue may list.
list_symbolsymbol, tier: u8, decimals: u8authorityCreates SymbolCap at ["cap", symbol]; refuses when the tier is full.
set_listedlisted: boolauthorityUnlists or relists.
set_pausedpaused: boolauthorityVoluntary pause; emits SymbolPaused.
declare_breachnoneauthorityRecords a breach found off chain; a repeat sets paused_until three months ahead.
post_advmonth: u32, adv_shares: u64keeperA vote; applied at threshold. Emits AdvPosted { symbol, month, adv_shares, cap_units, revision }.
record_executionshares: u64recorder (CPI)Counts the fill or refuses it.

SymbolCap { symbol, tier, decimals, listed, voluntary_pause, month, executed, adv_month, adv_shares, breaches, paused_until, pending_month, pending_adv, votes, vote_epoch, bump }. Constants: TIER1_SYMBOLS 75, TIER2_SYMBOLS 250, TIER1_CAP_BPS 25, TIER2_CAP_BPS 250, THROTTLE_FROM_BPS 9_000, THROTTLE_FILL_BPS 100, BREACH_PAUSE_MONTHS 3. month_index(unix) = year × 12 + month0 in UTC.

floor_notice (4MLRiWbL48QgrZivaHp1RzZPTPGLNDU9zqNHnbFxBuKr)

InstructionArgumentsSignerEffect
initializeauthoritypayerCreates NoticeConfig at ["config"].
file_noticeissuer_sponsored: bool, notice_sent_at: i64authorityCreates IssuerNotice at ["notice", mint]. Emits NoticeFiled { mint, issuer_sponsored, notice_sent_at, opens_at }.
record_objectionnoneauthoritySets objected inside the window only. Emits ObjectionRecorded.

IssuerNotice { mint, issuer_sponsored, notice_sent_at, objected, objected_at, bump }; opens_at = notice_sent_at + 2_592_000; trading_open(now) = issuer_sponsored || (!objected && now > opens_at).

allowlist_hook (6MsQwMt2jB1yH9PY5E3s7bGVqot5Zc4NpaYt2pKRT96g)

A plain Solana program (not Anchor) implementing the transfer-hook interface for local tests: an allow record per wallet at ["allow", wallet], allow and revoke tags, and extra_metas for the mint. The real FWDI and GLXY mints carry the issuer's own hook; this one only stands in for it on a local validator.

Site routes

RouteReturns
GET /api/boardLast sale, market status, prior-month ADV and cap, halt state, prints and Solana prices for the listed stocks; the Nasdaq halt feed; the next bell.
POST /api/rpcRelay to the Solana RPC for the allowed methods.