> For the complete documentation index, see [llms.txt](https://docs.antivamp.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.antivamp.io/partners/02_integration_guide.md).

# Integration Guide

## Where validation fits

Call `validateLaunch` at the moment a creator commits to a launch — after they choose a name + ticker, before you deploy the token/mint. Enforce the returned decision. Then `reportLaunch` on success, and report `bond`/`graduation`/ `milestone` events as they occur so protection windows extend across the network.

```
creator submits launch
  → normalize name+ticker (AntiVamp does this server-side; SDK matches)
  → validateLaunch()  ──▶ allow / allow_authorized_only / block / recheck_required
  → verify signature + freshness
  → enforce decision
  → reportLaunch()  → reportBond()/reportMilestone()  → webhooks update your UI
```

## Authentication

Bearer API key on every partner endpoint: `Authorization: Bearer av_sbx_…` (sandbox) or `av_live_…` (production, provisioned manually). Keys are server-side only — never expose them in browser code. The SDK enforces this by being Node-only.

## Decisions

| decision                | meaning                                                  | your action                                           |
| ----------------------- | -------------------------------------------------------- | ----------------------------------------------------- |
| `allow`                 | no conflict, or the launcher is the authorized wallet    | proceed                                               |
| `allow_authorized_only` | pair is protected; only the authorized wallet may launch | proceed only if your launcher == `authorizedLauncher` |
| `block`                 | active protection, unauthorized wallet                   | reject, show `reason`                                 |
| `recheck_required`      | data was not conclusively available                      | do not launch; retry                                  |

Always verify the signature and expiry before trusting a decision (`verifyValidationDecision`). Never launch on an expired decision — re-validate.

## Identity checks (public, no key)

`checkIdentity({ name, ticker, chain?, launcher? })` for read-only UI (e.g. show availability while the creator types). Not a substitute for `validateLaunch` at commit time.

## Reporting events

* `reportLaunch` — records the launch + token/mint.
* `reportBond` — bond completed. Applies 60d (reserved) / 48h (unreserved) lock.
* `reportMilestone` — verified \~$1M MC. Applies 90d / 7d lock.
* `reportGraduation` — graduation. Applies a bond-style lock.

Locks never shorten; the longest valid lock wins.

## Idempotency

Send `Idempotency-Key` (the SDK sends one automatically per call, or pass `nonce`). Retries return the stored response with `Idempotency-Replayed: true`.

## Rate limits

Sandbox: 60 req/min per key (HTTP 429 `rate_limited`). Production limits are set per partner. The SDK retries 429/5xx with exponential backoff.

## Chains

`GET /v1/chains` returns live status + health per chain. Only send `chain` values AntiVamp reports as live/integration-ready. See the [chain matrix](/partners/antivamp_partner_package.md#3-chain-support-matrix).

## Going live

Run the [conformance suite](/partners/09_checklists.md), then request production access at `https://antivamp.io/partners`. Production keys, higher rate limits, and signed production decisions are issued after review.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.antivamp.io/partners/02_integration_guide.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
