For the complete documentation index, see llms.txt
Community wallets
Midnight Network을 위해 커뮤니티가 만든 지갑 연동입니다. 이 프로젝트들은 공식 Lace wallet 너머로 지갑 지원을 넓히며, 각 제작자가 직접 유지보수합니다.
Midnight Foundation은 여기 나열된 프로젝트를 유지보수하지 않습니다. 각 제작자가 합니다. 연동하기 전에 compatibility matrix와 대조해 각각을 확인하고, 이슈는 maintainer에게 직접 제기하세요.
이 가이드는 DApp, backend, agent, 또는 개인 용도에 맞는 지갑을 고르도록 돕습니다. 그런 다음 그것을 연동하는 코드로 안내합니다. 전체 지형을 두 가지 질문으로 분류합니다. 누가 키를 통제하는가, 그리고 지갑에 어떻게 접근하는가입니다.
Midnight wallet 생태계는 빠르게 움직입니다. 일부 연동은 출시됐고, 다른 것들은 발표만 됐거나 아직 공개 문서가 없으며, 이 가이드는 그 상태를 그에 맞게 표시합니다. 현재 상태는 ecosystem catalog, Midnight forum, 그리고 sources를 참고하세요.
Quick answer
오늘날 거의 모든 Midnight wallet은 self-custody이므로, 핵심 선택은 어떻게 접근하느냐입니다.
- 브라우저 DApp: 1AM과 Lace를 DApp Connector를 통해 연동하세요.
- Backend, CI, 또는 AI agent: wallet CLI(
midnight serve와 그 MCP 서버)를 사용하세요. - NIGHT의 기관 custody: Fireblocks(자세한 내용은 Broader ecosystem 참고).
그런 다음 필요에 따라 좁히세요.
- 기본값으로 privacy: 1AM(기본 shielded, in-browser proving).
- mobile 우선 또는 embedded wallet: Kuira(Android SDK, on-device proving; Kuira 참고).
- 멀티체인 지갑 하나: Ctrl(connector를 feature-detect).
- 향후 소비자 onboarding: Midnight Passport(개발 중; Midnight Passport 참고).
urble은 소비자용 privacy 저축 앱이지, DApp 연동 대상이 아닙니다.
The custody and interface model
두 가지 질문이 어떤 지갑이든 자리를 잡아 줍니다.
- Custody: 누가 키를 통제하는가? Self-custody(최종 사용자), custodial(provider), 스마트 컨트랙트 또는 account abstraction(on-chain 코드), 또는 MPC/threshold(키를 여러 share로 분할).
- Interface: 어떻게 접근하는가? Browser, mobile, CLI, 또는 MCP(도구를 호출하는 AI agent).
두 축은 서로 독립적이므로, 한 지갑이 여러 칸을 차지할 수 있습니다. 예를 들어 self-custody 키에는 브라우저, CLI, agent 어디에서든 접근할 수 있습니다. 오늘날 Midnight에서는 거의 모든 지갑이 self-custody이기 때문에, 행은 주로 interface로 구분됩니다.
Midnight에서의 custody:
- Self-custody: 키가 최종 사용자의 기기, 확장, mobile secure storage, 또는 하드웨어에 머물고, 제3자는 서명할 수 없습니다. 거의 모든 Midnight wallet이 여기에 속합니다: Lace, 1AM, Kuira, Ctrl, Gero, SubWallet, NuFi.
- Custodial: provider가 키를 보유하고 서명합니다. 아직 first-party 소비자 custodial wallet을 문서화한 곳은 없으며, 단기 경로는 기관용 MPC에 거래소 또는 Wallet-IaaS provisioning을 더한 형태입니다.
- 스마트 컨트랙트 / account abstraction: 계정이 프로그래밍 가능한 authorization(multisig, 소셜 복구, session key)을 갖춘 on-chain 코드입니다. Midnight에는 native account abstraction이 없습니다. 여기 속하는 유일한 지갑은 Midnight Passport로, 개발 중이며 계정을 Compact contract로 만듭니다.
- MPC / threshold: m-of-n 정족수가 전체 키를 재구성하지 않고 서명합니다. Midnight에서는 NIGHT을 위한 Fireblocks가 이끄는 기관용 경로입니다.
The matrix
범례: Available는 beta와 alpha를 포함해 실제로 쓸 수 있는 Midnight 제품입니다. Emerging은 발표됐거나 기관용인 제품으로, 아직 출시 가능한 self-custody 제공물은 아닙니다. Not yet은 Midnight에 아직 없다는 뜻이며, 참고용으로 기울임꼴 업계 예시를 답니다. n/a는 해당되지 않습니다.
| Custody / Interface | Browser | Mobile | CLI (SDK / CI) | MCP (AI agents) |
|---|---|---|---|---|
| Self-custody | Available: Lace, 1AM, Ctrl, Gero, SubWallet, NuFi | Available: 1AM (iOS, Android), 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) |
| 스마트 컨트랙트 / AA | Emerging: Midnight Passport | Emerging: Midnight Passport | Not yet | Not yet |
| MPC / threshold | Emerging: institutional console | Not yet | Emerging: Fireblocks (institutional); Dynamic (Midnight not documented) | Emerging: MPC plus agent custody (industry) |
self-custody 행은 오늘날 네 가지 interface 모두에서 가동 중이며, 대부분의 DApp은 self-custody 브라우저·mobile wallet을 대상으로 합니다. account-abstraction 행에는 개발 중인 Midnight Passport 하나만 있습니다. MPC 행은 대체로 기관용입니다.
Choose by scenario
| Your scenario | Reach for |
|---|---|
| 데스크톱과 휴대폰에서 쓰는 소비자 privacy DApp | 1AM과 Lace; Android는 Kuira; 멀티체인은 Ctrl |
| 지갑이 내장된 mobile 앱(별도 설치 없음) | Kuira (Android; iOS와 React Native는 추후; Kuira 참고) |
| 여러 체인을 위한 지갑 하나 | Ctrl (먼저 feature-detect) |
| Cardano 쪽에서 NIGHT을 claim하거나 보유 | Lace, Gero, Yoroi, Eternl, NuFi, Vespr (Broader ecosystem 참고) |
| 소비자용 privacy 저축 앱 | urble |
| Backend 지급, airdrop, CI, 또는 end-to-end 테스트 | wallet CLI / midnight serve (CLI workflow 참고) |
| 자금을 보유하거나 옮기는 AI agent | wallet-cli MCP server, 가드레일과 함께 (AI and agent tooling 참고) |
| AI 지원 빌드 | Midnight Expert와 Edda 개발 보조 도구 (AI and agent tooling 참고) |
| 기관용 또는 규제 custody | Fireblocks |
| Embedded 소셜 또는 passkey onboarding | Dynamic(Midnight 지원 확인) 또는 Wallet-IaaS |
두 가지 규칙이 대부분의 경우를 커버합니다. 브라우저 DApp이라면 표준 connector를 통해 1AM과 Lace를 대상으로 하고, 다른 지갑은 런타임 feature-detection 이후에만 추가하세요. 자동화나 agent라면 소비자용 확장이 아니라 CLI와 MCP 열을 사용하세요. proving 측면에서, 1AM은 in-browser로 proving하고 Kuira는 on-device로 proving하는 반면, Lace는 로컬 proof server가 필요합니다. 둘 다 지원하도록 feature-detect하세요(Where ZK proofs come from 참고).
The wallets
Lace, 1AM, Kuira는 전체 프로필을 다루고, 나머지는 더 짧습니다. 기능 상태는 functionality matrix에, 연동 차이는 Where wallets diverge에, 오류는 Troubleshooting에 있습니다.
프로필을 다루는 지갑은 세 범주로 나뉩니다.
- Midnight-native (1AM, urble, Kuira): Midnight의 dual-state, 영지식 모델을 위해 만들어졌고 shielded를 지원합니다. 1AM은 브라우저 연동 스토리를 갖췄고, urble은 최종 사용자 앱이며, Kuira는 Android에 더해 embed 가능한 SDK입니다.
- Cardano multi-chain plus Midnight (Lace, Ctrl, Gero): Midnight을 추가한 기존 wallet들입니다. Lace는 Input Output의 reference wallet이고, Ctrl과 Gero는 third-party입니다.
- Embedded / Wallet-as-a-Service (Kuira): 지갑을 만들기 위해 embed하는 SDK입니다. Kuira는 Midnight-native이며 self-custody입니다. 소셜·passkey 서비스인 Dynamic에는 first-party Midnight 지원이 없습니다(Broader ecosystem 참고).
Lace
Best for: 사용자가 로컬 proof server를 실행할 수 있는 표준 DApp.
Status: 가동 중, 부분 ConnectedAPI. 2.4.2 기준으로 Lace는 hintUsage를 undefined로 두고 getTxHistory()를 구현하지 않습니다. signData는 구현하며, 2.1.0 이상은 getProvingProvider를 노출합니다. 오픈소스.
- Overview: Input Output의 멀티체인 지갑(Cardano, Bitcoin, Midnight). Midnight에서는 Lace mobile 앱이 아니라 Chrome과 Edge 확장입니다. (lace.io, proof server setup, GitHub)
- Supports:
- NIGHT 관리.
- Dust Generation DApp을 통한 DUST 생성(초기화에 약 12시간; Fees and DUST 참고).
- shielded와 unshielded transaction, privacy는 opt-in.
- Cardano 쪽의 Cardano 자산, staking, 하드웨어 지갑.
window.midnight의 표준 connector(v4). 페이지를 로드할 때마다 새 UUID 키 아래에 들어갑니다. 현재 빌드는mnLace를 설정하지 않으므로, Lace는 reverse-DNS id인rdns: "io.lace.wallet"로 찾으세요(React wallet-connect guide 참고).
- Limitations: in-browser proving이 없어 로컬 proof server가 필요합니다.
getProvingProvider()가 반환하는 provider는 proof 요청을 그 server로 보냅니다. 2.1.0 이전의 Lace 빌드는 이 메서드를 노출하지 않으므로, feature-detect한 뒤 fall back하세요(Where wallets diverge 참고). Brave에서는 DApp이 로컬 proof server에 닿을 수 있도록 Shields를 끄세요. - Known issues: Midnight forum에서 2.1.0 이전의 Lace 빌드에
getProvingProvider가 없는 문제를 다룹니다. "Unable to get wallet address"는 보통 확장이 설치되어 있지 않거나 페이지를 새로고침해야 한다는 뜻입니다(forum). Lace issue tracker는 빌드별 버그를 추적합니다. 오래된 Firefox 빌드, shielded 전송을 막는 일부 2.0 빌드, Preprod에서 실패하는 대형 컨트랙트 배포 등이 있습니다. Input Output이 유지보수합니다.
1AM
Best for: Midnight을 우선으로 새로 만드는 DApp, 그리고 기본 shielded에 더해 mobile을 원하는 사용자.
Status: 가동 중, getProvingProvider(in-browser proving) 구현. 오픈소스: 아니오(소스 미공개).
- Overview: Midnight을 위해 특별히 만들어졌습니다. Chrome과 Firefox 확장은 가동 중이고, iOS와 Android 앱은 App Store와 Google Play에 있습니다(Android 패키지
com.webisoft.oneam). 팀은 Safari를 곧 출시 예정으로 안내합니다. Non-custodial이며 mobile 키는 기기 secure storage에 둡니다. (1am.xyz, Chrome, App Store, Play, forum guide) - Supports:
- NIGHT과 DUST, 실시간 regeneration 추적.
- 기본 shielded, selective disclosure 지원.
- in-browser WASM proving에 더해 hosted Proof Station(Where ZK proofs come from 참고).
getProvingProvider, 내장 DApp 브라우저, 작은 first-party 앱 생태계.window.midnight['1am']에 주입(표준 connector v4, name1AM, rdnscom.midnight.1am)하며,signData를 포함합니다.- Cardano: 브라우저 확장은
window.cardano['1am'](별칭window.cardano.app)에 CIP-30 provider도 주입하며, CIP-8signData를 제공합니다.
- Not documented: 하드웨어 지원. 1AM 사이트는 코드 스니펫과 함께 "Proof Station SDK"를 광고하지만, 1AM은 npm 패키지나 문서를 공개하지 않았습니다. 문서화된 것이 아니라 발표된 것으로 취급하고, 1AM은 표준 connector를 통해 연동하세요.
1AM은 자동 fee sponsorship을 문서화하지 않았으므로, zero-DUST 경험을 가정하지 마세요. 대상 네트워크에서 fee 처리 방식을 먼저 확인하세요.
Kuira
Best for: 별도 설치도 seed phrase도 없이 지갑이 내장되기를 원하는 mobile 우선 앱.
Status: alpha (v0.1.0-alpha02). 오픈소스: 부분(소스 jar는 Maven Central에 있고, repo는 비공개).
- Overview: native Android wallet이자 embed 가능한 SDK입니다. 지갑을 Android 앱 안에 넣으면, 외부 지갑 없이 그 앱이 Midnight에서 자체적으로 자금을 보유하고 옮길 수 있습니다. Kuira Labs가 만들었고 명시된 Apache-2.0 라이선스로 Maven Central(
io.github.kuiralabs:dapp-ui:0.1.0-alpha02)에 배포됩니다. 소스 repo는 비공개이고 소스 jar만 제공됩니다. (Kuira SDK docs) - Supports:
- shielded와 unshielded transaction.
- 몇 초 만에 끝나는 on-device ZK proving으로, Lace의 로컬 server나 1AM의 in-browser WASM과 달리 띄울 proof server가 없습니다.
- 앱 자체 프로세스 안의 embedded self-custody wallet.
- DUST regeneration과 indexer sync.
- 예제 앱: Kuira Starter counter, 그리고 공유 on-chain 게시판인 BBoard.
- Identity (the "Sigil"): 사용자의 identity는 seed phrase 대신 passkey에 지문을 더한 것으로, Kuira는 이를 Sigil이라고 부릅니다. 하나의 생체 인증으로 mint되는 passkey 유래 DID(decentralized identifier)이므로, onboarding이 seedless입니다. 복구는 같은 Google 계정에 로그인한 어떤 기기에서든 동작합니다.
SigilIdentityProvider는 교체 가능하며, Kuira는 Midnight Passport를 계획된 identity backend로 지목합니다. - Limitations:
- 오늘날 Android 전용(Kuira는 2026년 후반에 iOS와 React Native를 계획)이므로, 당분간 SDK 경로는 플랫폼에 묶여 있습니다.
- 브라우저 DApp Connector는 문서화되어 있지 않습니다.
connector모듈은 존재하지만,window.midnight표준과의 적합성은 공개적으로 명시되어 있지 않습니다. - Alpha 단계이며, 한계는 이후 릴리스에서 좁혀질 것으로 예상됩니다.
Ctrl
Best for: 하드웨어 지원과 함께 멀티체인 지갑 하나(Bitcoin, EVM, Cardano, Midnight)를 원하는 사용자. Self-custody, 브라우저에 더해 mobile; Midnight privacy 깊이는 문서화되어 있지 않습니다.
- Overview: Ctrl(이전 XDEFI)은 지원 체인 목록에 Midnight을 넣습니다. Chrome 확장에 더해 iOS(
6630386336)와 Android(xyz.ctrl.wallet)를 제공하며, Ledger와 Trezor를 지원합니다. Scavenger Mine과 Glacier Airdrop을 포함한 Midnight 프로그램도 운영했습니다. (ctrl.xyz, Scavenger Mine) - Connector: Ctrl은 catalog에
ctrl_wallet로 나타나며, 자사 확장이 Midnight 앱에 연결된다고 밝힙니다. Ctrl은 표준 connector 적합성을 마케팅 수준에서만 확인합니다. 목록에 올리기 전에 런타임에 주입된 provider를 feature-detect하세요(Where wallets diverge 참고). Ctrl은 Midnight 전용 SDK를 문서화하지 않습니다. - Limitations: Ctrl은 Midnight privacy 깊이(기본 shielded, DUST, selective disclosure, proving)를 개별적으로 문서화하지 않으므로, 약속하기 전에 테스트하세요. 오픈소스 아님.
urble
Self-custody, mobile. Brick Towers가 만든 Midnight 위의 소비자용 privacy 저축 앱입니다. shielded 송수신에 더해 selective disclosure를 제공하고, 규칙 기반 저축이 발표됐습니다. connector 대상이 아니므로, mobile DApp 연동에는 1AM을 사용하세요. 벤더는 오픈소스 여부를 문서화하지 않습니다. (Brick Towers)
Gero
Self-custody, 브라우저에 더해 mobile; 벤더가 Midnight 연동을 발표했거나 진행 중입니다. "zkFiat" 로드맵을 가진 privacy 중심 Cardano 멀티체인 지갑이며, Cardano 쪽에서 유효한 Glacier Drop·NIGHT claim wallet입니다. Midnight 페이지는 ZK proof, shielded transaction, selective disclosure, anonymous staking을 광고합니다. 그러나 아직 NIGHT, DUST, Midnight connector를 언급하지 않고 출시 날짜도 주지 않으므로, 이를 벤더 주장으로 취급하세요. 오늘은 Gero를 검증된 connector가 아니라 NIGHT claim wallet으로 사용하세요. (Midnight page, Glacier Drop)
Midnight Passport
스마트 컨트랙트 / account abstraction, 브라우저에 더해 mobile(설치 가능한 웹 앱). Midnight Passport는 Input Output이 Midnight용으로 만드는 신원·계정 레이어입니다. seed phrase 대신 passkey로 가입합니다. 그 설계에서는 Compact contract가 사용자의 자산을 보관하고, 사용자의 각 기기가 자체 키를 갖습니다. 컨트랙트는 자산을 내주기 전에 그 키 중 하나의 서명을 검사합니다. 계정 설계의 핵심은 두 Midnight Improvement Proposal(MIP)에 담겨 있습니다. 컨트랙트 custody를 다루는 MIP-0012와 multi-key authorization을 다루는 MIP-0013입니다. MIP-0013은 threshold(MPC) 위원회가 하나의 기기처럼 동작하는 프로필도 정의합니다.
Status(2026년 10월 3일): 개발 중. MIP-0012와 MIP-0013은 MIP 절차의 Proposed 단계로, 아직 채택 전입니다. Passport SDK는 계획·명세 단계이며 공개된 패키지가 없습니다. midnightpassport.com의 데모는 Preview, Preprod, Mainnet이 아니라 Stagenet에서만 동작합니다. Stagenet은 Preview·Preprod보다 최신 ledger를 돌리는 permissioned Midnight 테스트 네트워크입니다. 데모는 DApp Connector를 구현하지 않으며, 앱은 자체 postMessage bridge로 데모에 접근합니다. 계획과 최신 상태는 Midnight Passport site를 참고하세요. Midnight Passport docs는 데모와 그 app bridge를 다룹니다.