Flap Apps (Draft Spec)

From a token launchpad to an app launchpad.

Flap will not only be a launchpad for tokens β€” with Flap Apps, it becomes a launchpad for apps. Ship your contract; Flap hosts your UI and backend and keeps your app running. Your app, unstoppable.

Table of Contents

Vision

Today, everything built on Flap starts with a token. Flap Apps remove that requirement. Any project with a smart contract β€” a game, a tool, a launchpad, or a Vault β€” can launch on Flap and get the same guarantees mechanism tokens get today:

  • Audited contracts, reviewed by Flap and its partner security firms.
  • Flap-hosted UI, so the app doesn't disappear when its creator walks away.
  • Flap-hosted backend, through shared infrastructure instead of servers the developer has to keep alive.

Roadmap

StageWhat it coversStatus
1. Vaults + Vault UIToken tax flows into a custom contract; Flap hosts its UI on the token pageLive
2. Flap App v2 developer previewStandalone apps with no token, built with the template's Flap App v2 modeDeveloper preview
3. Flap Shared Indexer (FSI)Flap-hosted backend: index and query any contract's eventsBeta β€” BNB Chain Testnet β†’ BNB Chain Mainnet β†’ Robinhood Chain
4. Flap Apps launchAudited Flap Apps published at flap.sh/apps/{slug} and listed in the Flap Apps catalogComing
5. More shared infrastructureNew backend capabilities driven by what Flap App developers needOngoing β€” tell us what you need

Draft. This page describes the direction and the draft specification of Flap Apps. The boundaries are intentionally open: during the draft phase we review every Flap App case by case, and details on this page may change before the final release.

From token launchpad to app launchpad

Flap started as a launchpad for tokens. With Vaults, a token's tax flows into a smart contract where the developer implements custom logic, and with a Vault UI that logic gets its own interface β€” hosted by Flap.

But the Vault model has a structural limitation: you need a token first. A token is launched, then it has a Vault, then the Vault gets a UI. Many applications don't fit that shape:

  • a tool (a dashboard, a calculator, a batch utility) that has no token of its own;
  • a launchpad built on top of Flap that launches other people's tokens but has no token itself;
  • a game whose contract people play with directly;
  • any other app that simply has a smart contract users want to interact with.

These apps still have a contract, still need a backend, and still need a UI that users can trust to keep working. Flap Apps widen the Vault + Vault UI model to cover them. Our goal is for Flap to be a launchpad of apps, not just a launchpad of tokens β€” and for Flap's infrastructure to make your app unstoppable.

Why Flap hosts mechanisms

Almost every token that uses a Vault has some mechanism built into that Vault β€” dividends, buybacks, games, social-proof routing. We call these mechanism tokens. Their biggest pain point is durability:

  • If the UI is hosted on the creator's own server, the mechanism dies when the creator rugs, loses interest, or stops paying for hosting.
  • If the mechanism needs a custom backend (an indexer, a database, a keeper), it dies when that backend goes down.
  • Users can't tell whether the contract behind a third-party UI is safe.

Flap removes these failure points:

RiskHow Flap addresses it
The contract is unsafe or centralizedFlap and its partner security firms review and audit the contract before it is listed
The UI disappearsThe UI is reviewed, built, and hosted by Flap
The backend disappearsBackend needs are served by shared Flap infrastructure (indexing, scheduling, oracles, verifiers), not a server the developer has to run

Developers only have to care about the contract itself, and integrate Flap's infrastructure into it so the app is as decentralized as possible. Users don't have to worry that the mechanism will break because of a dead server or an unmaintained contract: the contract has been checked by Flap and its audit partners, and the UI and backend are run by Flap.

What is a Flap App?

In this draft, a Flap App is:

  1. An app whose UI and backend are both hosted by Flap. It is published at its own URL on Flap (https://flap.sh/apps/{slug}) and does not need a token, a Vault, or a factory to exist.
  2. Backed by any smart contract. The contract can be a Vault, but it doesn't have to be. A game contract, a tool's helper contract, or a launchpad contract are all valid.
  3. Audited. The contract must pass an audit. We work with partner security companies who will audit your code.

That's it. We don't draw a hard boundary around what a Flap App may do β€” during the draft phase we keep the definition open and review submissions case by case.

Vault vs Flap App

Vault + Vault UIFlap App
Requires a tokenYes β€” the Vault receives a token's taxNo
ContractMust implement the Vault specAny contract (a Vault is allowed)
AuditOptional; required for the low-risk badgeRequired
UI hostingFlap-hosted on the token's Vault panelFlap-hosted at flap.sh/apps/{slug}
UI identityBound to a factory / Vault / token (match.bindings)Stable artifact ID + immutable slug; no bindings
BackendFlap shared infrastructureFlap shared infrastructure, including the Flap Shared Indexer
Product entryThe token's pageThe Flap Apps catalog

A project can ship both: a Vault UI for its token and a standalone Flap App. They are reviewed and published separately but can reuse the same contracts and most of the same UI code.

Architecture

flowchart LR
    U[User] -->|flap.sh/apps/slug| UI

    subgraph Flap["Hosted by Flap"]
        UI[Flap App UI<br/>reviewed and built by Flap Workbench]
        FSI[Flap Shared Indexer<br/>indexes and serves your contract's events]
        INFRA[Other shared infrastructure<br/>Trigger Service, AI Oracle,<br/>X General Verifier, FlapVaultEx]
    end

    subgraph Chain["On-chain"]
        C[Your audited contract]
    end

    UI -->|reads, simulates, writes<br/>through the Flap SDK| C
    C -->|emits FSI events| FSI
    UI -->|queries leaderboards,<br/>feeds, activity| FSI
    C <-->|callbacks / proofs| INFRA

All business state and every rule that moves funds live in your contract. Flap hosts everything around it.

The three layers

1. Contract β€” any audited contract

Your contract can implement any logic. The only hard requirement in this draft is that it passes an audit by one of Flap's partner security companies before the Flap App is published. Reach out to the Flap team to schedule one.

Keep in mind when you design the contract:

  • Put everything that matters on-chain. Anything involving funds must be enforced and readable on-chain. Off-chain data (including FSI) is a cache for display, never a settlement source.
  • Prefer Flap's shared infrastructure over your own servers. If you need a scheduler, an AI decision, or a social-proof check, use the existing services β€” see Quick start for Vault Developers Β§ 3. They work for any contract, not just Vaults.
  • Emit FSI events for anything your UI needs to list, sort, or page through (see below), so you never have to run your own indexer.

2. Backend β€” hosted by Flap

Most apps need a backend for one reason: to turn on-chain events into data a UI can query (leaderboards, user histories, feeds, activity logs). Instead of running your own indexer, database, and API, your contract emits a small set of standard events and Flap indexes them for you β€” this is the Flap Shared Indexer (FSI).

Other backend needs are covered by existing Flap services:

If you need to...Use...
Query lists, rankings, and histories of your contract's dataFlap Shared Indexer
Schedule a delayed or MEV-protected callbackFlap Trigger Service
Get a verifiable LLM/AI decision on-chainFlap AI Oracle
Verify that an X account posted a given textX General Verifier
Swap any token into another without writing DEX routingFlapVaultEx
Generate AI video on-chainFlap Video Generator

If your app needs a backend capability that none of these cover, tell us β€” that is exactly the kind of infrastructure we want to add.

3. UI β€” hosted by Flap

Flap App UIs are built with the flap-vault-component-template, the same template used for Vault UIs, in its standalone Flap App v2 mode. The developer preview lives on the template's feat/mini-app-v2 branch β€” start with its Flap App v2 quickstart and the step-by-step walkthrough.

The essentials:

  • A controlled business component, not a free-form website. Like a Vault UI, the App is a React component under src/vaults/{slug}/ (Component.tsx, manifest.json, VaultABI.ts, i18n.json). The same safety boundaries apply: no direct wallet provider access, no undeclared endpoints, no hidden transaction targets.

  • Independent identity. The manifest declares the standalone model and an immutable slug, with no token/factory/Vault bindings:

    {
      "schemaVersion": 2,
      "mode": "mini-app",
      "appModel": "standalone",
      "slug": "my-app",
      "artifactId": "vaultui_my-app_01ARZ3NDEKTSV4RRFFQ69G5FAV",
      "name": "My App",
      "displayTitle": { "en": "My App", "zh": "ζˆ‘ηš„εΊ”η”¨" },
      "match": { "bindings": [] },
      "i18n": ["en", "zh"]
    }
  • Reviewed wallet permissions. Instead of binding to a token, an App declares exactly which chains (walletChains) and which contracts and function signatures (walletContracts) it may call, with bounded native value and ERC20 approval caps. Dynamic per-token targets go through on-chain resolvers. The host refuses any transaction outside the declared policy.

  • One SDK, host-owned wallet. The App calls useFlapSdk({ chainId }) for reads, simulations, writes, and receipts, using the user's wallet already connected to Flap. Apps never implement their own wallet connection.

  • Check, test, package, review. yarn app:scaffold β†’ yarn app:check β†’ yarn app:e2e β†’ yarn app:package β†’ yarn app:verify-package, then submit the generated ZIP to the Flap App Workbench. Flap reviews, builds, and publishes it at https://flap.sh/apps/{slug}. No on-chain registration is required for the UI.

The earlier token-bound Flap App mode (bound to an 8888 token) is deprecated for new development. New Flap Apps use the standalone v2 model described here.

Flap Shared Indexer (FSI)

A Flap App does not run its own indexer. It emits events in the Flap Shared Indexer (FSI) templates, and Flap indexes them and serves them over HTTP to the app's UI: leaderboards, user histories, feeds, activity logs. See the FSI page for the templates, the base contract, write semantics, the query API and quotas.

Building a Flap App, step by step

  1. Talk to us early. Since the draft scope is reviewed case by case, share your idea with the Flap team before building too much.
  2. Write the contract. All rules involving funds live on-chain. Integrate Flap's shared infrastructure rather than running your own services.
  3. Emit FSI events for every list, ranking, or history your UI needs. Use absolute values for A/B and append-only records for L/G.
  4. Test with integration tests, and on BNB Chain Testnet or Robinhood Testnet (https://testnet.flap.sh).
  5. Get audited. Your contract must pass an audit by one of Flap's partner security companies.
  6. Build the UI with the template's standalone Flap App v2 mode: scaffold, implement against useFlapSdk({ chainId }), declare walletChains / walletContracts, and pass app:check and app:e2e.
  7. Package and submit the ZIP produced by yarn app:package to the Flap App Workbench, together with your slug, display titles, feature summary, endpoint declarations, and contract upgrade-authority notes.
  8. Go live. After review, Flap publishes the App at https://flap.sh/apps/{slug}.

Open questions

This draft deliberately leaves several things open. We will settle them as the first Flap Apps go through review:

  • Scope. There's no hard boundary yet on what a Flap App may be; each submission is reviewed case by case.
  • Contract upgradeability. Verified Vaults must use the beacon proxy pattern with upgrade authority held by the Flap Guardian, so audit findings can be fixed. Whether Flap App contracts follow the same rule is still being decided.
  • Audit process and cost for non-Vault contracts.
  • FSI trusted scope. Today trusted only marks Vaults registered on VaultPortal; whether audited Flap App contracts are also marked is still open.
  • FSI details still to be confirmed: whether data stays string or becomes bytes (this would change the A/B/L signatures and must be decided before signatures freeze), whether historical (time-travel) queries for A/B open up, and whether the default quotas are enough.
  • Real-time updates. A WebSocket push of not-yet-confirmed values is planned so UIs can show "confirming" state immediately; logic involving funds must still read on-chain state.

Feedback on any of these is welcome β€” reach out to the Flap team.