Privacy-first emergency workforce management powered by zero-knowledge proofs on Midnight Network.
Miro Whiteboard · Part of the DIDz ecosystem
SentinelDID is a cutting-edge proof-of-concept for decentralized identity management in emergency response. Built on Midnight Network, it showcases privacy-first DID-NFT creation and ZK proof-based verification for managing identities, hierarchies, and victim data in crisis situations.
Easily buildable, highly scalable emergency workforce management that revolutionizes hierarchical delegation, communication, and victim coordination — with effective, secure, and selectively private data handling.
- Real-time chain of command — Never wonder who is in charge or where an individual is supposed to be. With Starlink and World Mobile integration, no one gets left behind.
- Instant victim alerts — When victims are found, those closest are alerted along with the chain of command. Gone are the days of searching for someone who's already been found.
- DownMan switch — Groundbreaking inactivity detection alerts superiors and team if someone is unresponsive or loses contact. (Powered by DownMan protocol.)
- Dynamic hierarchy — When better qualified leaders arrive on scene, the AI-assisted protocol passes the baton and automatically updates the entire workforce's hierarchy schema.
- Approval-gated AI — All delegations, workloads, and AI assistance must be approved and may be modified in real time for fast, effective leadership.
- Instant volunteer onboarding — Volunteers can quickly join the workforce with just their KYC and a smart phone.
- Full situational awareness — Rescuers always know who they report to, where those individuals are, and what they themselves are tasked with.
- Privacy-preserving victim management — Superiors, subordinates, victims, and their families — all protected, all in contact, in real time. Victim identity is preserved whether alive or otherwise.
- AI-assisted first aid — Dedicated medical AI model with Bluetooth proprietary devices that communicate with the system in real time for victim vitals tracking as part of the SafeHealthData protocol.
- Biometric identity verification — KYC hashing with biometric variation enables reproducible, provable identity management in real time. Workers are verified beyond doubt before being placed in charge of life-and-death tasks.
The future is now for emergency response. Crisis management will never be the same.
This is the main repo for the DID Hackathon for Midnight for the SentinelDID Proof of Concept (PoC).
- User Enters KYC: Form submission in
index.html→ processed byserver.js. - KYC Stored Locally: Data stored in
kycStore→ hashed intokycHash. - Mint NFT:
kycHashsent to Midnight Testnet → stored indidNFTs→ publicdidIdgenerated. - QR Code Generation:
didIdlinked to a QR code → displayed for user. - Privacy Protection:
kycHashstored privately indidNFTs→ Proof server secures it. - ZKProof Verification: Verifier requests proof via
verifyAge→ private proof generated → result validated.
| Step | Description |
|---|---|
| User Enters KYC | Form → server.js |
| KYC Stored Locally | kycStore → hashed to kycHash |
| Mint NFT | kycHash → didNFTs → public didId |
| QR Code | didId → QR → user |
| Privacy Protection | kycHash remains hidden, proof server ensures security |
| ZKProof Verification | Verifier → verifyAge → private proof → result |
To launch the SentinelDID form and backend services, execute this command from the root directory (/SentinelDID-poc):
yarn turbo run start
Install the Midnight protocol on your local machine and spin up the testnet proof server. https://docs.midnight.network/develop/tutorial/
Fire up the engines with yarn turbo run start—here’s the magic it unleashes:
-
🔧 Backend API:
Ignitesserver.jsinsentineldid-api-folder—powers DID minting and zero-knowledge proof (ZKP) verification like a pro! -
🎨 Frontend UI:
Servesindex.htmlfromsentineldid-ui-folder—your sleek portal to decentralized identity management. -
🔗 Seamless Connection:
Links the frontend and backend for a flawless, smooth-as-silk experience.
-
Auto-Launch:
Once the server’s humming, your default browser should pop open the app—ready to roll! -
Manual Navigation:
No auto-open? No sweat—point your browser to:
http://localhost:3001
(Tweak the port if you've customized it—3001 is the default!)
Need to dock the ship? Easy peasy!
- In the Terminal:
HitCTRL + Cwhere the app’s running—shuts it down faster than a blink.
-
Ready to sail again? Just rerun:
yarn turbo run start
📌 Additional Notes
In the SentinelDID system, ensuring the uniqueness and integrity of Decentralized Identifiers (DIDs) is critical. To prevent individuals from creating multiple DIDs using the same immutable Know Your Customer (KYC) information, we’ve implemented a robust hashing schema.
This schema leverages cryptographic hashing to securely and efficiently detect duplicate or fraudulent attempts while preserving user privacy.
The hashing schema is designed to:
- Prevent duplicate DIDs by ensuring that each unique combination of immutable KYC data (e.g., full name, DOB, Social Security Number) corresponds to only one DID.
- Detect altered or fraudulent data by flagging inconsistencies in immutable fields, such as slight modifications to SSNs or driver’s license numbers.
We use fields that are unique to an individual and rarely change:
- Full Name (first name + last name)
- Driver’s License Number (DL#)
- Social Security Number (SSN)
- Date of Birth (DOB)
To ensure consistency and prevent variations (e.g., extra spaces or capitalization) from affecting the hash:
- Full Name → Converted to lowercase and stripped of spaces or special characters
(e.g., "John Doe" → "johndoe") - DL#, DOB, and SSN → Spaces, dashes, and separators removed
(e.g., "DL123 456" → "dl123456", "123-45-6789" → "123456789")
- The normalized fields are combined into a single string
(e.g., "johndoedl123456123456789") - The string is hashed using the Keccak-256 algorithm, a secure, one-way cryptographic function commonly used in blockchain systems.
- This produces a unique hash value tied to the immutable KYC data.
Before creating a new DID, the system checks if the computed hash already exists in storage.
- If the hash exists → The request is rejected, indicating a duplicate DID attempt.
- If the hash does not exist → The DID creation proceeds, and the new hash is stored for future checks.
✅ Enhanced Security
- By using a one-way hash, the original KYC data is never stored or exposed, ensuring user privacy and compliance with data protection standards.
✅ Duplicate Prevention
- The schema guarantees that only one DID can be created per unique set of immutable KYC data, preventing abuse of the system.
✅ Fraud Detection
- Any alteration to the immutable fields (e.g., a modified SSN) results in a different hash, flagging the attempt for further review.
🔹 Hashing Algorithm
- We use Keccak-256, a widely adopted cryptographic hash function in blockchain ecosystems, ensuring both security and performance.
🔹 Storage
- For the proof of concept, hashes are stored in an in-memory array (
kycStore). - In a production environment, this will be replaced with a secure, persistent database or blockchain-based storage solution.
🔹 Normalization
- Ensures that minor formatting differences (e.g., extra spaces or capitalization) do not bypass the duplicate check.
The hashing schema is a cornerstone of the SentinelDID system’s integrity.
By securely hashing immutable KYC data, we:
✔️ Prevent duplicate DIDs
✔️ Detect fraudulent attempts
✔️ Protect user privacy
All while maintaining a simple and efficient process.
This approach ensures that each DID is uniquely tied to an individual’s identity, fostering trust and reliability in decentralized emergency management.

