Thank you for helping grow the Midnight ecosystem list. You can submit DApps, libraries, developer tools, templates, and educational projects.
Before you open a pull request, read this guide and follow the Midnight documentation style guide for your README entry, pull request text, and any other markdown you change in this repository.
The repository name still uses "dApps" for historical reasons. This list covers more than DApps alone.
Midnight is building a public record of ecosystem activity for industry reports and tools such as Electric Capital. Repositories without the right metadata may not be counted, even when the work is active and high quality.
Complete these three steps on your project repository before you open a pull request to this list. Details are in Get your project on the map.
- Add GitHub topics: Required:
midnightntwrk. Optional:compactif your project uses Compact. - Add a README attribution sentence: One exact sentence near the top of your project README (wording depends on project type).
- Open a pull request here: Add your project to this awesome list (Step 3 in the blog; you are reading the guide for it now).
Pull requests are not accepted if Step 1 or Step 2 is missing on the submitted project repository.
The blog post also links to optional Zealy quests for each step. Completing Zealy quests is not required to merge a pull request here.
- Ecosystem attribution (complete before you open a PR)
- Quick checklist
- Documentation style guide
- How to submit a pull request
- Continuous integration (CI)
- What to submit
- Where to add your project
- Formatting your entry
- Review process
- If your submission is not ready yet
- Updating or removing an entry
- Reporting issues
- License
- Support and communication
Before you open a pull request:
- Your project is not already listed in README.md. If it is, open an issue to request an update instead of a duplicate entry.
- Your repository is public and open source.
- Your entry is in the correct section and in alphabetical order within that section.
- Your entry follows the format:
[Project Name](link) - One sentence description. - Your description is factual, concise, and non-promotional.
- Your pull request text and any markdown you change follow the Midnight documentation style guide.
- Your project meets the submission criteria for its type (DApp, tool, library, template, or learning resource).
- Step 1: Your project repository has the required
midnightntwrkGitHub topic (instructions). - Step 2: Your project README includes the correct attribution sentence near the top, using exact wording.
- Step 3: You are ready to open a pull request to this list (after Steps 1 and 2 are complete).
- You have filled out the pull request template.
Every submission must comply with the Midnight documentation style guide in this repository.
That guide covers:
- Tone and voice (direct, technical, non-promotional)
- Brand and terminology (for example, DApp, Midnight Network, zero-knowledge proof or ZK)
- Formatting and structure
- Inclusive language
Apply it to:
- Your one-line README entry description
- Your pull request title and description
- Any other markdown files you change in this repository
Reviewers treat style guide issues as required changes when they affect clarity, accuracy, or brand consistency.
You need a GitHub account. If you are new to GitHub, see First Contributions for a guided walkthrough.
If you are a collaborator or a member of the GitHub organization with push access to midnightntwrk/midnight-awesome-dapps:
- Clone the repository and create a branch from
main:git clone https://github.com/midnightntwrk/midnight-awesome-dapps.git cd midnight-awesome-dapps git checkout -b add-your-project-name - Edit README.md: add your entry in the correct section, in alphabetical order.
- Commit and push to the upstream repository:
git add README.md git commit -m "Add [Project Name] to [section name]" git push origin add-your-project-name - Open a pull request on GitHub targeting
main, or use the GitHub CLI:gh pr create --repo midnightntwrk/midnight-awesome-dapps --head add-your-project-name --base main --title "Add [Project Name] to [section name]" --body "Adds [Project Name] to the [section name] section."
- Fork midnightntwrk/midnight-awesome-dapps on GitHub.
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/midnight-awesome-dapps.git cd midnight-awesome-dapps - Add upstream as a remote (recommended, so you can stay in sync):
git remote add upstream https://github.com/midnightntwrk/midnight-awesome-dapps.git git fetch upstream git checkout main git merge upstream/main
- Create a branch for your change:
git checkout -b add-your-project-name
- Edit README.md: add your entry in the correct section, in alphabetical order.
- Commit and push to your fork:
git add README.md git commit -m "Add [Project Name] to [section name]" git push origin add-your-project-name - Open a pull request on GitHub from your fork into
midnightntwrk/midnight-awesome-dappsmain.
For a single README line change, you can use GitHub's web editor:
- Open README.md on GitHub.
- Click the pencil (Edit) icon.
- Add your entry, then choose Propose changes and open a pull request.
This works well for simple additions. For larger changes, use a local clone (Option A or B).
When you open a pull request, automated checks run on GitHub Actions.
Whether a check blocks merging depends on branch protection settings for this repository.
| Check | What it does | Typically blocks merge? |
|---|---|---|
| scan | Security scan of the repository | Yes, if it fails |
| license/cla | Contributor License Agreement | Yes, if not signed |
| add-to-project | Adds the PR to the DevRel tracking board | No (see below) |
Reviewers also check that your submission follows the Midnight documentation style guide. Style guide issues are handled in review even when no automated Vale check runs on this repository.
The add-to-project workflow uses an organization secret (DEVREL_TRACKER_TOKEN) that GitHub does not expose to pull requests from forks. On fork-based pull requests, this check fails with an error like:
Input required and not supplied: github-token
This failure is expected for fork-based PRs and does not mean your submission is rejected. Reviewers can still review and merge your PR. The failure is a workflow limitation, not a problem with your change.
If you have write access to the upstream repository (Option A above), push your branch directly to midnightntwrk/midnight-awesome-dapps to avoid this failure.
All pull requests are reviewed before merging. Your submission must meet the criteria below.
Whatever you submit (DApp, library, developer tool, template, or learning resource) should do what your README says it does.
- DApps and Compact-based projects: The repository must contain functional Compact code. Scaffolding, stub files, or AI-generated placeholder code that does not run will not be accepted.
- Tools, libraries, SDKs, and templates: The repository must include a working implementation, not a plan or a README-only repository.
- Learning resources: Tutorials and educational content should be complete and usable, not placeholders.
Reviewers may run or inspect the code as part of review.
Your repository must credit any projects, libraries, or templates it builds on. Pull requests where that credit has been removed or is unclear will be returned for revision before merging.
This is separate from the README attribution sentence required for ecosystem tracking.
The project should represent a genuine application, tool, or experiment built for Midnight Network. Test repositories, forks without meaningful changes, and near-duplicate submissions will not be accepted.
All submissions must be publicly accessible repositories with a clear open source license.
Your project repository must include the midnightntwrk GitHub topic before you open a pull request. Pull requests are not accepted if the topic is missing.
This is required for ecosystem attribution and tracking. See Get your project on the map for setup steps and related README attribution guidance.
Do not use midnight, midnight-network, midnight-compact, or midnight-ecosystem. Those variants are not tracked. Add compact only if your project uses the Compact language.
Your project repository README must include one attribution sentence near the top, using exact wording from the table below. Pull requests are not accepted if the sentence is missing or paraphrased.
Ecosystem tracking tools scan README files for these phrases. Custom wording may prevent your repository from being associated with Midnight Network.
| Your project type | Attribution sentence (use exactly) |
|---|---|
| DApps, contracts, or tooling that run directly on Midnight | This project is built on the Midnight Network. |
| SDKs, infrastructure, wallets, or services | This project integrates with the Midnight Network. |
| Developer tooling, frameworks, or libraries | This project extends the Midnight Network with additional developer tooling. |
How to choose a row:
- Most DApp sections (Finance and DeFi, Gaming, Identity and Privacy, Governance, Healthcare, Smart Contract Primitives): use the built on sentence.
- SDKs, wallets, indexers, explorers, infrastructure: use the integrates with sentence.
- CLIs, scaffolds, libraries, and developer tools in Developer Tools or Starter Templates: use the extends sentence when that best describes the project. If the project is primarily a DApp or contract repo, use built on instead.
See Get your project on the map for context.
Your submission must follow the Midnight documentation style guide. This applies to README entry descriptions, pull request text, and any other markdown you change.
Common issues reviewers flag:
- Promotional language ("best", "revolutionary", "seamless")
- Incorrect terminology (
dappinstead of DApp,zk proofinstead of ZK or zero-knowledge proof) - Passive voice or third-person phrasing where second person ("you") is clearer
Submit one new entry per pull request when possible. This makes review faster and easier to track. If you are adding several related projects from the same maintainer, mention that in the PR description.
Add your entry under the section that best matches your project. If you are unsure, pick the closest fit. Reviewers can suggest a better section during review.
| Section | What belongs here |
|---|---|
| Getting Started | Official Midnight team projects for education and onboarding only. Community submissions do not go here. |
| Smart Contract Primitives | Reusable contract building blocks (tokens, standards, shared libraries). |
| Starter Templates | Boilerplates, scaffolds, and project templates for new Midnight builds. |
| Developer Tools | CLIs, SDKs, compilers, indexers, explorers, wallets, MCP servers, and other tools that help developers build, test, deploy, or index. |
| Finance & DeFi | Payments, escrow, DEX, staking, tokenization, and other financial applications. |
| Identity & Privacy | Credentials, KYC, selective disclosure, and privacy-preserving identity systems. |
| Gaming | Games and interactive experiences on Midnight. |
| Governance | Voting, crowdfunding, and community governance. |
| Healthcare | Health-related applications using Midnight. |
| Learning Resources | Tutorials, courses, documentation, and community-created educational content. |
| Dormant Projects | Do not add new projects here. See Updating or removing an entry. |
Official ecosystem partners may use the 🔹 marker. Hackathon winners may use 🏆 where applicable. Do not add these markers unless your project qualifies.
Follow the Midnight documentation style guide for wording, terminology, and tone.
- Add your project in alphabetical order within the appropriate section (by project name, not URL).
- Use this format:
- [Project Name](https://github.com/org/repo) - Brief description of what it does.
- Keep descriptions factual, one sentence, and non-promotional. End with a period.
- Link to the primary repository or canonical project URL.
- Avoid marketing language ("best", "revolutionary", "seamless", and similar superlatives).
Avoid (promotional):
- [MyProject](https://github.com/org/repo) - The ultimate, revolutionary privacy solution for Midnight.Prefer (factual):
- [MyProject](https://github.com/org/repo) - CLI for deploying Compact smart contracts to Midnight Testnet.Optional: add secondary links on the same line after the description, for example npm or a live demo:
- [Project Name](https://github.com/org/repo) - Short description. - [npm](https://www.npmjs.com/package/example)- [Midnight Escrow](https://github.com/example/midnight-escrow) - Privacy-preserving escrow contract with conditional payments using zero-knowledge proofs on Midnight.| Mistake | Fix |
|---|---|
| Entry not in alphabetical order | Sort by project name within the section |
| Promotional description | State what the project does in plain language |
| Style guide violations | See Midnight documentation style guide |
| Link goes to a fork or mirror | Use the canonical repository URL |
| Duplicate entry | Search README first; update the existing line instead |
| Wrong section | See Where to add your project |
Missing midnightntwrk topic |
Add the topic on your repo, then open or update your PR |
| Missing or paraphrased README attribution | Add the exact sentence from the attribution table near the top of your project README |
Every listed project must have the midnightntwrk topic on its repository. Reviewers will not merge pull requests for projects that have not added it.
- Open your repository on GitHub.
- In the right-hand sidebar, find the About section.
- Click the gear icon next to About.
- In Topics, add
midnightntwrk(andcompactif your project uses Compact). - Save changes.
Full context and attribution steps: Get your project on the map.
Do not use: midnight, midnight-network, midnight-compact, or midnight-ecosystem. Those topics are not tracked for the Midnight ecosystem.
Add one of the sentences below near the top of your project README (not this awesome list README). Copy the sentence exactly. Do not rephrase it.
| Your project type | Attribution sentence (use exactly) |
|---|---|
| DApps, contracts, or tooling that run directly on Midnight | This project is built on the Midnight Network. |
| SDKs, infrastructure, wallets, or services | This project integrates with the Midnight Network. |
| Developer tooling, frameworks, or libraries | This project extends the Midnight Network with additional developer tooling. |
Reviewers will not merge pull requests if the submitted repository README lacks the correct sentence for its project type.
When you open a pull request, a reviewer from the developer relations team evaluates it against the criteria above. If a submission needs more time or broader team input, the reviewer tells you in the PR thread so you are not left wondering.
Review comments fall into two categories. The reviewer labels which category applies:
- Required changes. Items that must be addressed before merging, usually because they affect correctness, safety, style guide compliance, missing
midnightntwrktopic, missing or incorrect README attribution sentence, or whether the submission meets the criteria above. - Suggestions. Observations the reviewer thinks are useful for your project, offered as input rather than as merge conditions. You can take them or leave them.
Pull requests will not be merged with unresolved required changes. Suggestions will not block merging.
- Submission meets the criteria for its type
- Project repository has the
midnightntwrkGitHub topic - Project repository README includes the correct attribution sentence (verified via the link in the PR)
- Entry follows the Midnight documentation style guide
- Correct section and alphabetical order
- Canonical link and accurate one-line description
- CLA signed and required CI checks passing (where branch protection applies)
If a reviewer asks for changes:
- Push additional commits to the same branch on your fork (or upstream branch).
- Reply in the PR thread when you have addressed the feedback.
- Re-request review if the option is available on GitHub.
You do not need to open a new pull request for updates to the same submission.
If your project is early, still being built, or not yet in a state the list can include, the reviewer tells you specifically what to address before it is ready. You are welcome to return when those criteria are met.
A "not yet" is not a "no."
- Update a link or description: Open a pull request that edits the existing line in README.md. Mention what changed and why.
- Move to dormant: If a project is no longer maintained, open a pull request that moves it to dormant_projects/README.md following the pattern used by existing dormant entries. Explain why (inactive repo, archived, builder confirmed sunset, and similar).
- Remove: Open a pull request that deletes the line and briefly states why (project removed, duplicate, no longer open source, and similar). Tag the original author with
@github-usernamewhen possible so they are aware.
Open an issue if you want to:
- Suggest a new category or structural change to the list
- Report a broken link or outdated entry
- Ask whether your project fits before you invest time in a pull request
- Discuss anything that could make this list more useful
Please do not open issues solely to request that your project be added. Use a pull request instead.
This repository is maintained by Midnight Foundation and licensed under the Apache License 2.0. By submitting a pull request, you agree that your contribution may be included under the same license.
If you need help with Midnight, connect with the community on:
- Discord
- Telegram
- X
- Midnight Forum (technical Q&A)
- Midnight Docs
Thank you for contributing.