bis (backed vc issue) is a registry-backed transaction event log credential issuance operation in KERI that records the issuance of a verifiable credential by anchoring the issuance event to both the issuer's KEL and a TEL registry, providing cryptographic proof of credential creation and enabling subsequent revocation tracking.
Related Concepts
No related concepts available
Comprehensive Explanation
bis (Backed VC Issue)
Process Definition
bis represents a registry-backed verifiable credential issuance operation within the KERI ecosystem. The term is an abbreviation with two equivalent expansions:
backed vc issue - emphasizing the registry-backed nature of the operation
registry-backed transaction event log credential issuance - the full technical description
The bis operation accomplishes several critical functions:
Creates a verifiable record of credential issuance in a Transaction Event Log (TEL)
Anchors the issuance event to the issuer's Key Event Log (KEL) through cryptographic seals
Establishes the initial state of the credential as "issued" in the registry
Enables future state transitions including revocation (brv) operations
Provides cryptographic proof that the credential was issued by the controller of a specific AID
When bis is Used
The bis operation is invoked when:
An issuer creates a new ACDC credential and wants to track its lifecycle
The credential requires revocability (non-revocable credentials may not need TEL backing)
The issuer needs to provide verifiable proof of issuance to third parties
The credential is part of a public verifiable credential registry
Compliance or governance frameworks require auditable issuance records
Key Participants
The bis operation involves several participants:
Issuer: The controller of an AID who creates and signs the credential
Implementation Notes
Critical Implementation Details
TEL Registry Initialization
Before performing bis operations, ensure the TEL registry exists:
Create a management TEL inception event if this is the first credential for a new registry
Configure Registrars (minimum 3 recommended for production)
Set appropriate thresholds (typically 2-of-3 or 3-of-5)
Anchor the management TEL inception to the issuer's KEL
CESR Encoding Requirements
All cryptographic primitives must be CESR-encoded:
Use qualified Base64 encoding with derivation codes
Ensure proper framing codes for grouped primitives
Maintain composability between text and binary domains
Validate CESR parsing before processing events
Sequence Number Management
TEL sequence numbers are independent of KEL sequence numbers:
Each credential has its own sequence starting at 0
Sequence 0 is always the issuance event (bis)
Subsequent state changes increment the sequence
Out-of-order events should be escrowed until dependencies arrive
Anchoring Strategies
Choose appropriate anchoring strategy based on requirements:
Immediate anchoring: Create KEL interaction event immediately after TEL event
Pros: Minimal latency, simple implementation
Cons: One KEL event per credential issuance
Batched anchoring: Accumulate multiple TEL events and anchor in single KEL event
Pros: Reduced KEL growth, more efficient
Cons: Increased complexity, delayed confirmation
Delegated anchoring: Use delegated identifiers for credential issuance
Pros: Separation of concerns, scalability
Cons: Additional delegation ceremony overhead
Error Recovery
Implement robust error recovery:
Idempotent operations: Design bis to be safely retryable
State verification: Query Registrars before and after operations
Rollback procedures: Document how to handle partial failures
Audit logging: Maintain comprehensive logs for debugging
Performance Considerations
Use asynchronous I/O for Registrar communication
Issuer's KEL: The Key Event Log that establishes the issuer's control authority
TEL Registry: The Transaction Event Log that tracks credential state
Registrars (Backers): Entities that maintain copies of the TEL (analogous to witnesses for KELs)
Issuee: The subject of the credential (may be the same as or different from the recipient)
Process Flow
Step 1: Credential Creation
The issuer constructs an ACDC credential with required fields:
v: Version string identifying the ACDC protocol version
d: SAID of the credential (self-addressing identifier)
i: Issuer AID (the autonomic identifier of the credential issuer)
ri: Registry Identifier (the SAID of the TEL registry tracking this credential)
s: Schema SAID or schema block
a: Attribute block or SAID (the claims being made)
Additional optional fields (e for edges, r for rules, u for UUID)
The credential structure must be serialized in a canonical form (typically JSON, CBOR, or MGPK) to enable SAID computation.
Step 2: TEL Inception Event Creation
If this is the first credential being issued to a new TEL registry, a management TEL inception event must be created first. This event:
Establishes the TEL registry identifier (ri)
Specifies the list of Registrars (backers) for the TEL
Defines the registry configuration and thresholds
Is anchored to the issuer's KEL through an event seal
For subsequent credentials using an existing registry, this step is skipped.
Step 3: VC TEL Issuance Event Creation
The issuer creates a VC TEL issuance event with the following structure:
Watchers can detect inconsistencies between Registrars
Watchers provide additional verification for high-stakes credentials
DID Integration:
For did:keri and did:webs methods:
The issuer AID can be expressed as a DID
The credential can reference the issuer DID
DID resolution provides access to the issuer's KEL
TEL registry information can be included in DID documents
Verifiers can use standard DID resolution to access TEL data
Implementation Guidance
Implementing bis operations requires careful attention to:
Data Structures: Proper serialization of TEL events, KEL events, and ACDC credentials using CESR encoding.
State Management: Maintaining consistent state across issuer, Registrars, and validators.
Network Communication: Reliable delivery of events to Registrars with appropriate retry logic.
Cryptographic Operations: Correct implementation of digest computation, signature generation, and verification.
Error Handling: Robust handling of validation failures, network errors, and edge cases.
Testing: Comprehensive testing of issuance workflows, including failure scenarios and recovery procedures.
The bis operation is fundamental to KERI's verifiablecredential lifecycle management, providing the cryptographic foundation for trustworthy, revocable credentials in decentralized systems.
Implement connection pooling for database access
Cache frequently accessed credential states
Monitor and optimize TEL query performance
Consider sharding strategies for large-scale deployments
Security Hardening
Protect issuer private keys with HSMs or secure enclaves
Implement rate limiting on issuance operations
Validate all input data before processing
Use constant-time comparison for cryptographic operations
Implement comprehensive security logging and monitoring