Skip to content

Module: core

Read public records in Node and browsers environments.

Purpose

The core module of the Self.ID SDK exports the Core and PublicID classes to provide APIs for reading public records in Node and browsers environments.

It can therefore be used both client-side and server-side by applications wanting to access records associated to a DID on a Ceramic network.

Installation

npm install @self.id/core

Common use-cases

Read the basic profile of a known DID

import { Core } from '@self.id/core'

const core = new Core({ ceramic: 'testnet-clay' })

async function getProfile() {
  // Replace by the wanted DID string
  const did = 'did:3:...'
  return await core.get('basicProfile', did)
}

Connect to a custom Ceramic node

import { Core } from '@self.id/core'

// You can provide the URL of a custom node as the `ceramic` parameter
const core = new Core({ ceramic: 'https://ceramic-clay.3boxlabs.com' })

Use a custom data model

import { Core } from '@self.id/core'

const aliases = {
  definitions: {
    basicProfile: 'kjzl6cwe1jw145cjbeko9kil8g9bxszjhyde21ob8epxuxkaon1izyqsu8wgcic',
    notes: 'kjzl6cwe1jw14688v7zhf5eo1uiblt0thkgdedb5gaiq99isj224g6v8uza2r4m',
  },
  schemas: {
    BasicProfile: 'ceramic://k3y52l7qbv1frxt706gqfzmq6cbqdkptzk8uudaryhlkf6ly9vx21hqu4r6k1jqio',
    Note: 'ceramic://k3y52l7qbv1fryg3uy4gz50pj3ivni18h6younsgd2kb5u7mivx3h258m01tkwk5c',
    Notes: 'ceramic://k3y52l7qbv1frxk024s7ds2456qo3rwa02k31uf98loz8lm1lodlgv3eeqh4cxgjk',
  },
  tiles: {
    placeholderNote: 'kjzl6cwe1jw148snra9bmyf32y5pj2ysnvenqx59k7n2lz3gnri72axvp25fo1v',
  },
}
const core = new Core({ ceramic: 'testnet-clay', aliases })

async function getNotes(did) {
  return await core.get('notes', did)
}

Use a PublicID instance

import { Core, PublicID } from '@self.id/core'

const core = new Core({ ceramic: 'testnet-clay' })
// Replace the `id` parameter by the wanted DID string
const currentUser = new PublicID({ core, id: 'did:3:...' })

async function getCurrentUserProfile() {
  return await currentUser.get('basicProfile')
}

Classes

Type aliases

CeramicNetwork

Ƭ CeramicNetwork: "local" | "mainnet-gateway" | "testnet-clay" | "testnet-clay-gateway"

Configured Ceramic endpoints:

  • "local" -> http://localhost:7007
  • "mainnet-gateway" -> https://gateway.ceramic.network (read-only)
  • "testnet-clay" -> https://ceramic-clay.3boxlabs.com
  • "testnet-clay-gateway" -> https://gateway-clay.ceramic.network (read-only)

CoreModelTypes

Ƭ CoreModelTypes: ModelTypeAliases<{ AlsoKnownAs: AlsoKnownAs ; BasicProfile: BasicProfile ; CryptoAccounts: CryptoAccountLinks }, { alsoKnownAs: "AlsoKnownAs" ; basicProfile: "BasicProfile" ; cryptoAccounts: "CryptoAccounts" }>

Default model types provided by the Self.ID SDK.


CoreParams

Ƭ CoreParams<ModelTypes>: Object

Type parameters

Name Type
ModelTypes extends ModelTypeAliases = CoreModelTypes

Type declaration

Name Type Description
aliases? ModelTypesToAliases<ModelTypes> Data model aliases to use instead of the default ones.
cache? TileCache | boolean Cache interface to use or true to use a default cache. If false or undefined (default), no cache is used.
ceramic CeramicNetwork | string Predefined CeramicNetwork configuration value of Ceramic server URL.
loader? TileLoader Tile loader instance to use. If provided, the cache parameter will be ignored.

PublicIDParams

Ƭ PublicIDParams<ModelTypes>: Object

Type parameters

Name Type
ModelTypes extends ModelTypeAliases = CoreModelTypes

Type declaration

Name Type Description
core Core<ModelTypes> Core instance to use.
id string DID string.