> For the complete documentation index, see [llms.txt](https://docs.feel.cash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.feel.cash/developers-and-integrators/integration-guide.md).

# Integration guide

Integrate Feel.cash coins into wallets, exchanges, and indexers. Verify official launches using chain identity, API records, and onchain proof.

This guide is for exchanges, wallets, indexers, screeners, explorers, and trading surfaces integrating Feel.cash coins.

## Recognize an official launch

Use the complete record, not a logo, ticker, or address suffix:

1. chain ID and full contract address;
2. a successful [Public API v1](/developers-and-integrators/api.md) response;
3. `officialFeelLaunch: true`;
4. the complete [onchain launch proof](/developers-and-integrators/contracts.md#onchain-launch-proof): chain-specific Doppler Airlock, Feel.cash integrator in `Airlock.create()`, and matching `Create.asset`; and
5. the Uniswap v4 pool identity.

The `0x…fee1` contract pattern is a useful visual signal. It is not sufficient verification by itself. The onchain proof identifies technical provenance candidates; only a matching API record with `officialFeelLaunch: true` should be presented as an official Feel.cash launch.

## Onchain launch filter

To discover new Feel.cash EVM launches without depending on names or metadata:

1. Watch `Create` events from the chain-specific Doppler Airlock.
2. Read the event's `asset` as the candidate token address.
3. Decode the parent transaction's `Airlock.create()` input.
4. Keep records whose `integrator` equals `0x3879B1Ee8389FfeFb7afd51b1bafb9fAF23d6699`.
5. Reconcile the asset's chain and complete contract address with the Feel.cash API before presenting it as official.

Do not filter every event from the Airlock as Feel.cash: the same Doppler infrastructure is shared by other launch applications. Do not treat the integrator as a cryptographic signature or proof of current official status: it is an immutable attribution field supplied at creation and can also appear in test or pre-rebrand records.

Minimal EVM identifiers:

```solidity
event Create(
    address asset,
    address indexed numeraire,
    address initializer,
    address poolOrHook
);
```

| Identifier                                      | Value                                                                |
| ----------------------------------------------- | -------------------------------------------------------------------- |
| `Airlock.create()` selector                     | `0x882db707`                                                         |
| `Create(address,address,address,address)` topic | `0x68ff1cfcdcf76864161555fc0de1878d8f83ec6949bf351df74d8a4a1a2679ab` |

Choose a confirmation threshold appropriate for the chain and listing policy. Store block and transaction provenance in your own index, handle removed or reorganized logs, and reconcile the result with the API before publishing it as official.

## Ingest launches

1. Poll `GET /v1/launches?launchedAfter=...` from an overlapping time window.
2. Follow every returned cursor before advancing the checkpoint.
3. Upsert by `(chainId, contractAddress)`.
4. Resolve the detail endpoint for immutable launch data, fees, and official launch status.
5. Index market activity from the recorded pool.
6. Refresh mutable metrics independently from immutable launch data.

Periodically reconcile historical pages. Late-arriving records and records sharing the same timestamp make a non-overlapping timestamp checkpoint unsafe.

## Canonical identity

| Field                  | Rule                                                  |
| ---------------------- | ----------------------------------------------------- |
| Primary key            | Chain ID + lowercase contract address                 |
| Public URL             | `https://feel.cash/:slug`                             |
| Brand                  | `Feel.cash`                                           |
| Ticker                 | Display with `$`; never use as identity               |
| Official launch status | Require `officialFeelLaunch: true` before attribution |
| Creator                | Optional attribution; not contract ownership          |

Names and tickers can collide. Never merge records by ticker, slug, creator, or image.

## Display Feel.cash

Use the exact name `Feel.cash` when presenting Feel.cash as a launch source. For compact source labels, use the official square icon. Use the full wordmark only where there is enough horizontal space.

![Feel.cash square icon](https://cdn.feel.cash/brand/feel-cash/feel-icon-128.png)

[Download the square icon (512×512 PNG)](https://cdn.feel.cash/brand/feel-cash/feel-icon-512.png)

Download production-ready files and copy stable CDN URLs from [Brand assets](/developers-and-integrators/brand-assets.md).

Branding is presentation, not verification. A Feel.cash logo, name, ticker, or `0x…fee1` address pattern does not prove that a coin is an official launch. Always verify the API record and complete onchain provenance described above.

## Display fees

Read the fee fields returned for the specific coin.

For current Feel.cash launches, the normal market fee is **1.5%**. At market opening, a temporary protection fee starts at 50% and decays linearly to 1.5% over 15 seconds. The Uniswap v4 LP fee is 0%; this is one market fee, not two fees stacked together.

Historical coins can have different fee and allocation rules. Do not overwrite their stored configuration with the current defaults.

## Handle chain and settlement data

Market chain, market pair, and payout settlement are separate fields.

A market can live on Robinhood Chain while Creator Fees and Referral Fees settle as Base USDC. Index the pair using the `numeraireAddress` returned for that launch rather than assuming every market uses WETH.

## Availability and moderation

An onchain contract or pool cannot be deleted by Feel.cash. A coin can stop being presented in Feel.cash products when its offchain content violates product rules.

The presence of an API record is not a listing recommendation. Exchanges and integrators remain responsible for their own listing, compliance, and risk decisions.

## Integration support

Contact `support@feel.cash` for integration questions and `security@feel.cash` for security disclosures.

Include the endpoint, request time, chain ID, full contract address, and response ID when reporting an ingestion problem.
