Client SDKs
TypeScript / JavaScript
Section titled “TypeScript / JavaScript”npm install @baseid/sdkimport { BaseIDClient } from '@baseid/sdk';
const client = new BaseIDClient({ apiKey: 'bsk_live_...' });
// Create a DIDconst did = await client.dids.create('key', 'Ed25519');
// Issue a credentialconst cred = await client.credentials.issue({ format: 'jwt_vc_json', issuer_did: did.did, subject_did: 'did:key:z6MkHolder', types: ['VerifiableCredential', 'CanadianDigitalID'], claims: { givenName: 'Alice', familyName: 'Martin' },});
// Verifyconst result = await client.verify.credential(cred.credential);console.log(result.valid); // true
// Usageconst usage = await client.usage.get();console.log(usage.limit.credentials_remaining);Available methods
Section titled “Available methods”| Namespace | Methods |
|---|---|
client.credentials | issue(), list(), get(), revoke() |
client.verify | credential() |
client.dids | create(), list(), resolve(), deactivate() |
client.compliance | report(), recordConsent(), audit() |
client.trust | addAttestation(), getScore(), delegate() |
client.team | list(), invite() |
client.usage | get() |
Python
Section titled “Python”Zero-dependency client using urllib (stdlib only).
pip install baseid-sdk# Or copy baseid_sdk.py directlyfrom baseid_sdk import BaseIDClient
client = BaseIDClient(api_key="bsk_live_...")
# Create a DIDdid = client.dids.create()
# Issue a credentialcred = client.credentials.issue( format="jwt_vc_json", issuer_did=did["did"], claims={"givenName": "Alice", "familyName": "Martin"}, types=["VerifiableCredential", "CanadianDigitalID"],)
# Verifyresult = client.verify.credential(cred["credential"])print(result["valid"]) # True
# Compliance reportreport = client.compliance.report("pctf", "substantial")print(report["overall_status"])Available methods
Section titled “Available methods”| Namespace | Methods |
|---|---|
client.credentials | issue(), list(), get(), revoke() |
client.verify | credential() |
client.dids | create(), list(), resolve(), deactivate() |
client.compliance | report(), audit() |
client.trust | add_attestation(), get_score() |
client.team | list(), invite() |
client.usage | get() |
go get github.com/baseid-io/baseid/sdk/gopackage main
import ( "fmt" baseid "github.com/baseid-io/baseid/sdk/go")
func main() { client := baseid.NewClient("bsk_live_...")
// Create a DID did, _ := client.DIDs.Create("key", "Ed25519")
// Issue a credential cred, _ := client.Credentials.Issue(baseid.IssueRequest{ Format: "jwt_vc_json", IssuerDID: did.DID, Claims: map[string]any{"givenName": "Alice"}, })
// Verify result, _ := client.Verify.Credential(cred.Credential) fmt.Println(result.Valid) // true
// Usage usage, _ := client.Usage.Get(6) fmt.Println(usage["limit"])}Available methods
Section titled “Available methods”| Namespace | Methods |
|---|---|
client.Credentials | Issue(), List(), Revoke() |
client.Verify | Credential() |
client.DIDs | Create(), List(), Deactivate() |
client.Compliance | Report() |
client.Trust | AddAttestation() |
client.Team | List() |
client.Usage | Get() |
Custom base URL
Section titled “Custom base URL”All SDKs support a custom base URL for self-hosted deployments:
// TypeScriptconst client = new BaseIDClient({ apiKey: 'bsk_live_...', baseUrl: 'https://api.your-instance.com',});# Pythonclient = BaseIDClient( api_key="bsk_live_...", base_url="https://api.your-instance.com",)// Goclient := baseid.NewClientWithURL("https://api.your-instance.com", "bsk_live_...")