Presales
Endpoints for listing presales, managing allowlists, and generating Merkle proofs.
GET /api/presales
Search and list presales with filters and pagination.
Authentication: Public
Query Parameters
sort
`"asc"
"desc"`
No
desc
limit
number
No
100
Page size.
offset
number
No
0
Offset.
chainId
number
No
—
Chain ID filter.
status
`number
"all"
"successful"`
No
Response: Paginated presale list.
{
"presales": [ ... ],
"totalCount": 42
}GET /api/presales/allowlists
Returns the allowlist for a presale.
Authentication: Public
Query Parameters
presaleId
number
Yes
—
Presale ID.
chainId
number
Yes
—
Chain ID.
Response: Merkle root and allocations.
POST /api/presales/allowlists
Saves a presale allowlist Merkle tree.
Authentication: Public
Body Parameters
presaleId
number
Yes
—
Presale ID.
chainId
number
Yes
—
Chain ID.
merkleRoot
string
Yes
—
Hex-encoded Merkle root.
tree
object
Yes
—
MerkleTreeDump object ({ format, leafEncoding, tree, values }).
Response: Success confirmation.
GET /api/presales/allowlists/proof
Returns a Merkle proof for a buyer in a presale allowlist.
Authentication: Public
Query Parameters
presaleId
number
Yes
—
Presale ID.
chainId
number
Yes
—
Chain ID.
buyerAddress
address
Yes
—
Buyer wallet address.
Response: Proof and allowed amount, or rejection.
GET /api/presales/refresh
Enqueues a presale for re-indexing by transaction hash.
Authentication: Public
Query Parameters
txHash
string
Yes
—
Hex-encoded transaction hash.
chainId
number
No
8453
Chain ID (defaults to Base).
Response: Confirmation that the presale was enqueued.
Last updated