// PUBLIC DOCUMENTATION / SOURCE-CHECKED
READ THE REGISTRY. SHIP WITH EVIDENCE.
DappChain is a public directory for approved dapps across chains. Browse without login. Use Privy to propose, edit, and interact.
START HERE
GETTING STARTED
- BROWSE. Open the public directory and inspect approved dapp records, chains, links, and versions.
- SIGN IN. Select SIGN IN. Privy verifies the session; protected requests use a Bearer access token.
- CONTRIBUTE. Open /submit to propose a new dapp or an update.
- INTERACT. Signed-in users can react, bookmark, and comment on approved dapps.
export PRIVY_TOKEN='<Privy access token>'
curl --fail-with-body \
-H "Authorization: Bearer $PRIVY_TOKEN" \
"$API_URL/v1/me"ORDINARY PRIVY USERS
CONTRIBUTE
Any valid Privy user can propose a create or update. The API stores the proposal as pending; publication happens only after review.
Every update binds to the current dapp version. Keep the returned request ID and proposal hash for later review or support.
curl --fail-with-body -X POST \
-H "Authorization: Bearer $PRIVY_TOKEN" \
-H "Content-Type: application/json" \
--data '{"operation":"create","body":{"name":"Example","slug":"example","websiteUrl":"https://example.org","category":"defi"}}' \
"$API_URL/v1/requests"Bot keys can propose without a Privy account. Never place a bot key in browser code, a URL, or a public docs snippet.
CONTROLLED PUBLICATION
REVIEW
Review access belongs to a Privy user with the current reviewer role or to a valid configured bot key.
WHO CAN DO WHAT
PERMISSIONS
| ACTOR | READ | WRITE | REVIEW |
|---|---|---|---|
| Public visitor | Approved dapps, filters, chains, public interactions | — | — |
| Privy user | Public reads + own protected data | Propose, edit, react, bookmark, comment | — |
| Privy reviewer | All permitted application reads | Reviewer actions + interactions | Inspect, rank, approve, reject |
| Bot key | Public reads + configured private reads | Propose and interact | Inspect, rank, approve, reject |
COPYABLE REFERENCE
API
Public discovery needs no credentials. Protected actions use Authorization: Bearer <Privy access token>. Bot authentication uses Authorization: ApiKey <raw key> on the server.
GET /v1/dappsPublic directory search and pagination.GET /v1/dapps/by-slug/:slugPublic stable slug lookup.GET /v1/filtersPublic chain and category choices.POST /v1/requestsPrivy user or bot proposal.POST /v1/requests/:id/decisionReviewer or bot decision.GET /v1/app/metrics/dappsPublic route in code; current DB metrics foundation is pending.export API_URL=https://api.example.com
curl --fail-with-body "$API_URL/v1/dapps?limit=20"
curl --fail-with-body "$API_URL/v1/dapps/by-slug/$DAPP_SLUG"PUBLIC DISCOVERY
MCP
POST /mcp is open and read-only. It exposes exactly two tools: search_dapps and get_dapp.
search_dappsSearch, filter, order, and paginate approved dapps.get_dappRead one approved dapp by UUID.MCP cannot submit proposals, inspect reviews, decide requests, mutate interactions, or trigger archival.
curl --fail-with-body -X POST \
-H "Accept: application/json, text/event-stream" \
-H "Content-Type: application/json" \
-H "MCP-Protocol-Version: 2026-07-28" \
-H "Mcp-Method: tools/list" \
--data '{"jsonrpc":"2.0","id":"1","method":"tools/list","params":{}}' \
"$API_URL/mcp"SHORT ANSWERS
FAQ
Do I need an account to browse?
No. Approved dapp reads, filters, chains, public interactions, and MCP discovery are public.
How do I log in?
Select SIGN IN in the header and complete the Privy flow. The browser uses the resulting session for protected actions.
Is MCP closed?
No. MCP is open and read-only. The protected surfaces are proposal, review, and mutation routes.
Are metrics live?
The route and readers exist in code, but the current database has not applied the metrics snapshot table. Treat metrics data as pending until that migration is verified.
Can an ordinary user approve a proposal?
No. Approval requires reviewer permission or a valid configured bot key.