Skip to content

Client SDKs

Terminal window
npm install @baseid/sdk
import { BaseIDClient } from '@baseid/sdk';
const client = new BaseIDClient({ apiKey: 'bsk_live_...' });
// Create a DID
const did = await client.dids.create('key', 'Ed25519');
// Issue a credential
const 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' },
});
// Verify
const result = await client.verify.credential(cred.credential);
console.log(result.valid); // true
// Usage
const usage = await client.usage.get();
console.log(usage.limit.credentials_remaining);
NamespaceMethods
client.credentialsissue(), list(), get(), revoke()
client.verifycredential()
client.didscreate(), list(), resolve(), deactivate()
client.compliancereport(), recordConsent(), audit()
client.trustaddAttestation(), getScore(), delegate()
client.teamlist(), invite()
client.usageget()

Zero-dependency client using urllib (stdlib only).

Terminal window
pip install baseid-sdk
# Or copy baseid_sdk.py directly
from baseid_sdk import BaseIDClient
client = BaseIDClient(api_key="bsk_live_...")
# Create a DID
did = client.dids.create()
# Issue a credential
cred = client.credentials.issue(
format="jwt_vc_json",
issuer_did=did["did"],
claims={"givenName": "Alice", "familyName": "Martin"},
types=["VerifiableCredential", "CanadianDigitalID"],
)
# Verify
result = client.verify.credential(cred["credential"])
print(result["valid"]) # True
# Compliance report
report = client.compliance.report("pctf", "substantial")
print(report["overall_status"])
NamespaceMethods
client.credentialsissue(), list(), get(), revoke()
client.verifycredential()
client.didscreate(), list(), resolve(), deactivate()
client.compliancereport(), audit()
client.trustadd_attestation(), get_score()
client.teamlist(), invite()
client.usageget()

Terminal window
go get github.com/baseid-io/baseid/sdk/go
package 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"])
}
NamespaceMethods
client.CredentialsIssue(), List(), Revoke()
client.VerifyCredential()
client.DIDsCreate(), List(), Deactivate()
client.ComplianceReport()
client.TrustAddAttestation()
client.TeamList()
client.UsageGet()

All SDKs support a custom base URL for self-hosted deployments:

// TypeScript
const client = new BaseIDClient({
apiKey: 'bsk_live_...',
baseUrl: 'https://api.your-instance.com',
});
# Python
client = BaseIDClient(
api_key="bsk_live_...",
base_url="https://api.your-instance.com",
)
// Go
client := baseid.NewClientWithURL("https://api.your-instance.com", "bsk_live_...")