- OIDC:
GET /userinfo - REST API:
GET /verifications/{id}/userinfo
Provenance (shape)
Copy
type ProvenanceShape = {
presentation: {
channel?: {
type: 'centralized_idp' | 'chip_based' | 'wallet' | string
transport: 'internet' | 'nfc' | 'ble' | 'qr_code' | string
}
credentials: Array<{
type: string // providerId used when starting the verification (e.g., smartid, bankidse)
issuer?: { id: string; authority_name?: string; is_government?: boolean }
claims: Record<string, unknown>
evidence?: {
token?: Record<string, unknown>
names?: string // semicolon-delimited list of keys present under token
}
}>
}
_metadata: { verification_id: string; verified_at?: string }
}
Learn more: Provenance
Copy & Paste Types
- TypeScript
- Go
- C#
- Java
Copy
export interface Proof {
presentation: Presentation
_metadata: Metadata
}
export interface Presentation {
channel?: Channel
credentials: Credential[]
}
export interface Channel {
type: 'centralized_idp' | 'chip_based' | 'wallet' | string
transport: 'internet' | 'nfc' | 'ble' | 'qr_code' | string
}
export interface Credential {
type: string // providerId used when starting the verification (e.g., smartid, bankidse)
issuer?: Issuer
claims: Record<string, unknown>
evidence?: Evidence // may or may not be present
}
export interface Issuer {
id: string
authority_name?: string
is_government?: boolean
}
export interface Evidence {
token?: Record<string, unknown>
names?: string // semicolon-delimited list of keys under token
}
export interface Metadata {
verification_id: string
verified_at?: string // ISO8601
}
Notes
- Issuer and claims can vary by credential type; treat unknown fields as opaque.

