API reference
Module interfaces, launch API contracts and release discovery
Module Mode
Read agent discovery for the current contribution workflow and CLI manifest. The module API guide defines submission and review. The indexer JSON contract publishes the native source ABI and identity rules; the indexing guide explains the verification procedure. Read the current release from Module Mode availability.
Custom Launch APIs
Start with the API quickstart. Use live discovery to select a chain, profile and client release.
Robinhood, separate token and hook
V4 OpenAPI and pack configuration selected by discovery
Robinhood, shared token and hook
Ethereum
Detailed request and compatibility reference
Read customLaunchApi.partnerCredentials and customLaunchApi.agentIntegration in discovery. A partner root aggregates all partner-attributed launches; each subkey sees its stable lineage, and rotation preserves that history. Use custom-launch:create for preflight and creation and custom-launch:read for status. No API key can sign or broadcast a wallet transaction.
The agent remediation catalog explains structured errors and next steps. Preserve the exact request bytes and idempotency key when retrying. Include the returned request ID in support messages; never include the API key.
Robinhood V4
Robinhood Chain Mainnet uses V4 at eip155:4663. CLI 3.3.9 remains the live Ethereum V3 integration. Read the V4 and chain 4663 entries in live discovery; require all three public gates and verify the advertised immutable CLI release, source commit, manifest and checksum. Stop while pending-public-discovery-promotion, publicWrites: false, publicAuthorization: false or releaseReady: false is reported. A deployed runtime or source candidate is not activation evidence.
The 4.0 OpenAPI, pack config and source verification preserve historical 4.0.0. When discovery selects 4.1.0, use its OpenAPI, pack config and source verification.
Selected 4.1 requires a request-bound funding plan, exact launch and gas budgets, an atomic initial buy of at least USD 1 at permit authorization, positive minimum token output and a fresh server quote. Gas is additional; count the buy once. Its exact fee kernel accrues 20 bps of the gross native ETH leg once per successful swap, separately from creator and LP fees, as fixed-recipient PoolManager native claims; admission is not collected-revenue proof. Read the current generated agent guide for the exact funding, quote and fee boundary.
Use the returned resource.launchId as LAUNCH_ID, not the HTTP support request ID. A V4 client must poll with programmable-launch status LAUNCH_ID --api-version 4 --chain-id 4663 --watch --until authorized, stop for separate wallet review, signature and broadcast, then poll the same command with --until finalized. The CLI never signs or broadcasts. The V4 states are received, validating, action_required, authorized, awaiting_wallet_signature, wallet_action_required, submitted, sequencer_soft_confirmed, ethereum_posted, finalized and failed. action_required is remediation, not a wallet action. Source verification starts after finality and stays independent from indexing, trading and publication.
Shared token and hook on Robinhood
Use the separate MultiRole V2 capabilities, guide and client for one contract that implements both token and hook. Its request, funding and lifecycle contract is separate from V4 4.1. The automatic economic verifier accepts the exact Native20 recipe and supported constructor configuration; different source code or economic mechanisms return evidence_required. Preflight/create uses custom-launch:create; status/list uses custom-launch:read, bound to chain 4663 and the controller.
Native20 charges 20 bps (0.20%) of gross native ETH per successful buy or sell for Programmable, rounded up per trade. Creator and pool fees are additional. The fees guide defines accruals, claims and the Dune dashboard metrics. Track the MultiRole finalized feed separately from the existing V4 feed.
Ethereum V3 and public reads
On Ethereum Mainnet, GET /v3/capabilities describes the accepted profile and structural limits. Authenticated POST /v3/custom-launches/preflight evaluates the exact create bytes without consuming launch-creation quota, allocating a nonce or persisting a launch. It still consumes the ordinary route rate budget, including a partner credential's prepareRequestsPerHour budget. The Router V1 permit-reissue disposition route is wallet-key-only.
The server verifies required behavior, fee and liquidity evidence before wallet handoff. A 10 bps platform fee claim applies only to an Ethereum fee-certified profile or adapter and its exact stamped PoolKey. This historical policy is separate from Robinhood Native20.
Ethereum V2 and V1 preserve history and schemas. New creation returns nonretryable 409 CUSTOM_LAUNCH_V2_READ_ONLY or 409 CUSTOM_LAUNCH_V1_READ_ONLY; use the advertised V3 profile for new Ethereum submissions.
The Developer API version 2 at https://developers.programmable.family is read only and requires no API key. The OpenAPI operations below describe that service, including discovery, deployment manifests and launch reads.
Service status
Reports service availability separately from Classic discovery,
feed freshness, the Custom Launch API V1 compatibility state, the
additive currentCustomLaunchCreate V3 write pointer, and the
exact retained Fee-Enforced V2 historical profile, the retained gated
Direct Native Hook Graph V1 preview, the retained historical V2 descriptor,
and the active additive V3 general-lane descriptor for the public Custom
Launch API V3 route. A successful HTTP response is not itself proof that indexed
data is current, that a fee is enforced, that source is an exact match,
or that a contract was audited.
Optional EIP-155 chain ID from supportedChainIds. Omit for the Ethereum compatibility lane.
Current service and feed status.
The representation has not changed since the supplied If-None-Match value.
The public rate limit has been exceeded.
The service or required data source is temporarily unavailable.
GET /api/v2/status HTTP/1.1
Host: developers.programmable.family
Accept: */*
No content
Deployment manifest
Compatibility alias for /api/v2/manifests/1. New integrations should
resolve the selected chain through the per-chain manifest route.
Returns active, inactive historical and prelaunch chain/deployment profiles.
Active Classic discovery uses only the enabled V3 and V4 entries. V1 and
V2 remain inactive compatibility history and are not scanned; Stock is
excluded. Generic manifest- and Router-first consumers discover V4
through a manifest refresh without a client code or address change.
New EVM chains and Registry generations are added here so clients do not
need a code change. A prelaunch Registry carries null address and start-block
fields; clients must never replace those nulls with guessed values.
launchStampRouter is the independent provenance-only trust root for
Router-stamped Classic and Custom launches, not a public category. The frozen ABI,
its hosted URL and published ABI-file hash, pinned source/extraction reference, events,
indexed layouts, getter selectors, enum values and sole atomic selector are published. Its
separate deploymentEvidence object publishes the finalized Ethereum
deployment, runtime identities and observed immutable getters. Resolve
every address, start block, runtime identity and finality requirement from
the manifest. /launchStampRouter/canaryEvidence publishes the finalized
CustomGraph vector, while /launchStampRouter/classicCanaryEvidence
publishes separate exact finalized Classic V4 evidence.
canaryEvidence.routeCoverage.classicOnchainCanary is true. Direct verification uses only the
manifest-listed chain and Router through Ethereum JSON-RPC; historical
launches are outside Router V1.
Universal detection uses token or (PoolManager, PoolId) and then the
record's LaunchKindV1 value. The shared Classic hook is not a launch
identity and must not classify a Classic launch. Only a consistent
record from the exact canonical Router qualifies through Router V1.
customFeeEnforcedLaunchProfileV2 is a separate retained historical
launch profile, not Custom Registry Generation 2 and not a third public
category. Its exact revision and hash are authoritative. Publication
does not imply named-terminal adoption. Launch submission is not part of
this read-only API. Custom Launch API V1 POST is also read-only and returns
nonretryable 409 CUSTOM_LAUNCH_V1_READ_ONLY; V2 authenticated POST is
also read-only and returns nonretryable 409 CUSTOM_LAUNCH_V2_READ_ONLY.
Only metadata-bound V3 profile 3.3.0 accepts fresh submissions.
The gated Direct Native Hook Graph V1 preview remains available as
optional directNativeHookGraphProfileV1 contract data for compatibility.
The additive directNativeHookGraphProfileV2 descriptor is the retained
historical Custom Launch API V3 contract for project-owned token and hook
artifacts in exact 3–16-target graphs. It supports every valid Uniswap v4
permission mask and the none, exact wallet transaction value, and
EIP-3009 funding modes. Each accepted launch still requires its own exact
graph conformance receipt. The additive directNativeHookGraphProfileV3
descriptor publishes the active general lane. Its deterministic exact-source,
compiler and graph baseline applies role-aware blocking rules; every
unmatched finding remains a bound visible warning without a project exception.
No blocking finding makes the exact request eligible for mandatory Router
simulation; it does not authorize a launch. A blocking finding returns
action_required. The API server, never a CLI, LLM, or client, decides
authorization after the exact static admission baseline and pinned
Router simulation. Not-configured or unavailable runtime behavior
evidence leaves related claims unverified and does not itself block
handoff. An authenticated executed negative returns
BEHAVIOR_EVIDENCE_NOT_VERIFIED and blocks wallet handoff. A
worker-private exact permit may exist only for pinned simulation. Public simulating
and failed output keeps permit and wallet-transaction fields null. Its
api.agentIntegration object links the canonical
machine-readable remediation catalog and existing-project guide. Agents
resolve returned finding codes there, repair and rebuild the exact
project, then submit a new exact request; there is no project allowlist
or legacy GitHub fallback. The linked pack-config schema defines
programmable.eip3009-authorization-patch.v2 with static
nonceArgumentPath, rArgumentPath, sArgumentPath, and
vArgumentPath; v1 remains compatible for exact retries. New profile
3.3.0 requests require
programmable.project-metadata.v1; the declaration hash is bound into
the graph hash, prepared resource, launch ID, and wallet-reviewed Router
transaction. programmable.project-token-metadata-binding.v1 records
deterministic name and symbol extraction, but finalized token metadata
still requires post-deployment readback. Descriptions, images, and links
remain untrusted display data and never authorize execution. The
canonical V3 resource always carries immutable launchProfileVersion;
projectMetadata and projectMetadataHash are non-null for metadata-bound
3.2.0 and 3.3.0, and null for retained 2.0.0, 3.0.0, and 3.1.0
resources. Profile 3.2.0 retains its legacy nullable-image metadata
contract; fresh 3.3.0 packs use the stricter complete policy.
The canonical conditional schema remains in the linked Custom Launch V3
OpenAPI rather than being redefined here. Admission is
not an audit or a safety, honeypot, liquidity,
tradeability, or fee-behavior guarantee. Finalized consistent Router launches may enter
the launch feed; token-list projection additionally requires a token
identity. Neither descriptor is a third public category, and this
Developer V2 OpenAPI remains read-only: it describes but does not expose
the authenticated V3 write routes or executable wallet calldata.
Current deployment manifest.
The representation has not changed since the supplied If-None-Match value.
The public rate limit has been exceeded.
The service or required data source is temporarily unavailable.
GET /api/v2/manifest HTTP/1.1
Host: developers.programmable.family
Accept: */*
No content
Launches
Returns Classic and Custom launches through one cursor-paginated
envelope. Classic covers manifest-enabled V3 and V4 only. Its hosted
baseline is the fully traversed paginated
https://programmable.market/api/explore catalog, validated through
schema, scope, evidence and identity commitments and currently reporting
Envio deployment production-6157d22; the retired HTTP 410 legacy source
is not queried.
A launch can contain zero, one or several markets. The API
never fabricates a pool for a token without one. Token amounts are raw
decimal integer strings. Persist page.resumeCursor after processing a
completed poll and pass it back as after. page.nextCursor is only
for continuing the current page traversal. after and cursor must
not be sent together. Coverage gaps do not hide recognized records:
the response remains HTTP 200 with status: degraded or unavailable.
Finalized canonical-Router Custom records are an independent provenance
lane from the Custom Registry. Their token and pool identities remain
present through a bounded source whose canonical commitment is
recomputed before publication, plus a digest-pinned last-known-good
fallback for source outages. Absent fee or supply evidence stays
explicitly unavailable. The feed remains degraded and absence is not
authoritative until Router coverage is current. A Router record's
absent Registry fee policy is semantically valid only when its exact
entry and source-boundary digests are members of the accepted source
snapshot; source-shaped JSON alone is never sufficient. Finalized
Router identities are joined to the Custom Launch API finalized
metadata ledger only when launch ID, Router, token, hook, PoolManager,
pool ID, transaction, block and log index all match and the declared
metadata hash recomputes exactly. The resulting token.metadata stays
creator-declared; its immutable source binding is retained in
extensions["programmable/finalized-project-metadata-v1"]. A metadata
source outage or mismatch leaves those display fields unavailable and
never removes the recognized Router identity. Finalized
partner-launched Custom records may add launchedVia, an exact
read-only projection of the Custom Launch API's server-owned
partnerAttribution snapshot. It never changes category, economic
fee policy, provider evidence, review, safety, or index status.
Promoted Robinhood V4 records also retain the backend's complete
source-verification status in
extensions["programmable/backend-finalized-v4"].sourceVerification.
This status is independent from Router provenance and launch finality.
Only a durable Sourcify V2 exact result may name sourcify-v2 and carry
an evidence digest; Blockscout observations alone never establish an
exact match. Aggregate precedence is needs_attention, then retrying,
then queued, unless every component is exact_match.
Optional EIP-155 chain ID from supportedChainIds. Omit for the Ethereum compatibility lane.
Stable public launch category.
Opaque durable polling checkpoint from page.resumeCursor. Repeat the same chainId and category query scope that created it. Returns records observed after that checkpoint. Do not construct or parse it; do not combine it with cursor.
^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$Opaque page-continuation cursor from page.nextCursor. Repeat the same chainId and category query scope that created it. Do not construct or parse it; do not combine it with after.
^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$Maximum records returned on one page.
100Cursor-paginated launch feed, including bounded recognized records when quality is degraded or unavailable.
The representation has not changed since the supplied If-None-Match value.
The request parameters are invalid.
The public rate limit has been exceeded.
The service or required data source is temporarily unavailable.
GET /api/v2/launches HTTP/1.1
Host: developers.programmable.family
Accept: */*
No content
Token list
Returns a token-list-compatible projection for integrations that need
token identity and metadata. The top-level status reports projection
quality, and recognized complete token identities remain present when
unrelated coverage or market enrichment is incomplete. This includes
finalized canonical-Router Custom tokens with complete token identity.
Use the launch feed for markets, capabilities, provenance, finality and
complete fee disclosure; the compatibility projection does not infer a
fee from category or Router provenance.
Optional EIP-155 chain ID from supportedChainIds. Omit for the Ethereum compatibility lane.
Stable public launch category.
Token-list compatibility document with explicit ready, degraded or unavailable quality.
The representation has not changed since the supplied If-None-Match value.
The request parameters are invalid.
The public rate limit has been exceeded.
The service or required data source is temporarily unavailable.
GET /api/v2/token-list HTTP/1.1
Host: developers.programmable.family
Accept: */*
No content
The canonical OpenAPI source is maintained in the Developers repository. This copy is included so GitBook can render the interactive reference together with the official product documentation.
Last updated
Was this helpful?
