AntiVamp

API reference

Every endpoint, exactly as deployed.

Plain HTTP + JSON. Public checks need no key. Partner routes use sandbox or production Bearer keys — and fail closed when protection can’t be verified.

api.antivamp.io

Production · av_live_…

sandbox-api.antivamp.io

Sandbox · av_sbx_…

antivamp.io/api

This reference + OpenAPI

Decisions

Five outcomes. Zero ambiguity.

Prefer enforceLaunch() in the SDK — it verifies Ed25519 signatures and never treats “not block” as allow.

allow

Clear to launch

allow_authorized_only

Only the authorized wallet

block

Reject — protected identity

recheck_required

Retry — do not launch

service_unavailable

Fail closed

Endpoints

Surface area

Production /events/* also needs X-AntiVamp-Keeper: Bearer …. Sandbox event reports skip the keeper.

Public identity

No API key. Perfect for checkers, badges, and explorer UIs.

📖 Guide
MethodPathAuthStatusDescription
GET/POST/api/v1/identity/checkNoneliveCheck a name + ticker. Optional chain & launcher. Returns status, decision, authorized launcher, expiry, source.
GET/api/v1/identity/status?key=NAME::TICKERNoneliveIdentity detail + full event timeline by identity key.
GET/api/v1/protected-identitiesNoneliveExplorer list. Default status=active (reserved|protected|blocked), production only. Filters: q / chain / status / cursor (max 50).
GET/api/v1/reservations?wallet=…NoneliveReservations for a launcher wallet. wallet required: hex or base58 alphanumeric (3–64). Wildcards rejected — full dumps are not public.
GET/api/badgeNoneliveEmbeddable Protected-by-AntiVamp badge (SVG or JSON).

Signed decisions

Ed25519 validation — verify with public keys from /v1/keys.

📖 Guide
MethodPathAuthStatusDescription
POST/api/v1/launches/validateBearer keyliveSigned launch decision (5-min TTL). Idempotency-Key + nonce. 503 if signing unavailable.
GET/api/v1/keysNonelivePublic Ed25519 keys for verifying decisions (+ rotation overlap).
POST/api/v1/decisions/verifyNoneliveServer-side signature + freshness check. Prefer local SDK verify in production.

Launch lifecycle

Report launches and protection events. Production events need a keeper header.

📖 Guide
MethodPathAuthStatusDescription
POST/api/v1/launches/reportBearer keyliveReport a completed launch into the shared index (launch:report scope).
POST/api/v1/events/bondedBearer + keeper*liveBond lock: 60d reserved / 48h unreserved. Production requires X-AntiVamp-Keeper.
POST/api/v1/events/milestoneBearer + keeper*live~$1M MC lock: 90d reserved / 7d unreserved. Production requires keeper.
POST/api/v1/reservationsBearer keysandboxSeed a sandbox reservation for lifecycle tests. Production holds are on-chain only.
GET/api/v1/reservations/quoteBearer + reservation:preparelivePreview tier + on-chain quote (same oracle as prepare). Fail closed if stale.
POST/api/v1/reservations/prepareBearer + reservation:preparelivePrepare reserve tx + revenueShare snapshot. Sandbox always simulated (non-payable); production is creator-signable on-chain. Attribution from API key. Optional payer (Solana) splits fee payer from launcher — launcher co-signs via launcherApproval.
POST/api/v1/reservations/delegate-launcherBearer or keyless (holder signature)liveAuthorize one extra launch wallet on an active hold — the current on-chain holder signs a canonical message. Rescues holds paid by a wallet that cannot launch. Self-serve at /reservations.
POST/api/v1/reservations/sandbox-confirmBearer + reservation:preparesandboxForce-confirm a simulated sandbox prepare — seeds identity + accrues ledger without mainnet spend. Payouts stay gated.
GET/POST/api/v1/reservations/statusBearer + reservation:preparelivePoll prep status / report tx hash. Confirmed only after on-chain reconcile (or sandbox-confirm).
IFRAME/embed/reserve?launchpad=…Origin allowlistliveHosted partner Reserve widget (+ /embed/reserve.js helper). Theme + accent customizable per partner profile.
POST/api/v1/launch/pumpfun/metadataPublic (IP rate limited)livePin launch image + pump.fun-style metadata JSON to IPFS for /launch. 503 until the launch factory is enabled.
POST/api/v1/launch/pumpfun/preparePublic (IP rate limited)liveAntiVamp-native pump.fun launch: identity gate first, then official create_v2 (+ optional ≤10 SOL initial buy). Free launch; immutable 70/30 creator-fee share.
POST/api/v1/launch/pumpfun/fee-sharePublic (IP rate limited)liveFresh-blockhash fee-share tx after create confirms; retry path for reconciliation_pending.
POST/api/v1/launch/pumpfun/confirmPublic (IP rate limited)liveConfirm launch against on-chain state and index the identity. Mint alone never locks a ticker — bond/milestone locks do.

Partner revenue

Accrued launchpad share after on-chain confirmation. Production payouts stay gated off.

📖 Guide
MethodPathAuthStatusDescription
GET/api/v1/partner/profileBearer + partner:revenueliveSplit (bps), payout wallets, same-chain routing policy.
GET/api/v1/partner/revenueBearer + partner:revenueliveLedger summary + entries. Accrued ≠ paid.
GET/api/v1/partner/reservationsBearer + partner:revenueliveAttributed reservations with ledger status.
POST/api/v1/partner/reservations/syncBearer + partner:revenueliveReconcile pending prepares on-chain, accrue ledger, power Revenue Sync.
GET/api/v1/partner/revenue/reconcileBearer + partner:revenueliveSoft prepare↔ledger consistency check (read-only).
GET/api/v1/partner/payout-batchesBearer + partner:revenueliveDaily 24h payout plans/queues (read-only).
POST/api/v1/partner/payout-wallets/verify/challengeBearer + partner:payoutliveStart Solana/EVM ownership challenge.
POST/api/v1/partner/payout-wallets/verifyBearer + partner:payoutliveComplete wallet verification.
POST/api/v1/partner/payout-wallets/rotateBearer + partner:payoutliveArchive verified wallet and challenge a new address.

Solana reserve helpers

Build and confirm real on-chain Solana reservations.

📖 Guide
MethodPathAuthStatusDescription
GET/api/v1/solana/quoteNoneliveSOL quote for a tier + oracle freshness (fail closed if stale).
GET/api/v1/solana/reserve-contextNonelivePDAs, treasury, blockhash, oracle context for reserve txs.
GET/api/v1/solana/blockhashNoneliveFresh Solana recent blockhash.
POST/api/v1/solana/sendNoneliveBroadcast a signed Solana transaction via server RPC.
GET/api/v1/solana/tx-statusNoneliveTransaction confirmation by signature.

Sandbox & metering

Self-serve keys, logs, and usage for partners.

📖 Guide
MethodPathAuthStatusDescription
POST/api/v1/sandbox/keysNoneliveCreate a sandbox key. Raw key + webhook secret shown once.
GET/DELETE/api/v1/sandbox/keysBearer keyliveIntrospect or revoke the calling key.
GET/api/v1/sandbox/logsBearer keyliveRecent request logs for the calling key.
GET/api/v1/sandbox/usageBearer keyliveUsage aggregation: volume, errors, latency, by endpoint/chain/decision.

Webhooks

HMAC-signed deliveries with history and replay.

📖 Guide
MethodPathAuthStatusDescription
GET/POST/api/v1/webhooksBearer keyliveList or register endpoints. HTTPS only; private/metadata IPs rejected. X-AntiVamp-Signature (HMAC-SHA256).
PATCH/DELETE/api/v1/webhooks/:idBearer keylivePause, rotate secret, or delete.
GET/api/v1/webhooks/deliveriesBearer keyliveDelivery history with attempts and status codes.
POST/api/v1/webhooks/deliveries/:id/replayBearer keyliveReplay a recorded delivery.
POST/api/v1/webhooks/testBearer keyliveSend a signed test event to active endpoints.

Platform

Health, chains, disputes, and the machine-readable spec.

📖 Guide
MethodPathAuthStatusDescription
GET/api/v1/chainsNoneliveTyped chain registry + live health probes.
GET/api/v1/healthNoneliveIndex, HyperEVM RPC, Solana oracle, indexers, partner API.
POST/GET/api/v1/disputesNoneliveSubmit or read disputes (EVM wallet-proof). Guardian-reviewed.
GET/api/v1/openapiNoneliveOpenAPI 3.1 JSON for this API.

Errors

Structured codes, always

Shape: { error: { code, message, details? } }. Treat any validation 5xx as a blocked launch.

CodeHTTPMeaning
invalid_json400Body was not valid JSON.
invalid_request400Schema validation failed — details included.
wallet_required400GET /reservations requires ?wallet=…
invalid_wallet400wallet must be hex/base58 alphanumeric (3–64); no wildcards.
insecure_url400Webhook URL must be https and must not target private or metadata IPs.
missing_api_key401No Authorization: Bearer header.
invalid_api_key401Key unknown or malformed.
key_revoked401Key has been revoked.
wrong_environment403Sandbox key on api.antivamp.io (or live key on sandbox-api). antivamp.io console accepts both.
insufficient_scope403Key lacks the required scope.
keeper_required403Production event missing X-AntiVamp-Keeper.
production_reporting_restricted403Sandbox keys cannot seed production reservations.
webhook_not_found404Webhook id not found for this key.
delivery_not_found404Delivery id not found for this key.
rate_limited429Per-key or public per-IP limit exceeded.
validation_failed502Backend unavailable — fail closed.
service_unavailable503Not configured, or chain validation paused.
signing_unavailable503Decision signing key missing — fail closed.
keeper_unconfigured503Production events need ANTIVAMP_KEEPER_TOKENS.