For the complete documentation index, see llms.txt. This page is also available as Markdown.

Public API v1

Integrate Feel.cash Public API v1 to discover launches and retrieve coin data, using public endpoints, cursor pagination, and polling.

The Feel.cash API gives exchanges, indexers, wallets, screeners, and trading surfaces a coin-first view of supported launches. Public API v1 is live on api.feel.cash.

Base URL

https://api.feel.cash/v1

Public launch data does not require authentication.

Delivery and versioning

Public API v1 is polling-only. Feel.cash does not currently deliver launch webhooks, and there is no public sandbox or testnet API. Build against the production endpoint with conservative polling, cursor persistence, idempotent upserts, and retry handling.

The fields documented on this page are the stable v1 contract. Feel.cash can add fields without changing the version, so clients should ignore unknown fields. A breaking response or endpoint change will use a new API version.

List launches

GET /launches
curl "https://api.feel.cash/v1/launches?chain=base&limit=50"

Query parameters

Parameter
Description

chain

base, robinhood, arc, or solana

protocol

doppler, clanker, or launchlab

launchedAfter

ISO date or timestamp for incremental polling

limit

Default 50; maximum 100

cursor

Opaque cursor returned by the previous page

Do not combine cursor and launchedAfter in the same request.

A request without chain returns EVM launches only. Solana launches are returned only when the request names solana; several values can be combined with commas, such as chain=base,solana. See Solana records.

Protocol is deployment metadata, not coin identity. Always use chain plus contract address as the primary key.

The list response wraps records and cursor state separately:

Resolve a coin

Live Base example with officialFeelLaunch: true:

Live Robinhood Chain provenance example with officialFeelLaunch: false, illustrating why integrators must read the flag:

Resolution always uses the chain and complete contract address together. Never use an EVM address without its chain. The endpoint accepts base, robinhood, arc and solana; see Solana records.

Solana records

Resolve one Solana coin by its mint address. EVM addresses are case-insensitive; a Solana mint address is case-sensitive and must be sent exactly as minted.

A Solana record uses the same shape with these differences:

Field
Solana value

contractAddress

The mint, in case-sensitive base58. Never lowercase it.

chain / chainId

solana / 1399811149

decimals

6

deployment.protocol

launchlab

deployment.airlockAddress, deployment.integratorAddress

null

deployment.createTransactionHash

The Solana transaction signature

market.poolId

The launch pool account

market.numeraireAddress

The pair's mint: wrapped SOL, USDC, or an xStock

market.startingFdvUsdTarget

The curve's real opening value in USD, not $10,000

market.marketFeeBps

150

market.lpFeeBps, market.antiSniperStartFeeBps, market.antiSniperDecaySeconds

null

fees.*EffectiveBps, fees.netPotSplit, fees.settlementChain, fees.settlementAsset

null; use the Solana fee split

explorerUrl

A Solscan token link

Program and platform addresses are in Contracts and onchain identity.

Selected response fields

The response below shows the fields most useful to an exchange integration. Nullable fields remain null when the source is unavailable.

Fee precision

Display rates can use decimal basis points. Accounting systems should use the exact split returned in fees.netPotSplit and confirm settled onchain transfers.

The split applies to the distributable market-fee balance after the protocol share has been retained. Do not recalculate payouts from rounded display rates.

Official launch status

officialFeelLaunch: true means the launch is recognized by Feel.cash deployment records and onchain attribution. It is an officiality signal, not a contract audit, price guarantee, or endorsement.

Onchain launch proof

For a Doppler launch, deployment exposes the chain-specific Airlock, Feel.cash integrator, and successful creation transaction. Together with the transaction's Create event, those fields form the onchain launch proof. An exchange can use them to reproduce the onchain launch filter.

The Airlock identifies the Doppler deployment system. The integrator identifies Feel.cash inside the decoded Airlock.create() input. The transaction receipt's Create event identifies the deployed asset.

Legacy records can use another protocol and return null for protocol-specific fields. Historical Doppler records can also have null fee-split or deployment fields when that source data was not recorded. A missing field must not be replaced with a current default when indexing historical launches.

Treat name, symbol, description, imageUrl, creator fields, and linked metadata as untrusted user content. Escape text for its output context, validate or proxy remote media, and never use a display field as coin identity.

Errors

Status
Meaning

400

Invalid chain, address, cursor, filter, or query combination

404

No supported launch found for that chain and address

429

Rate limit exceeded

500

Internal query failure

Caching and polling

Successful responses include:

A 404 for a single launch is cached for one second (public, max-age=0, s-maxage=1).

The public launch API currently allows 120 requests per 60-second window per IP. Read RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset instead of hardcoding retry timing; a limited response can also include Retry-After.

Use launchedAfter for incremental ingestion, preserve the returned cursor for pagination, and apply exponential backoff after 429 or 5xx responses.

For resilient ingestion, query from an overlapping time window, follow every cursor before advancing the checkpoint, and upsert by (chainId, contractAddress). Periodically reconcile older history. The overlap protects against late-arriving records and same-timestamp launches; launchedAfter is not a finality or update cursor.

Market metrics are eventually consistent. Onchain contracts, launch configuration, and pool events are authoritative for immutable fields.

Legacy migration

Move historical integrations to /v1/launches. The v1 interface uses canonical Feel.cash URLs and identifies coins by chain plus contract address while retaining supported legacy coin records.

Last updated

Was this helpful?