Orders run on devnet replicas. Market data is live mainnet.See the proof
Docs

Using Holdfill

Holdfill lets a SpaceX PreStocks holder set one standing order to convert into SPCXx. Tokens stay in the wallet until the pool pays the holder's minimum.

Before you start

  • A Solana wallet such as Phantom, Solflare, or Backpack. The wallet only signs. Holdfill relays the transaction to devnet, so the wallet's own network setting doesn't matter.
  • Orders use devnet replica tokens. Nothing on mainnet moves. Market prices shown in the app come from mainnet.
  • PreStocks are unavailable in the U.S. and to U.S. persons. Read the issuer's terms.

Set an order

  • Connect your wallet and open the app.
  • If you hold no replica SPACEX, use the faucet. It sends 1 replica SPACEX (5 shares) and a little devnet SOL for fees if your wallet is low.
  • Pick the amount, the largest gap you accept, a fallback date, and a fallback floor.
  • Sign once. That transaction creates the order and approves the order program for that amount only.

Order terms

Entitlement
What the issuer says one raw SPACEX converts into: 5 SPCXx, one per share after the 5x split.
Gap
How far a payout falls below entitlement, fees included. A 29% gap pays 3.55 SPCXx per raw token.
Limit
The largest gap you accept, up to 60%. A 20% limit requires at least 4 SPCXx per raw token.
Fallback date
From this date the fallback floor replaces your limit. It must fall before the issuer deadline.
Fallback floor
The least you accept after the fallback date, as a share of entitlement: 40, 50, 60, or 70%.
Issuer deadline
12 March 2027, 23:59 UTC. The program refuses every fill after it.

How a fill works

A keeper checks open orders every 10 seconds. When the pool quote meets your minimum, it calls the program's execute instruction. Anyone can call execute, and you can press Check now to run one pass yourself.

The program swaps through the Meteora DLMM pool as your approved delegate, measures what reached your SPCXx account, and reverts the whole transaction if it's below your minimum. Orders can fill in parts. The keeper sells the largest amount that still meets your terms.

Every fill also checks that the pool, mints, and token accounts match the order, the issuer hasn't paused the token or changed its transfer fee since you signed, your approval covers the amount, and the deadline hasn't passed.

One order per wallet

Each wallet has one order at a time. A token account can approve only one delegate for one amount, so a second order would silently replace the first order's approval.

To change your terms, revoke the open order and set a new one. After a full fill, close the order. Closing returns the order account's SOL deposit.

Revoke

Revoke closes the order and removes the approval in one transaction. Anything already filled stays in your wallet. After that, nothing can fill, and a fill attempt fails on chain. See the recorded example.

Faucet limits

  • The faucet only tops up wallets holding less than 0.5 raw replica SPACEX (2.5 shares).
  • A wallet with an open order or remaining tokens can request once per hour. A wallet that sold everything and closed its order can refill right away.
  • The faucet sends at most 20 grants per hour across all wallets.

Devnet addresses

Order program
A6Uh...aSGV
Lifecycle event
GZ1k...MUsQ
Replica SPACEX
5cY1...Ghsu
Replica SPCXx
4gG3...HitZ
DLMM pool
5XhZ...jLzM

Public API

Read endpoints return JSON and need no key.

GET /api/market
Live mainnet quote, pool fee, transfer fee, and the issuer's conversion value.
GET /api/markets
Every PreStocks market: holders, value at mark, pool price, issuer fee, Jupiter Trigger result, and lifecycle events.
GET /api/history
Daily close gap since listing, with dated unlocks.
GET /api/backtest?limit=2000
How many trading days a limit, in basis points, would have filled.
GET /api/position?owner=
Mainnet SPACEX (read only), devnet replica balances, and the open order.
GET /api/orders?owner=
Order history from on-chain events.
GET /api/jupiter-check
Live test that Jupiter's trigger API refuses the PreStocks mint.
GET /api/program
The order program's current upgrade authority.

Verify it yourself

The proof page links every recorded devnet transaction and the local fork proof, which runs the same program against cloned mainnet mint and pool state. The evidence page shows the market data behind the product.