Identity
Identity and DIDs

Identity and DIDs

A SuperheroID is an æternity address plus the provider links attached to it in the AddressLink contract. There is no separate identifier scheme: the ak_… address is the identifier, the Ed25519 key it encodes is the verification material, and the links are the claims. For readers who know Decentralized Identifiers (DIDs) v1.0 (opens in a new tab), the model maps onto DID Core concepts like this:

DID Core conceptSuperhero equivalent
DID subject and controllerThe æternity account, an ak_… address
Verification methodThe Ed25519 public key the address encodes; signatures verified on chain with Crypto.verify_sig
AuthenticationWallet signed messages, using the æternity signed-message prefix, with a contract-held nonce
alsoKnownAsThe x, nostr and prefaens links in AddressLink
Service endpointThe nostr key used for chat; the site link
Verifiable data registryAddressLink state plus AENS
Update and deactivatelink and unlink, per provider

Superhero does not define a DID method, DID syntax, DID document or resolver. If you need a DID for interoperability with an external system, derive a did:key from the account's Ed25519 key or publish a did:web document yourself. AddressLink also exposes a DID-keyed namespace (link_did, resolve_did_controller and friends) in which the did is an opaque string; see AddressLink.

Verifying a SuperheroID

  1. Prove control of the address. Ask for a signed message and verify it against the ak_… public key using the æternity signed-message construction.
  2. Check a .chain name. Resolve it through AENS on any node or middleware and compare its account_pubkey pointer to the address. For a prefaens link the contract already performed the same check with AENSv2.lookup.
  3. Read the links. AddressLink.get_links(addr) returns the provider-to-value map as a dry-run call, and resolve(provider, value) walks it backwards. Both are free reads against consensus state.
  4. X handle. The chain records the address's consent to a handle string; the OAuth check was performed by Superhero's backend. See Verifying Your X Account.
  5. Authorship of content. A post's author is the address that signed the transaction, recorded by the Tipping contract, independent of the identity layer.

Related