@civic/profile

v0.5.2
Civic Profile SDK

Civic Profile SDK

A library for accessing a user's civic.me profile on Civic's identity-store backend.

Usage

import { CivicProfile, Profile } from "@civic/profile";

// Query using a wallet address, DID, or ETH or SNS name
const profile: Profile = await CivicProfile.get("query");

// wallet information
profile.address
profile.did

// access profile information if available
profile.name;
profile.headline;

// access social identifiers linked to the profile:
profile.identifiers;

// access other wallets linked to the profile:
profile.linkedWallets;

Options

Solana connection

A Solana connection or Ethereum provider can be passed to the library as follows:

const profile = await CivicProfile.get("query", { solana: { connection }, ethereum: { provider } });

Civic backend endpoint

By default, Civic's production endpoint for the identity-store is used: https://api.civic.com/identity-store

A different one can be passed in:

const profile = await CivicProfile.get("query", { civicIdentityStoreEndpoint: 'https://example.com' });

Examples

The below queries will all return the same profile - connected to the "civic.me" account:

// Query using DID
CivicProfile.get("did:sol:9KKaBPxD9mYxLcsrBjdvChcchxSf6hRsQxfUpCbsuaDJ");
// Query using SOL address
CivicProfile.get("9KKaBPxD9mYxLcsrBjdvChcchxSf6hRsQxfUpCbsuaDJ");
// Query using SNS address
CivicProfile.get("civicme.sol");
// Query using ethereum address
CivicProfile.get("0x964617b2d933c6e5c6c1B30681DCAee23Baa9836");
// Query using ENS address
CivicProfile.get("civic-me.eth");

Obtaining Civic passes


import { CivicProfile, GatewayToken } from "@civic/profile";

// Query using a wallet address, did or SNS name
const profile = await CivicProfile.get("query");

const passOptions: PassOptions = {
  includeExpired: true,
};

const passes: GatewayToken[] = await profile.getPasses(passOptions);
npm i @civic/profile

Metadata

  • MIT
  • >=14.15.0
  • civic.com
  • released 3/7/2024

Downloads