decentralized-id.github.io/_posts/blockchain/ethereum/2019-03-28-uport.md
⧉ infominer be0d0dc122 tags
2020-11-27 19:51:42 -05:00

141 lines
10 KiB
Markdown

---
date: 2019-03-28
title: uPort
description: A self-sovereign identity and user-centric data platform
layout: single
excerpt: "In your application, you must first configure your uPort object with an identifier and a private key (or signer function). There are several ways to instantiate a credentials object. The most common approach is to save a DID and private key on a server for your application and create a credentials instance from your application's unique private key. Signed JWTs for requests and verifications can then be passed to a client-side application, and presented to a user using a QR code or via another transport."
header:
image: /images/uport.webp
caption: "[Releasing uPort Libraries 1.0](https://medium.com/uport/releasing-uport-developer-platform-1-0-97d6f70c5e4a)"
teaser: /images/uport-teaser.webp
toc: false
permalink: /blockchain/ethereum/uPort/
canonical_url: 'https://decentralized-id.com/blockchain/ethereum/uPort/'
redirect_from:
- id-initiatives/ethereum/uport
- blockchain/ethereum/uPort
- id-initiatives/ethereum/uPort/
categories: ["Companies"]
tags: ["Ethereum","Credentials Community Group","GDPR","DID","DIDComm","Consensys","Verifiable Credentials","uPort","DIF","Zug"]
last_modified_at: 2019-07-11
---
![](https://i.imgur.com/sPAP2g3.png)
* [uPort](https://www.uport.me/) [[**T**](https://twitter.com/uport_me)]
* [Ethereum studio ConsenSys launches digital IDs and assets secured on Ubuntu phones](http://www.ibtimes.co.uk/ethereum-studio-consensys-launches-internet-people-digital-ids-assets-secured-unbuntu-phones-1542620)
* [Year in Review. What's to come in 2018](https://medium.com/uport/uport-year-in-review-whats-to-come-in-2018-15ccb9214439)
* [Different Approaches to Ethereum Identity Standards](https://medium.com/uport/different-approaches-to-ethereum-identity-standards-a09488347c87)
![](https://i.imgur.com/ASI0PaB.png)
* [uPort donates code to the Decentralized Identity Foundation](https://medium.com/decentralized-identity/uport-donates-code-to-the-decentralized-identity-foundation-349d4740acbd)
- [decentralized-identity/did-jwt-vc](https://github.com/decentralized-identity/did-jwt-vc) - Create and verify W3C Verifiable Credentials and Presentations in JWT format
* [Trusted P2P Messaging with DIDs, DIDComm and VCs](https://medium.com/uport/trusted-p2p-messaging-with-dids-didcomm-and-vcs-398f4c3f3cda) (h/t @by_caballero)
> By resolving a DID a validator can typically discover the authoritative keys for different purposes or more generally, a set of verification methods for that DID. An Ethereum account could be a verification method as well. Service endpoints are extensible by design, so you could define your own ones if needed. However, the DID community has agreed on a set of well known service endpoints. Amongst them, the DIDComm service endpoint solves the how-to-reach-me problem and can be used to establish a secure communication channel with the other party. Despite there are only a few limitations of what properties can be associated with a DID, privacy regulations such as GDPR need to be considered very carefully.
## [developer.uport.me](https://developer.uport.me/)
**Build User-Centric Ethereum Apps**
* [overview/index#u-port-protocols-and-libraries](https://developer.uport.me/overview/index#u-port-protocols-and-libraries)
> * [uPort transports](https://developer.uport.me/transports/index)
> * [uPort Signed Messages](https://developer.uport.me/messages/index)
> * [JWT RFC 7519](https://tools.ietf.org/html/rfc7519) did-jwt
> * [Decentralized Identifiers (DIDs)](https://w3c-ccg.github.io/did-spec/) did-resolver
> * Public Key Lookup [ERC-1056 Lightweight Ethereum](https://github.com/ethereum/EIPs/issues/1056) Identity ethr-did-resolver
> * Creation/Management [Ethereum DID Registry Contract](https://github.com/uport-project/ethr-did-registry) ethr-did
> * [Ethereum JSON-RPC](https://github.com/ethereum/wiki/wiki/JSON-RPC) Web3 or EthJS
> * [Ethereum.org](https://ethereum.org/)
* [Connect Users to Your web3 dApp](https://developer.uport.me/guides/gettingstarted)
>Add full support for uPort by adding a single line of code to your web3 dApp.
>
> * Onboard new users within minutes
> * Instantly create a privacy-preserving Ethereum account
> * Build for both desktop and mobile browsers
* [Issue & Request Verified Credentials](https://developer.uport.me/uport-credentials/index)
>Help your users build their digital identity by issuing Verified Credentials about them or the things they do in your app.
>
>* Request Ethereum transaction signing with web3
>* Issue and Request Verified Credentials about your users
* [uport-credentials/docs/guides - Getting Started with uPort Credentials](https://github.com/uport-project/uport-credentials/blob/develop/docs/guides/index.md)
* [Transactions](https://developer.uport.me/credentials/transactions)
>It is possible with uport-credentials to create an ethereum transaction request and have a mobile client approve and sign that transaction.
![](https://imgur.com/JU7gOEn.png)
* [uport-connect/guides/usage](https://developer.uport.me/uport-connect/guides/usage)
>The uPort Connect library is a client-side library that allows you to interact with a user's uPort identity through a uPort client, primarily the uPort mobile app. The Connect library bundles functionality from our other libraries into a singular, easy to use interface.
>
>This guide describes the parts which make-up Connect and provides further details on how to configure it for your specific use case. While Connect is likely the best solution for most use cases, you may decide you need greater optionality and control over certain use cases, in that situation, you may be interested in using uport-tranports and uport-credentials as an alternative.
* [RequestVerification](https://developer.uport.me/connect/requestverification)
>Much like logging in, using uport-connect to request verified data about uPort mobile clients is simple. So simple we will follow the same steps of logging in, but this time pass an array of verification titles that we want to request for disclosure. Our connect library manages the flow for you with minimal configuration.
![](https://imgur.com/4OQ5C1E.png)
* [SendVerification](https://developer.uport.me/connect/sendverification)
>Much like logging in, using uport-connect to create and send verifications to uPort mobile clients is simple. Our connect library will manage much of the flow for you with minimal configuration.
![](https://imgur.com/W1ppGwb.png)
* [Goodbye uPort DIDs, Hello Ethr-DIDs](https://medium.com/uport/goodbye-uport-dids-hello-ethr-dids-ea2e80256f54)
* Using the [Ethr-DID](https://developer.uport.me/categories/ethr-did/) library, you can:
>* Create and manage keys for DID identities
>* Sign JSON Web Tokens
>* Authorize third parties to sign on a DID's behalf
>* Enable discovery of service endpoints (e.g. decentralized identity management services)
>
>The Ethr-DID library conforms to ERC-1056 and supports the proposed Decentralized Identifiers spec from the W3C Credentials Community Group. These allow for Ethereum addresses to be used as fully self-managed Decentralized Identifiers (DIDs), as a result, you can easily create and manage keys for these identities. This library also allows you to sign standard compliant JSON Web Tokens (JWTs) that can be consumed using the DID-JWT library.
* [uPort Credentials](https://developer.uport.me/categories/uport-credentials/) library allows you to:
>* Create and verify authentication requests
>* Request verified claims
>* Verify claims for your users
>* Ask users to sign Ethereum transactions
>* Create Ethereum smartcontract function call requests without web 3.0
* [Ethereum DID Registry](https://developer.uport.me/categories/ethr-did-registry/)
>This contract allows on-chain and off-chain resolving and management for DIDs (Decentralized Identifiers).
>
>A DID is an Identifier that allows you to lookup a DID document that can be used to authenticate you and messages created by you.
>
>It's designed for resolving public keys for off-chain authentication—where the public key resolution is handled by using decentralized technology.
>
>This contract allows Ethereum addresses to present signing information about themselves with no prior registration. It allows them to perform key rotation and specify different keys and services that are used on its behalf for both on and off-chain usage.
* [uPort Transports](https://developer.uport.me/categories/uport-transports/) allows you to:
> * Send messages to users using a QR code
> * Send requests and receive responses through URLs
> * Send encrypted push notifications
> * Create Transports specific to your use case and environment
## Zug ID
* [A position paper on blockchain enabled identity and the road ahead](https://www.bundesblock.de/wp-content/uploads/2018/10/ssi-paper.pdf)—Identity Working Group of the German Blockchain Association [[**ϟ**](https://www.bundesblock.de/2018/10/23/position-paper-self-sovereign-identity/)]
> **City of Zug (UPort and ti&m)**
>
> As a first pilot project in Switzerland, the city of Zug is currently piloting a SSI solution. The local administration is cooperating with the IT consulting company ti&m, as well as UPort to provide a basic infrastructure for their citizens to attest their identity. With the SSI implemented in Zug, users can now pay their parking fees, register for elections or perform online sign on for e-government services33. The benefits range for the city of Zug are low infrastructure requirements, decreased security risks, cost effectiveness, GDPR compliance and scalability.
* [Zug ID: Exploring the First Publicly Verified Blockchain Identity](https://medium.com/uport/zug-id-exploring-the-first-publicly-verified-blockchain-identity-38bd0ee3702)
## GitHub
* [uPort GitHub Repos]({{ site.baseurl }}/blockchain/ethereum/repositories/#uport)
* [uPort DID]({{ site.baseurl }}/blockchain/ethereum/repositories/#uport-did)
* [uPort Identification]({{ site.baseurl }}/blockchain/ethereum/repositories/#uport-identification)
* [uPort Mobile]({{ site.baseurl }}/blockchain/ethereum/repositories/#uport-mobile)
* [uPort Lambda]({{ site.baseurl }}/blockchain/ethereum/repositories/#uport-lambda)
* [uPort React]({{ site.baseurl }}/blockchain/ethereum/repositories/#uport-react)
* [uPort Assorted]({{ site.baseurl }}/blockchain/ethereum/repositories/#uport-assorted)
## Literature
* [A First Look at Identity Management Schemes on the Blockchain](https://arxiv.org/pdf/1801.03294.pdf)