id: identity-documents title: Identity Documents sidebar_label: Identity Documents

The first problem that Milagro DTA aims to solve is how actors in the system can identify and trust each other. In order to participate in the Milagro DTA safeguarding process each actor must publish a set of public keys into IPFS. The IPFS hash for an identity documents is then the ID for each actor.

In order to create an identity document Milagro DTA provides the following endpoint.

POST: /identity An Identity Document contains public keys for signing and key encapsulation.

:::note The Milagro DTA communication protocol uses protobufs for serialisation. Click here for more information about Protocol Buffers :::

The definition of an identity document is:

message IDDocument {
    string AuthenticationReference  = 2 ;
    bytes SikePublicKey             = 3 ;
    bytes PicnicPublicKey           = 4 ;    
    string Username                 = 5 ;
    int64 Timestamp                 = 6 ;
}

The node that is used to create an identity document will store the seed and secret keys associated with the Identity. In RC1 these are stored as a JSON file in the key value store:

//IdentitySecrets - keys required for decryption and signing
type IdentitySecrets struct {
	Name            string `json:"name"`
	Seed            string `json:"seed"`
	SikeSecretKey   string `json:"sikeSecretKey"`
	PicnicSecretKey string `json:"picnicSecretKey"`
}