1. Specify how DSNP Identifiers map to Frequency.
  2. Specify how the DSNP delegation maps to Frequency.
  3. Detail how Frequency matches the ownership requirements of DSNP.


DSNP uses Message Source Accounts (MSAs) that map directly to a DSNP Identity.


MSAs each receive a unique unsigned 64-bit identifier that is used as the DSNP Id. These MSAs are pseudo-anonymous identifiers that are associated with one or more public keys. MSAs can be created by the user or on behalf of the user using a signed authorization.

Creating a DSNP User Id

  1. Generate a compatible key pair in your wallet.
  2. Create a Message Source Account (MSA) on Frequency using one of the create extrinsics.
  3. Wait for the transaction to process.

Retrieving a DSNP User Id from a Public Key

  1. Use the Frequency state query msa.messageSourceIdOf to retrieve the MSA Id from the public key generated in step 1.
  2. The MSA Id is the DSNP Id and can be used to generate the DSNP User URI.


Frequency has a strong ownership model for MSAs. Ownership of an MSA is controlled by the associated keys. MSAs are the source for Messages either directly or via delegation.


Frequency allows for delegation to others called Providers. Delegation comes with permissions that grant publishing of specific Schemas to a provider. Since each Announcement Type has a set Schema Id, a user may permission specific Announcement Types.

When a user delegates to a Provider, that delegation is either validated on chain or can be validated off chain using the msa_checkDelegations RPC call. Users can revoke a delegation at anytime without any fees, and revocation is locked to the point the transaction is included in a block.