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";
const profile: Profile = await CivicProfile.get("query");
profile.address
profile.did
profile.name;
profile.headline;
profile.identifiers;
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:
CivicProfile.get("did:sol:9KKaBPxD9mYxLcsrBjdvChcchxSf6hRsQxfUpCbsuaDJ");
CivicProfile.get("9KKaBPxD9mYxLcsrBjdvChcchxSf6hRsQxfUpCbsuaDJ");
CivicProfile.get("civicme.sol");
CivicProfile.get("0x964617b2d933c6e5c6c1B30681DCAee23Baa9836");
CivicProfile.get("civic-me.eth");
Obtaining Civic passes
import { CivicProfile, GatewayToken } from "@civic/profile";
const profile = await CivicProfile.get("query");
const passOptions: PassOptions = {
includeExpired: true,
};
const passes: GatewayToken[] = await profile.getPasses(passOptions);