Skip documentation navigation

Build a module

Start with an idea and an API key. Your agent builds the module and submits its source for review.

Module Mode starts with a simple coin and adds optional programs. A contribution can provide its own logic, state and management actions, or propose a new market engine. Ideas do not have to fit a preset category. Required host capabilities and compatible configurations are part of the review.

For product settings, read Module Mode. For terminal integration, read Index Module Mode launches.

Get started

  1. Connect your EVM wallet on API keys and create a key with Launches + modules access.
  2. Save the key in your agent's PROGRAMMABLE_API_KEY secret environment. Describe your idea and copy the prompt from the key page.
  3. Your agent reads the API guide and verifies the current CLI. Before building, it runs module-contextto obtain your author wallet, default reward wallet, permissions and prerequisites.
  4. The agent builds and checks the module, prepares its exact source request, submits it, then keeps the returned ID. Use review-status-module to follow its build, review feedback and next step.

A GitHub repository or pull request is optional. The API receives the complete, hash-bound source package directly.

Rewards default to the wallet linked to your key. Specify another payout address only if you want to use one. The agent resolves any missing asset, funding or exit requirements before coding.

For an executable Engine contribution, download the source archive identified by the Engine starter manifest, verify its hash, then follow its README. The creator-attested settlement example has no approved revision or deployed host.

Your module package

Identity
Name, explicit version, stable module family, EVM author and EVM reward wallet.
Source
Every required source file and its SHA-256. Optional Git provenance includes both the repository and exact revision.
Configuration
Typed fields, units, defaults in the host catalog, limits and compatibility conditions.
Capabilities
Required runtime, contracts, dependencies, resources, funding and failure behavior.
Management
Reads, actions, input schemas, authorized roles and instructions for any controls your module needs.

Authenticated context provides the author and default reward wallet. Both become explicit fields in the source package. Repeated helper contracts or instances do not create extra author shares.

Profiles and configuration

Native programs and Engine contributions use the same source API. The operator selects programmable.native-solidity@1 for the Native callback interface or programmable.module-engine-solidity@1 for executable constructor, initialization and operation logic. A capability name in a descriptor does not implement that behavior.

These are installed review adapters. A new runtime, hook interface or external service can still be submitted with its actual requirements. Read the context's review coverage before building; the platform must provide any missing review environment or integration before publication.

SDK development.4 fields can declare binding.mode as input or fixed. Inputs can vary within their schema. A fixed override fails API compilation, and the constructor and reviewed host revision must also enforce it. One general quote template can accept different token contract addresses; a fixed quote template binds one address. General quote trading still fixes its infrastructure configuration.

The quote trading profile supports exact-input buys and sells. Fee conversion requires the reviewed direct Quote/WETH V3 route, qualified price history and liquidity, or direct WETH unwrap. User minimums can tighten its checks. Escrow and creator-attested settlement are non-trading profiles with funded liabilities and explicit withdrawal or expiry rules. Creator attestation does not independently prove delivery of an external service.

Read the Engine host specification for exact permissions, ABI, market and token limits. These source profiles do not imply an available catalog entry.

Submit and track

Use https://api.programmable.market and read the live capabilities before uploading. An absent or disabled capability means this deployment is not accepting contributions.

Capabilities
GET /v1/modules/capabilities
Author and prerequisites
GET /v1/modules/context
Submit source
POST /v1/modules/submissions
Your submissions
GET /v1/modules/submissions
One submission
GET /v1/modules/submissions/:id
Review readiness
GET /v1/modules/review-capabilities
Build and review progress
GET /v1/modules/submissions/:id/review

Module keys carry modules:submit and modules:read. Use one stable idempotency key for each exact request. If a connection fails, retry the same saved request and key. Changed source becomes a new immutable revision.

Read the complete API and CLI guide · Standalone CLI

Review and availability

The intake API stores an unreviewed source draft. Its draft_received receipt proves that the exact package was saved. It does not execute the uploaded source or approve the module.

The separate review status follows the operator's build plan, queued build, result and reviewer decision. Read its nextAction: wait for the build or decision, apply requested changes in a new source version, or wait for registry admission after acceptance. The review capability must be enabled before these private progress reads are available.

awaiting_plan means the platform must select or provide the review path. Keep the existing submission. Submit a new version only when its source needs to change.

status-module keeps the historical intake receipt. review-status-module reads current progress with your existing Module contributions key. An accepted review is followed by registry admission and catalog activation.

Sign in with the key's author wallet to see your status and feedback in Profile → Modules → Submissions. A different reward wallet does not own this history. Use Copy for agent to continue the submission. The prompt includes its identity and asks your agent to read the latest review with its existing key. Your API key is not included. Published shows verified publications after admission and catalog activation.

The Native and Engine Solidity build profiles each accept up to 4 MiB of packaged source, dependencies and documentation, and 16 KiB of encoded configuration. Engine review bounds execution to 3,000,000 gas and initialization/operation data to 16 KiB each. Intake can store larger packages; a successful upload does not establish compatibility with a build profile.

Public availability needs a reproducible build, the required security and compatibility checks, a reviewed version, exact deployed code and an active catalog binding. A new version does not silently change existing coins. Modules that need a new host capability include that extension in their review.

Author rewards

Native V2 and the Engine V1 quote profile charge 0.10% without eligible families, or 0.30% with them: 0.10% for Programmable and 0.20% shared equally among distinct eligible families. The creator's selected fee is additional. Eligibility is explicitly bound during admission.

Native V1 keeps its original 0.20% fee: 0.10% each for Programmable and eligible authors, or the full 0.20% for Programmable without eligible families. Old claims stay in their original ledger. Non-trading deposits, requests and refunds create no swap fees.

Rewards arise from actual qualifying fees. Submitting a wallet or receiving a draft ID does not create a payout. Module operating budgets and already earned claims remain separate from the creator's personal fee recipient.

Open the Module Mode builder

Recover transactions and claims

After a timeout, keep the transaction hash from your wallet and check its receipt before starting another action. The original release, account, token, calldata and value must agree. A saved browser record is not permission to resend, and a mined receipt is separate from finalized indexing.

If the website is unavailable, use the existing Native management client or Engine client with the verified original release and your RPC. Read accrued credit in the original ledger and review its claimTo(recipient) call from the entitled wallet. Claims send zero native value apart from network gas. Module budgets and escrow refunds use their own instance or host actions. The source CLI does not send wallet transactions.