Docs
How Array works, end to end.
An array is a basket of bonded Pump.fun coins you can buy in one go. Every array is backed 1:1 by the real coins, held in its own reserve, and you can sell out anytime. This page covers the whole thing in plain terms.
What Array is
Array is a basket launchpad for bonded Pump.fun coins on Solana. Instead of buying ten coins by hand, you buy one array and get a slice of all of them in a single transaction. Anyone can build an array, and anyone can buy into one that is already taking off.
The price of an array tracks the real coins inside it, live. When the coins move, the array moves. Because the coins really sit in the array’s reserve, your share is always redeemable for its slice of the real holdings, not an IOU.
The honest part
A basket spreads risk. It does not remove it. Pump.fun coins are volatile and many go to zero. Array is custodial in v1, so you trust the operator, not a contract. The real coins sit 1:1 in the reserve and you can always sell out. This is experimental software. Only risk what you can afford to lose.
How an array works
Every array is three things: a set of coins, a weight for each coin, and a reserve that holds them.
The array’s price (sometimes called NAV) is just the value of everything in the reserve divided by the number of shares outstanding. Buy in and the reserve grows in step with the shares you are minted, so existing holders are never diluted.
Which coins qualify
Not every Pump.fun coin can join an array. A coin is eligible only if all of the following hold. These rules keep arrays tradeable and keep pricing honest.
Pricing comes from the deepest SOL pool a coin trades in. If a coin fails eligibility at build time, it cannot be added to an array. If it drifts out of eligibility later, the holdings table flags it.
Buying in
A buy happens in clear stages, and you always see exactly what you get before you confirm. The quote you see is frozen for 30 seconds so the number does not move under you.
The amount that actually buys coins, shown as invested in the quote, is your SOL minus the fees and the gas reserve. You always send a little more than ends up invested, and the breakdown is never hidden.
Selling out
Selling mirrors buying. You can sell any time, even if an array has been closed by its builder, because 1:1 backing is the entire point.
Your payout is the value of your slice minus fees. You are selling the real coins behind your share, so what you get back reflects exactly what those coins are worth at that moment.
Fees
There are three things taken out of a trade. All of them are shown in the quote before you confirm.
Fees always round up and minted shares always round down by a tiny amount, so the reserve can never end up owing more than it holds. The numbers you see in a quote are the numbers you pay.
The reserve and 1:1 backing
The reserve is the address that holds an array’s real coins. One array, one reserve. Every share you hold is a proportional claim on the coins sitting in that reserve. There are no synthetic positions and no lending against the holdings.
In v1, Array is custodial. The reserve key is encrypted at rest with AES-256-GCM, and the master key lives in a hardware-backed key service (AWS KMS). Only the isolated execution service can decrypt it in memory to sign a swap, and every signature is logged. You are trusting the operator to run this honestly, which is why the holdings are kept verifiable on-chain and reconciled on a schedule.
The core invariant is simple: the total shares outstanding always correspond to the real coins in the reserve. A future v2 moves this on-chain so the backing is enforced by a program and the share becomes a real SPL token, removing the custodial trust entirely.
Weights and drift
A builder sets each coin’s target weight when the array is created. After launch, those weights drift as prices move. Winners grow their share of the array and losers shrink. This drift is expected and is shown in the holdings table as the gap between the target weight and the live weight.
By default an array is static: the reserve is left alone after launch and the basket is simply allowed to ride. Fresh buys always purchase at the target weights, which gently nudges a drifted array back toward its targets over time. A future opt-in periodic mode lets a builder have the array corrected back toward target weights only when drift gets large, so it does not churn on every small move.
The $Array token
$Array is the protocol token, and it is tied directly to arrays doing well. On any profitable exit, 5% of the realized gain is used to buy $Array on the open market. Losses and breakeven sells contribute nothing, so the buy pressure is funded purely from upside and never from anyone’s principal.
This ships after flocks are trading with real funds. Until then, treat it as planned, not live.
How it is built
Array is a TypeScript monorepo. The pieces are split so the part that can move funds is small, isolated, and the only thing that can touch a reserve key.
Swaps route through Jupiter. Solana reads, writes, and webhooks go through Helius. Reserve keys are wrapped by AWS KMS. The economic constants (the 0.3% fee, the 2 to 15 coin range, the $10k liquidity floor, the 30 second quote window, and the rest) live in one config package and are never inlined anywhere.
FAQ
Do I actually own the coins?
You own a share of the array, which is a proportional claim on the real coins held in its reserve. Sell the share and you get that slice back in SOL.
Can I always sell?
Yes. You can sell out at any time, including after a builder closes an array to new buys. Redeemability is the point of the 1:1 backing.
What happens if a buy fails partway through?
If any leg cannot be completed, the whole buy is unwound and your full SOL is refunded. No funds are left stranded in a half-filled state.
How many coins can an array hold?
Between 2 and 15. No single coin can exceed 60% of the array, and the weights must add up to 100%.
Why was my coin rejected?
A coin must be bonded, trade in a SOL pool with a valid price, and have at least $10,000 of liquidity in that pool. If any of those fail, it cannot join an array.
Is this custodial?
In v1, yes. The operator holds the reserve keys under hardware-backed encryption. A future v2 moves backing on-chain and removes the custodial trust.