mirror of https://github.com/lukechilds/docs.git
Ken
4 years ago
committed by
Alexander Graebe
2 changed files with 0 additions and 79 deletions
@ -1,78 +0,0 @@ |
|||||
--- |
|
||||
title: Guide to Profiles |
|
||||
description: Learn about profiles on the Blockstack network |
|
||||
--- |
|
||||
|
|
||||
## About profiles |
|
||||
|
|
||||
Profile data is stored using Gaia on the user's selected storage provider. An example of a `profile.json` file URL using |
|
||||
Blockstack provided storage: |
|
||||
|
|
||||
``` |
|
||||
https://gaia.blockstack.org/hub/1EeZtGNdFrVB2AgLFsZbyBCF7UTZcEWhHk/profile.json |
|
||||
``` |
|
||||
|
|
||||
Follow these steps to create and register a profile for a Blockstack username (`identifier`): |
|
||||
|
|
||||
1. Create a JSON profile object |
|
||||
2. Split up the profile into tokens, sign the tokens, and put them in a token file |
|
||||
3. Create a zone file that points to the web location of the profile token file |
|
||||
|
|
||||
```jsx |
|
||||
"account": [ |
|
||||
{ |
|
||||
"@type": "Account", |
|
||||
"service": "twitter", |
|
||||
"identifier": "naval", |
|
||||
"proofType": "http", |
|
||||
"proofUrl": "https://twitter.com/naval/status/12345678901234567890" |
|
||||
} |
|
||||
] |
|
||||
``` |
|
||||
|
|
||||
## Create a profile |
|
||||
|
|
||||
```jsx |
|
||||
const profileOfNaval = { |
|
||||
'@context': 'http://schema.org/', |
|
||||
'@type': 'Person', |
|
||||
name: 'Naval Ravikant', |
|
||||
description: 'Co-founder of AngelList', |
|
||||
}; |
|
||||
``` |
|
||||
|
|
||||
## Sign a profile as a single token |
|
||||
|
|
||||
```jsx |
|
||||
import { makeECPrivateKey, wrapProfileToken, Person } from 'blockstack'; |
|
||||
|
|
||||
const privateKey = makeECPrivateKey(); |
|
||||
|
|
||||
const person = new Person(profileOfNaval); |
|
||||
const token = person.toToken(privateKey); |
|
||||
const tokenFile = [wrapProfileToken(token)]; |
|
||||
``` |
|
||||
|
|
||||
## Verify an individual token |
|
||||
|
|
||||
```jsx |
|
||||
import { verifyProfileToken } from 'blockstack'; |
|
||||
|
|
||||
try { |
|
||||
const decodedToken = verifyProfileToken(tokenFile[0].token, publicKey); |
|
||||
} catch (e) { |
|
||||
console.log(e); |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
## Recover a profile from a token file |
|
||||
|
|
||||
```jsx |
|
||||
const recoveredProfile = Person.fromToken(tokenFile, publicKey); |
|
||||
``` |
|
||||
|
|
||||
## Validate profile schema |
|
||||
|
|
||||
```jsx |
|
||||
const validationResults = Person.validateSchema(recoveredProfile); |
|
||||
``` |
|
Loading…
Reference in new issue