RFC: Embedded Wallet — DID keypair as MJN-scoped Solana wallet with hierarchical key derivation #268
imajin-jin
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The Realization
We did not design a wallet. We discovered one.
Imajin chose Ed25519 for DID keypairs because it was the right cryptographic primitive for sovereign identity. Solana uses Ed25519 for wallet addresses. The choice was made for identity, not settlement. Solana's use of Ed25519 was already a fact of the world — but nobody was thinking about wallets when the first keypair was generated.
On March 9, 2026, during a conversation about whether users would need to connect external wallet apps to trade MJN, we realized: they already have wallets. Every DID keypair generated at registration is a valid Solana keypair. Every backup file already contains a wallet private key. Every registered identity — ~25 hard DIDs, ~48 soft DIDs — is one derivation away from holding MJN tokens.
Nobody planned this. The architecture planned itself. When you build from the right primitives — sovereign keypairs, typed identity, trust graphs, embedded attribution — the late decisions make themselves. The settlement layer was already inside the identity layer, waiting to be noticed.
This is what happens when the architecture is honest.
Summary
Every Imajin DID keypair (Ed25519) is already a valid Solana keypair. This RFC proposes making that explicit: every identity is a wallet by default, scoped to MJN token settlement, with hierarchical key derivation for purpose-scoped child keys.
Design Principles
MJN-Scoped Only
The embedded wallet transacts MJN tokens only. Not general-purpose Solana. Not SPL tokens. Not DeFi. This is a settlement instrument, not a trading platform.
Security consequence: A compromised key can only affect the MJN balance in that wallet. No bridge exploits, no token approvals, no DeFi drainage. The blast radius is structurally contained.
And it gets safer with scope. Generate child keys for different purposes — a spending key, a delegation key, an app session key. Each one is revocable by the master. Compromise one and the damage is limited to that key's scope. This is the opposite of general-purpose wallets where one leaked seed phrase means everything is gone.
Identity IS the Wallet
Gas Subsidization
Solana transactions cost ~$0.001. The MJN Foundation operates a gas pool that covers transaction fees for MJN settlements. Users never think about SOL or gas.
Hierarchical Key Derivation
The master DID keypair is the root identity. Child keys are derived for scoped purposes:
Key Types
did:imajin:ryandid:imajin:ryan/spendingdid:imajin:ryan/savingsdid:imajin:ryan/delegate/jindid:imajin:ryan/session/eventsPer-Primitive Wallet Behavior
The wallet capability exists on every identity primitive, but governance follows the identity type:
Individual
Family
Cultural
Org
Settlement Integration
.fair → On-Chain Settlement
When a .fair manifest triggers a payment:
Trust-Gated Inference Payments
When someone queries a presence through the trust graph:
Implementation Phases
Phase 1: Surface the Wallet
Phase 2: Receive MJN
Phase 3: On-Chain Settlement
Phase 4: Hierarchical Keys
Security Model
Blast Radius Containment
Key Rotation
If a master key is compromised, the trust graph provides social recovery:
Open Questions
did:email:soft DIDs get wallet addresses? Probably not until upgrade to hard DID.Dependencies
12rXuUVzC71zoLrqVa3JYGRiXkKrezQLXB7gKkfq9AjK)@imajin/auth)@imajin/fair)References
docs/mjn-whitepaper.mdBeta Was this translation helpful? Give feedback.
All reactions