What this repository owns
Programmable is a launch platform for Uniswap v4 products. This repository contains the Next.js application, the contract workspace, the public read model and the evidence that binds what the product shows to deployed code.
Classic is the direct launch model for a fixed supply token, a permanently locked ETH pool and configurable creator
rewards. Custom is the deterministic bundle model for products that need their own hook, application logic or
execution graph. Public V3.3 general-hook creation and wallet-owned lifecycle reads are live on Ethereum Mainnet. V2
and V1 history and schemas remain readable, while fresh authenticated POSTs are permanently read-only with
non-retryable 409 CUSTOM_LAUNCH_V2_READ_ONLY and 409 CUSTOM_LAUNCH_V1_READ_ONLY responses. Only V3.3 accepts new
submissions. CLI 3.3.9 is the current installable release and defaults to live profile 3.3.0. Explicit profile
3.4.0 output remains preparatory and is rejected by live capabilities until the backend activates that profile.
Each release defines its funding and signing path. User-funded flows keep the connected wallet in control of its own
transaction.
Launch models
| Model | What it creates | Access |
|---|---|---|
| Classic | A fixed supply token with configurable buy and sell transaction fees | Open through Create |
| Custom | A token or application with its own deterministic hook graph | Wallet-bound Custom Launch API |
A hook is a smart contract attached to a Uniswap v4 pool. The pool calls it at defined points in a transaction, which lets the product apply behavior at the pool level. A hook can change fees, accounting, access or other pool behavior, but the word hook does not establish safety, compatibility or launch approval.
How public state is built
- A launch request is normalized under the active Classic or Custom release.
- The active release authenticates and submits the required transaction under its published signer and funding policy.
- The required network confirms the transaction and the launch reaches the required finality.
- The product read layer publishes the canonical token and pool identity.
- Optional price, chart and liquidity data are attached only when their providers return current evidence.
Canonical launch identity remains visible when optional market data is unavailable. The application does not invent valuation, liquidity, provenance or provider support from a token name, ticker or image.
Repository map
| Path | Responsibility |
|---|---|
app/, components/ |
Product routes, API handlers and shared interface components |
lib/, indexer/ |
Product logic, onchain readers, indexing and external integrations |
contracts/ |
Foundry contracts, tests, deployment scripts, specifications and release evidence |
config/, scripts/, ops/ |
Shared configuration, verification and production operations |
tests/, docs/ |
Application tests and maintained product, security and operations documentation |
public/, assets/ |
Runtime brand files, social previews and repository presentation assets |
Read the complete project structure.
Run locally
Use Node.js 24.14.0, then install the locked dependency tree and start the application:
npm ci
cp .env.example .env.local
npm run dev
Open http://localhost:3000. Supply your own Privy, RPC and storage configuration in .env.local. Never commit RPC
credentials, storage tokens, signing material or other secrets.
Verify a change
Run the complete repository gate:
npm run verify
For a contract-focused change, also run:
npm run contracts:verify
These commands prove only the local revision that was checked. They do not prove deployment, production activation, provider availability or onchain lifecycle completion.
Public interfaces
| Surface | Canonical location |
|---|---|
| Product | programmable.market |
| Explore | programmable.market/explore |
| Documentation | programmable.market/docs |
| Custom Launch API keys | programmable.market/developers/api-keys |
| Wallet-owned V1 launch reads | api.programmable.market/v1/custom-launches |
| Custom Launch API readiness | api.programmable.market/readyz |
| Custom Launch CLI 3.3.9 | public V3 GitHub Release asset |
| Custom Launch CLI 1.0.1 | V1 compatibility asset |
| Custom Launch V1 OpenAPI | live reads and write fence |
| Custom Launch V2 OpenAPI | V2 reads, schemas and write fence |
| Custom Launch V3 OpenAPI | preparatory profile 3.4 contract; live/default remains discovery-bound profile 3.3 |
| Read-only developer reference | programmable.market/docs/developers |
| Read-only service status | developers.programmable.family/api/v2/status |
| Deployment manifest | developers.programmable.family/api/v2/manifest |
Ethereum contract addresses and integration data should come from the versioned manifest rather than screenshots, token names or third-party metadata.
V2 and V1 list and single-resource reads remain live for existing wallet-owned requests. Fresh POSTs return
non-retryable 409 CUSTOM_LAUNCH_V2_READ_ONLY and 409 CUSTOM_LAUNCH_V1_READ_ONLY; only V3.3 is the current
production submission contract. CLI and preflight checks prepare and classify exact bytes, while the API server makes
the durable decision and exposes no wallet handoff until the per-launch behavior, fee and liquidity evidence required
by the selected lane is verified. A 10 bps claim applies only to a fee-certified profile or adapter and its exact
stamped PoolKey; arbitrary Custom hooks are not automatically fee-enforced. No admission result is an audit or a
universal safety, honeypot, liquidity, tradeability or fee-behavior guarantee. Legacy Registry and GitHub submission
intake is closed.
Related repositories
| Repository | Responsibility |
|---|---|
Launch-Policy |
Versioned Custom launch requirements, policies and schemas |
Developers |
Read-only discovery manifests, API contracts and verification rules |
Release and security boundaries
production is the canonical full-product branch and the only source for website releases. main preserves public
contract and release-evidence history. Feature branches merge through reviewed pull requests.
Source verification, passing tests, a Registry record, a prepared action or a visible token page are not an external audit, a safety guarantee, proof of liquidity or wallet authorization. Deployment, activation, finality and public availability require separate evidence.
The smart contracts in this repository have not undergone an external audit or public security contest.
No comments yet
Be the first to share your take.