# Programmable agent guide

Programmable has two launch experiences: Module Mode composes a coin from reviewed modules, while Custom launches an individual token, hook or application. Public launches use Robinhood. API keys are available for Custom Launch Plans.

Machine-readable entry point: https://programmable.market/api/agent
Current release contracts: https://programmable.market/.well-known/programmable.json
All documentation: https://programmable.market/llms.txt
Full documentation: https://programmable.market/llms-full.txt

## Connect

A connection file uses schema programmable.agent-connection.v1. Read credential.value privately into PROGRAMMABLE_API_KEY; do not print it. Use Authorization: Bearer $PROGRAMMABLE_API_KEY only on https://api.programmable.market. Read guideUrl and discoveryUrl without credentials. The key itself is an opaque credential, not an encoded manual. Its presence does not prove that any particular operation is authorized.

New Custom Launch Plan keys grant custom-launch:create and custom-launch:read. There is no public API for submitting modules. Existing keys keep their original scopes, wallet binding, expiry and chain restrictions. A scope error is not a reason to rotate or broaden a key automatically. Launch history can include requests from other keys and linked wallets in the same account; the key is not isolated to one project. Its saved chain restrictions still apply. The key cannot sign transactions, move funds or change fee recipients.

## Choose the workflow

- Trade a coin: open https://programmable.market/token/TOKEN_ADDRESS?chain=4663 and use the trading panel on its coin page. Choose the direction, enter an amount or use Max, then review the current quote and minimum received. Some tokens require an exact-amount approval before quoting the swap. The connected wallet signs; a pending or unknown transaction must be reconciled before another send. The selected launch needs an executable ETH trading route; non-trading applications do not become swap markets.

- Configure a normal coin: https://programmable.market/launch/modules. Choose the name, symbol, optional image and social links, initial buy and creator swap fees, then optionally add modules. A missing image resolves to the Programmable logo at launch; website, X, Telegram, Discord, GitHub and GitBook links are stored in token metadata. Review and sign with the connected wallet. Read https://programmable.market/api/module-mode for the active engine and catalog. This browser wallet path does not have a generic Module Mode API create endpoint; do not invent one.

- Build a complete custom hook, token or application: follow the Robinhood Custom Launch Plan instructions below. Robinhood wallet handoffs open at https://programmable.market/developers/api-keys?start=custom&chainId=4663.

- Find a coin: https://programmable.market/explore. The creator's coins appear at https://programmable.market/profile. Open https://programmable.market/launch/modules/manage/{tokenAddress} with the actual token address for supported module funding, reward claims, fee claims and creator-recipient controls. These are wallet actions with role checks.

## Browser controls

Use each control's accessible name and role. Explore has one search field, a Sort launches group with pressed states, Filters with an expanded state, and Previous page / Next page controls with disabled states. The website starts Explore with highest market cap; the API accepts an explicit sort. Changing the search or sort loads the selected results. Wait for the launches list's aria-busy state to clear before paging. Background updates keep the existing cards available.

Module Mode and Profile show layout placeholders while their code or data loads. These placeholders are decorative, not available modules, empty balances or actionable controls. Read the loaded catalog and current wallet state. Connect wallet opens the wallet chooser; selecting an account is not a completed signature. After a wallet prompt or transaction opens, wait for its current status instead of clicking the launch, claim or swap action again. Use Try again for a failed read and reconcile pending transactions before another send.

## New Robinhood Custom Launch Plans

Use https://api.programmable.market/v4/chains/4663/custom-launch-contract/guide.md for the exact current schema and workflow. First read https://api.programmable.market/v4/chains/4663/custom-launch-capabilities; require availability.operations.create.state to be active. Bind the manifest at https://api.programmable.market/v4/chains/4663/custom-launch-contract/manifest.json and read https://api.programmable.market/v4/chains/4663/custom-launch-contract/agent-setup.json before packing. The [quickstart](https://programmable.market/docs/developers/custom-launch-quickstart) and https://api.programmable.market/v4/chains/4663/custom-launch-contract/openapi.json provide the public entry points.

For a new open plan, use admissionPolicy programmable.custom-launch-policy.provenance.v1, feeObligations [] and publication.visibility listed. The project's own contracts may define owner controls, pause behavior, liquidity and fees. A Programmable stamp records provenance only; it does not certify safety, economics or tradability.

Preflight the exact packed request with POST /v4/chains/4663/custom-launch-plans:preflight, then create with POST /v4/chains/4663/custom-launch-plans using the same bytes and an Idempotency-Key. Preserve both on retries. If action_required, follow the returned remediation and do not ask for a wallet signature yet. The API key cannot sign or broadcast. The controller wallet reviews and signs the exact prepared transaction separately; reconcile an uncertain transaction before sending again.

After finality, read https://api.programmable.market/v4/chains/4663/finalized-launch-projections and https://programmable.market/developer-reference/robinhood-terminal-indexer#custom-launch-plans for source-bound indexing. A verified launch identity is separate from market data and executable trading routes.

## Earlier Robinhood profiles

The older /v4/chains/4663/custom-launches profile is for existing launch history and recovery; it does not accept new requests. MultiRole V2 information at https://api.programmable.market/v4/chains/4663/multi-role-custom-launches/capabilities, https://api.programmable.market/v4/chains/4663/multi-role-custom-launches/guide.md and https://api.programmable.market/v4/chains/4663/multi-role-custom-launches/client.mjs is for existing requests. Its Native20 and evidence_required rules do not determine eligibility for a new open Custom Launch Plan. The 4.1 profile is separate from the current Plan contract.

## Index Module Mode launches

For terminal or indexer work, read https://programmable.market/api/module-mode/indexer/v1 and https://programmable.market/developers/module-mode-indexing-v1.md. The indexer/v1 JSON reference describes Native V1. Native V2 and Engine V1 use their own exact source adapters and release evidence, separate from Custom Router stamps. Verify the source release, receipt, getters, configuration and finality. Preserve unfamiliar module IDs and historical revisions, including valid coins without a market. Explore is a presentation feed; scan the bound source contract for a complete archive.

## Module Mode fees and ownership

New Foundation releases on Ethereum and Robinhood charge 0.3% (30 bps) to the platform. Creator fees are separate. Resolve the live release before calculating fees: older immutable pools keep their original rates. Current Custom trade fees come from each chain's live capabilities; the new routed policy is 0.3%, with Ethereum using the gross native ETH leg and Robinhood using gross swap output. A verified existing pool fee does not incur an additional route fee. The launch stamp does not prove fee collection.

Fee rules are versioned. Native V2 and the Engine V1 quote profile charge 10 bps (0.10%) without eligible families, or 30 bps (0.30%) with them: 10 bps for Programmable and 20 bps shared equally among distinct eligible families. Creator buy/sell fees from 0% to 10% are additional. Quote fees convert to actual received ETH before ledger credit. Native V1 retains its original 20 bps: 10/10 with eligible families, or 20 to Programmable without them. Old claims stay in the original ledger. Non-trading deposits, requests and refunds have no swap fee. Operating budgets and network gas remain separate.

Authorized administrators can replace future creator fee recipients under the existing contract rules. Previously accrued claims, fixed module refund wallets and module-author reward wallets do not move with a CTO. The management interface shows the exact action and wallet before signing.

## Failure recovery

401: check that the intended environment variable is set, and that the key is current. 403 or missing scope: report the actual required permission. 409 idempotency conflict: keep the original request; changed source requires a new version and idempotency key. 429: follow Retry-After. 503 or an unavailable capability: preserve IDs and retry the read later. Never bypass review, substitute a different chain, fabricate approval, or send duplicate launches because of a timeout.

For a website outage, preserve the wallet transaction hash and exact source release. Reconcile the canonical receipt before another send. The existing Native management and Engine clients can verify and prepare actions with the original release evidence and an independent RPC; fee claims use the original ledger and entitled wallet. Keep wallet signing separate.
