Defines the did:lux method for Lux Network. A DID document is stored on-chain as a compact binary record mapped by keccak256(did). The resolver is a read-only EVM precompile at 0x0060 that returns the DID document given a DID string. DID creation, update, and deactivation are transactions against the DIDRegistry contract on each EVM chain.
did:lux:<chain-prefix>:<hex-address>
Examples: did:lux:c:0xabc...def, did:lux:zoo:0x123...789.
Stored in DIDRegistry contract. Fields:
registry.createDID(authKeys, serviceEndpoints) -- sender becomes controller.registry.updateDID(did, authKeys, serviceEndpoints) -- controller only.registry.deactivateDID(did) -- controller only, irreversible.0x0060 or registry.resolve(did) -- returns DID document.Warp messaging (LP-6022) enables resolving a DID registered on one chain from another. The resolver precompile queries the origin chain via Warp if the DID prefix does not match the local chain.
1. Controller key rotation must be atomic -- old and new keys are never simultaneously valid.
2. Deactivation is permanent. A deactivated DID cannot be reactivated.
3. DID documents do not store private keys. Only public keys and service endpoints.
github.com/luxfi/standard/contracts/identity/DIDRegistry.sol |github.com/luxfi/evm/precompile/contracts/did.go |Copyright (C) 2020-2026, Lux Partners Limited. All rights reserved.
Licensed under the MIT License.