For the complete documentation index, see llms.txt
Community wallets
Community-built wallet integrations for the Midnight Network. These projects extend wallet support beyond the official Lace wallet, and their authors maintain them.
The Midnight Foundation does not maintain the projects listed here; their authors do. Verify each one against the compatibility matrix before you integrate, and file issues with the maintainers directly.
This guide helps you pick a wallet for a DApp, a backend, an agent, or personal use. It then points you to the code that integrates it. It sorts the landscape on two questions: who controls the keys (custody) and how you reach the wallet (interface).
The Midnight wallet ecosystem moves fast. Some integrations have launched; others remain announced or not yet publicly documented, and this guide labels them as such. For the current state, see the ecosystem catalog, the Midnight forum, and the sources.
Quick answer
Nearly every Midnight wallet today is self-custody, so the main choice is how you reach it:
- Browser DApp: integrate 1AM and Lace through the DApp Connector.
- Backend, CI, or AI agents: use the wallet CLI (
midnight serveand its MCP server). - Institutional custody of NIGHT: Fireblocks (see Broader ecosystem).
Then refine by need:
- Privacy by default: 1AM (shielded by default, in-browser proving).
- Mobile-first or embedded wallet: Kuira (Android SDK, on-device proving; see Kuira).
- One multi-chain wallet: Ctrl (feature-detect its connector).
- Future consumer onboarding: Midnight Passport (announced; see Midnight Passport).
urble is a consumer privacy-savings app, not a DApp-integration target.
The custody and interface model
Two questions place any wallet:
- Custody: who controls the keys? Self-custody (the end user), custodial (a provider), smart contract or account abstraction (on-chain code), or MPC/threshold (keys split into shares).
- Interface: how do you reach it? Browser, mobile, CLI, or MCP (an AI agent calling tools).
The two axes are independent, so one wallet can occupy several cells. You can reach a self-custody key, for example, from a browser, a CLI, or an agent. On Midnight today the rows differ mainly by interface, because almost every wallet is self-custody.
Custody on Midnight:
- Self-custody: the key lives on the end user's device, in an extension, mobile secure storage, or hardware, and no third party can sign. Almost every Midnight wallet is here: Lace, 1AM, Kuira, Ctrl, Gero, SubWallet, and NuFi.
- Custodial: a provider holds the keys and signs. No one has documented a first-party consumer custodial wallet yet; the near-term path is institutional MPC plus exchange or Wallet-IaaS provisioning.
- Smart contract / account abstraction: the account is on-chain code with programmable authorization (multisig, social recovery, session keys). Midnight has no native account abstraction, so this row is empty.
- MPC / threshold: an m-of-n quorum signs without reconstructing the full key. On Midnight this is the institutional path, led by Fireblocks for NIGHT.
The matrix
Legend: Available is a usable Midnight product, including beta and alpha. Emerging labels an announced or institutional product, not yet a shippable self-custody offering. Not yet means none on Midnight, with an italic industry example for reference. n/a does not apply.
| Custody / Interface | Browser | Mobile | CLI (SDK / CI) | MCP (AI agents) |
|---|---|---|---|---|
| Self-custody | Available: Lace, 1AM, Ctrl, Gero, SubWallet, NuFi | Available: 1AM (beta), urble, Kuira (Android, alpha) | Available: midnight-wallet-cli (midnight serve) | Available: midnight-wallet-cli MCP server |
| Custodial | Not yet (CEX web wallets) | Not yet (CEX apps) | Not yet (exchange custody APIs) | Not yet (provider agent tooling) |
| Smart contract / AA | Not yet (Safe, ERC-4337) | Not yet | Not yet | Not yet |
| MPC / threshold | Emerging: Midnight Passport; institutional console | Emerging: Midnight Passport | Emerging: Fireblocks (institutional); Dynamic (Midnight not documented) | Emerging: MPC plus agent custody (industry) |
The self-custody row is live today across all four interfaces, and most DApps target self-custody browser and mobile wallets. The account-abstraction row is empty, because Midnight has no native smart accounts. The MPC row is mostly institutional, with one consumer entry on the way in Midnight Passport.
Choose by scenario
| Your scenario | Reach for |
|---|---|
| Consumer privacy DApp on desktop and phone | 1AM and Lace; Kuira for Android; Ctrl for multi-chain |
| Mobile app with a built-in wallet (no separate install) | Kuira (Android; iOS and React Native later; see Kuira) |
| One wallet for several chains | Ctrl (feature-detect first) |
| Claim or hold NIGHT on the Cardano side | Lace, Gero, Yoroi, Eternl, NuFi, Vespr (see Broader ecosystem) |
| Consumer privacy savings app | urble |
| Backend payouts, airdrops, CI, or end-to-end tests | wallet CLI / midnight serve (see CLI workflow) |
| An AI agent that holds or moves funds | wallet-cli MCP server, with guardrails (see AI and agent tooling) |
| AI-assisted building | Midnight Expert and Edda dev-assistant tools (see AI and agent tooling) |
| Institutional or regulated custody | Fireblocks |
| Embedded social or passkey onboarding | Dynamic (confirm Midnight support) or Wallet-IaaS |
Two rules cover most cases. For a browser DApp, target 1AM and Lace through the standard connector, and add others only after runtime feature-detection. For automation or agents, use the CLI and MCP column, not a consumer extension. On proving, 1AM proves in-browser and Kuira proves on-device, while Lace needs a local proof server. Feature-detect to support both (see Where ZK proofs come from).
The wallets
Lace, 1AM, and Kuira get full profiles; the rest are shorter. Feature status is in the functionality matrix, integration differences in Where wallets diverge, and errors in Troubleshooting.
The profiled wallets fall into three categories:
- Midnight-native (1AM, urble, Kuira): built for Midnight's dual-state, zero-knowledge model and shielded-capable. 1AM has the browser integration story, urble is an end-user app, and Kuira is Android plus an embeddable SDK.
- Cardano multi-chain plus Midnight (Lace, Ctrl, Gero): established wallets adding Midnight. Lace is the Input Output reference wallet; Ctrl and Gero are third-party.
- Embedded / Wallet-as-a-Service (Kuira): an SDK you embed to create wallets. Kuira is Midnight-native and self-custody. Dynamic, a social and passkey service, has no first-party Midnight support (see Broader ecosystem).
Lace
Best for: standard DApps whose users can run a local proof server.
Status: live, with a partial ConnectedAPI (no getProvingProvider or signData yet). Open source.
- Overview: Input Output's multi-chain wallet (Cardano, Bitcoin, Midnight). For Midnight it is a Chrome and Edge extension, not the Lace mobile app. (lace.io/midnight, docs, GitHub)
- Supports:
- NIGHT management.
- DUST generation through the Dust Generation DApp (about 12 hours to initialize; see Fees and DUST).
- Shielded and unshielded transactions, with privacy opt-in.
- Cardano assets, staking, and hardware wallets on the Cardano side.
- The standard connector at
window.midnight.mnLace.
- Limitations: no in-browser proving, so you need a local proof server;
getProvingProvider()andsignData()are not implemented, so feature-detect and fall back (see Where wallets diverge). On Brave, disable Shields so the DApp can reach the local proof server. - Known issues: the Midnight forum discusses the missing
getProvingProvider. "Unable to get wallet address" usually means the extension is not installed or the page needs a refresh (forum). The Lace issue tracker tracks build-specific bugs: an outdated Firefox build, some 2.0 builds blocking shielded transfers, and large-contract deploys failing on Preprod. Maintained by Input Output.
1AM
Best for: new Midnight-first DApps, and users who want shielded-by-default plus mobile.
Status: live, implements getProvingProvider (in-browser proving). Open source: no (source not published).
- Overview: purpose-built for Midnight. Chrome and Firefox extensions are live; iOS and Android are in beta (Android package
com.webisoft.oneam); the team lists Safari as coming soon. Non-custodial, with mobile keys in device secure storage. (1am.xyz, Chrome, Play, forum guide) - Supports:
- NIGHT and DUST with real-time regeneration tracking.
- Shielded by default, with selective disclosure.
- In-browser WASM proving plus a hosted Proof Station (see Where ZK proofs come from).
getProvingProvider, a built-in DApp browser, and a small first-party app ecosystem.- Injects at
window.midnight['1am'](standard connector v4).
- Not documented: Cardano or multi-chain support, and hardware support. 1AM's site advertises a "Proof Station SDK" with a code snippet, but 1AM has not published an npm package or docs. Treat it as announced rather than documented, and integrate 1AM through the standard connector.
1AM has not documented automatic fee sponsorship, so do not assume a zero-DUST experience. Confirm fee handling on your target network first.
Kuira
Best for: mobile-first apps that want a built-in wallet, with no separate install and no seed phrase.
Status: alpha (v0.1.0-alpha02). Open source: partial (source jars on Maven Central; repo private).
- Overview: a native Android wallet and an embeddable SDK. You drop the wallet inside an Android app so it can hold and move funds on Midnight on its own, with no external wallet. Built by Kuira Labs and distributed on Maven Central (
io.github.kuiralabs:dapp-ui:0.1.0-alpha02) under a stated Apache-2.0 license. The source repo is private, and only source jars ship. (Kuira SDK docs) - Supports:
- Shielded and unshielded transactions.
- On-device ZK proving in seconds, with no proof server to run, unlike Lace's local server or 1AM's in-browser WASM.
- An embedded self-custody wallet in the app's own process.
- DUST regeneration and indexer sync.
- Example apps: a Kuira Starter counter, and BBoard, a shared on-chain bulletin board.
- Identity (the "Sigil"): your identity is a passkey plus fingerprint instead of a seed phrase, which Kuira calls a Sigil. It is a passkey-derived DID (decentralized identifier) minted by one biometric, so onboarding is seedless. Recovery works on any device signed in to the same Google account. The
SigilIdentityProvideris swappable, and Kuira names Midnight Passport as a planned identity backend, so the announced Passport and this mobile cell may converge. - Limitations:
- Android only today (Kuira plans iOS and React Native for later in 2026), so the SDK path is platform-locked for now.
- The browser DApp Connector is not documented: a
connectormodule exists, but conformance with thewindow.midnightstandard is not publicly stated. - Alpha, with limitations expected to close in later releases.
Ctrl
Best for: users who want one multi-chain wallet (Bitcoin, EVM, Cardano, Midnight) with hardware support. Self-custody, browser plus mobile; Midnight privacy depth is not documented.
- Overview: Ctrl (formerly XDEFI) lists Midnight among its supported chains. It offers a Chrome extension plus iOS (
6630386336) and Android (xyz.ctrl.wallet), with Ledger and Trezor support. It has also run Midnight programs, including Scavenger Mine and the Glacier Airdrop. (ctrl.xyz, Scavenger Mine) - Connector: Ctrl appears as
ctrl_walletin the catalog and states that its extension connects to Midnight apps. Ctrl confirms standard-connector conformance only at the marketing level. Feature-detect the injected provider at runtime before you list it (see Where wallets diverge). Ctrl does not document a Midnight-specific SDK. - Limitations: Ctrl does not individually document Midnight privacy depth (shielded-by-default, DUST, selective disclosure, proving), so test before you promise it. Not open source.
urble
Self-custody, mobile. A consumer privacy-savings app on Midnight, built by Brick Towers: shielded send and receive plus selective disclosure, with rule-based savings announced. It is not a connector target, so use 1AM for mobile DApp integration. The vendor does not document open-source status. (Brick Towers)
Gero
Self-custody, browser plus mobile; the vendor has announced Midnight integration or has it in progress. A privacy-focused Cardano multi-chain wallet with a "zkFiat" roadmap, and a valid Glacier Drop and NIGHT claim wallet on the Cardano side. Its Midnight page advertises ZK proofs, shielded transactions, selective disclosure, and anonymous staking. However, it does not yet mention NIGHT, DUST, or the Midnight connector, and gives no live date, so treat these as vendor-stated. Use Gero as a NIGHT claim wallet today, not a tested connector. (Midnight page, Glacier Drop)
Midnight Passport (announced)
MPC/threshold row, browser plus mobile (placed provisionally; the exact key scheme is not yet public). Announced but not yet live, from Input Output and introduced by Charles Hoskinson in 2026. A seedless, QR-onboarded consumer wallet that aims to give a new user a working wallet, name service, and multi-chain access in under 60 seconds. It uses per-device hardware-resident keys with trusted-helper recovery instead of a paper backup, selective disclosure, and chain abstraction (send to alice.midnight through the .night name service). It sits in the MPC row because it is the first consumer example on Midnight of custody beyond plain self-custody. Input Output has not yet detailed the full key scheme. It is not yet available for integration, and this page includes it as a signal of where consumer onboarding is heading. For updates, follow Midnight's official channels.