Edit

Private Chain Provisioning Flow

Experimental support for supporting Ethereum Accounts on private chains.

The following shows the basic flow:

Private Chain Provisioning Flow

Requirements

  • Ethereum compatible blockchain
  • Public facing JSON RPC endpoint
  • MetaIdentityManager contract deployed on private blockchain
  • TxRelay contract deployed on private blockchain
  • Relay Server for funding and relaying transactions on private chain

Provisioning Methodology

  1. Use Selective Disclosure Flow to request primary identity address of user as well as the deviceKey to create a new identity on the private blockchain
  2. Create transaction on IdentityManager contract calling createIdentity with the devicekey as the owner
  3. Lookup the identity field from the LogIdentityCreated event in the receipt from above transaction
  4. Create a valid signed Private Chain Provisioning Message and send it to the uPort mobile app

NOTE: We will provide a better way of provisioning a owner address in future versions of this spec.

Endpoint

The request should be sent to one of the following URLs:

  • https://id.uport.me/req/[JWT]

The following endpoints are deprecated

  • me.uport:net/[JWT]
  • https://id.uport.me/net/[JWT]

Client Callback

The client app SHOULD include a URL where the response is returned from the user. This can be a https url or a custom app url which receives the response.

Responses are param appended to a url fragment. If the callback requires the response as a HTTP POST, it is sent as a JSON POST request to the callback url instead.

Successful Response

paramDescription
statusok

The client app SHOULD verify that the transaction has been successfully included in a block.

Errors

An error parameter is returned as the response to the Client App, containing one of following:

ErrorDescription
access_deniedUser denies the request
Was this article helpful?