Tech Capabilities

Identity

A seamless user experience to easily:
  • Create multiple decentralized identities
  • Create and import blockchain wallets
  • Manage private keys
  • Link multiple blockchain accounts to a single Web3 decentralized identity
  • Manage their on-chain personal reputation

Secure Data Storage

Decentralized personal data storage for Web3:
  • Create multiple decentralized identities
  • Create and import blockchain wallets
  • Manage private keys
  • Link multiple blockchain accounts to a single Web3 decentralized identity
  • Manage their on-chain personal reputation

const database = await appContext.openDatabase('notes')
const success = await database.save({
	title: 'My first note',
	content: 'This is my first ever private, encrypted note'
})
const results = await database.getMany({
	title: 'My first note'
})
console.log(results)

const database = await appContext.openDatabase('notes')
const success = await database.save({
	title: 'My first note',
	content: 'This is my first ever private, encrypted note'
})
const results = await database.getMany({
	title: 'My first note'
})
console.log(results)

Single sign on

A decentralized single sign on library that supports QR code login.
  • Authenticating the user
  • Unlocking encrypted private storage for your application
  • Requesting third party private data from the user
  • Accessing public and private profile
  • Conducting blockchain transactions via WalletConnect (coming soon)

const appContext = Network.connect({
  client: { environment: EnvironmentType.TESTNET },
  vaultConfig,
  context: { name: 'My dApp' }
})
const did = await appContext.did()
const profile = await appContext.openProfile()
const name = await profile.get('name')

console.log(`Welcome ${name} (${did})!`)

const appContext = Network.connect({
  client: { environment: EnvironmentType.TESTNET },
  vaultConfig,
  context: { name: 'My dApp' }
})
const did = await appContext.did()
const profile = await appContext.openProfile()
const name = await profile.get('name')

console.log(`Welcome ${name} (${did})!`)

const message = 'A new file has been uploaded to your NightSafe.'
const url = 'https://nightsafe.com/file/document/d/11Gb ...'
const messaging = vault.getMessaging()
await messaging.send(
  recipientDid,
	'inbox/type/message',
	{
		message,
		url
	},
	'New file uploaded'
)

const credentialData = {name: 'David', country: 'Singapore'}
const verifiableCred = await issuerAccount.createDidVc(credentialData)
const messaging = vault.getMessaging()
await messaging.send({
	recipientDid,
	'inbox/type/dataSend',
	'Here is your credential'
})

const requestData = {
  schema: 'https://common.schemas.verida.io/health/note/v1.0/schema.json',
  externalDs: {
    did,
    contextName,
		encrytionKey,
		databaseName
  },
	direction: 'both'
}
const messaging = vault.getMessaging()
await messaging.send(
	recipientDid,
	'inbox/type/datastoreSync',
	requestData,
	'Please sync your health data'
)