Supported Plugins
Comprehensive listing of all supported TrustWeave plugins organized by category. Each plugin includes links to detailed integration guides.
TrustWeave’s plugin architecture enables you to integrate with various DID methods, blockchain networks, key management services, and wallet storage backends. All plugins follow the SPI (Service Provider Interface) pattern for automatic discovery and registration.
📋 Quick Navigation
- DID Method Plugins
- Blockchain Anchor Plugins
- Key Management Service (KMS) Plugins
- Credential Format & Exchange Plugins
- Signature Suites — eIDAS QES
- Trust Registry
- Server Modules
- Other Integrations
- Experimental / Stub Plugins
DID Method Plugins
DID method plugins enable TrustWeave to create, resolve, and manage DIDs using various DID method specifications. All DID method plugins implement the DidMethodService interface.
| Plugin | Module ID | Documentation | Description |
|---|---|---|---|
| did:key | org.trustweave:did-plugins-key |
Key DID Guide | Native did:key implementation - most widely-used DID method with zero external dependencies |
| did:web | org.trustweave:did-plugins-web |
Web DID Guide | Web DID method for HTTP/HTTPS-based resolution with full W3C spec compliance |
| did:ethr | org.trustweave:did-plugins-ethr |
Ethereum DID Guide | Ethereum DID method with blockchain anchoring support for mainnet and testnets |
| did:ion | org.trustweave:did-plugins-ion |
ION DID Guide | Microsoft ION DID method using Sidetree protocol with Bitcoin anchoring |
| did:polygon | org.trustweave:did-plugins-polygon |
Polygon DID Guide | Polygon DID method with lower transaction costs than Ethereum mainnet |
| did:sol | org.trustweave:did-plugins-sol |
Solana DID Guide | Solana DID method with program integration and account-based storage |
| did:peer | org.trustweave:did-plugins-peer |
Peer DID Guide | Peer-to-peer DID method with no external registry, supports numalgo 0, 1, and 2 |
| did:jwk | org.trustweave:did-plugins-jwk |
JWK DID Guide | W3C-standard did:jwk method using JSON Web Keys directly |
| did:ens | org.trustweave:did-plugins-ens |
ENS DID Guide | Ethereum Name Service (ENS) resolver integration with human-readable identifiers |
| did:plc | org.trustweave:did-plugins-plc |
PLC DID Guide | Personal Linked Container (PLC) DID method for AT Protocol with HTTP-based resolution |
| did:cheqd | org.trustweave:did-plugins-cheqd |
Cheqd DID Guide | Cheqd network DID method with payment-enabled features on Cosmos-based blockchain |
| did:ebsi | org.trustweave:did-plugins-ebsi |
See module README | European Blockchain Services Infrastructure (EBSI) DID method |
Blockchain Anchor Plugins
Blockchain anchor plugins enable TrustWeave to anchor credential digests to various blockchain networks. All blockchain anchor plugins implement the BlockchainAnchorClient interface.
| Plugin | Module ID | Documentation | Supported Networks | Description |
|---|---|---|---|---|
| Ethereum | org.trustweave:anchors-plugins-ethereum |
Ethereum Anchor Guide | Mainnet, Sepolia | Ethereum mainnet anchoring with EVM-compatible transaction data storage |
| Base | org.trustweave:anchors-plugins-base |
Base Anchor Guide | Mainnet, Sepolia | Base (Coinbase L2) anchoring with fast confirmations and lower fees |
| Arbitrum | org.trustweave:anchors-plugins-arbitrum |
Arbitrum Anchor Guide | Mainnet, Sepolia | Arbitrum One (largest L2 by TVL) anchoring with EVM compatibility |
| Algorand | org.trustweave:anchors-plugins-algorand |
Algorand Guide | Mainnet, Testnet | Algorand blockchain anchoring for production-ready anchoring |
| Polygon | org.trustweave:anchors-plugins-polygon |
Integration Modules | Mainnet, Amoy | Polygon PoS anchoring with shared SPI plumbing |
| Bitcoin | org.trustweave:anchors-plugins-bitcoin |
See module README | Mainnet, Testnet | Bitcoin anchoring via OP_RETURN with BitcoinJ |
| Ganache | org.trustweave:anchors-plugins-ganache |
Integration Modules | Local | Local developer anchoring using Ganache/Testcontainers for testing |
Key Management Service (KMS) Plugins
KMS plugins enable TrustWeave to use various key management services for secure key generation, storage, and signing operations. All KMS plugins implement the KeyManagementService interface.
Cloud KMS Providers
| Plugin | Module ID | Documentation | Key Features |
|---|---|---|---|
| AWS KMS | org.trustweave:kms-plugins-aws |
AWS KMS Guide | FIPS 140-3 Level 3, Ed25519, secp256k1, P-256/P-384/P-521, RSA |
| Azure Key Vault | org.trustweave:kms-plugins-azure |
Azure KMS Guide | Managed Identity, Service Principal auth, secp256k1, P-256/P-384/P-521, RSA |
| Google Cloud KMS | org.trustweave:kms-plugins-google |
Google KMS Guide | Application Default Credentials, secp256k1, P-256/P-384, RSA |
Self-Hosted KMS Providers
| Plugin | Module ID | Documentation | Key Features |
|---|---|---|---|
| HashiCorp Vault | org.trustweave:kms-plugins-hashicorp |
HashiCorp Vault Guide | Transit engine, Token/AppRole auth, Ed25519, secp256k1, P-256/P-384/P-521, RSA |
| PKCS#11 / HSM | org.trustweave:kms-plugins-pkcs11 |
See module README | Generic PKCS#11 provider for hardware HSMs (SoftHSM2 tested), token-based authentication |
| IBM Key Protect | org.trustweave:kms-plugins-ibm |
IBM Key Protect Guide | IBM Cloud Key Protect with IAM auth, key wrap/unwrap, EC and RSA keys |
| In-Memory | org.trustweave:kms-plugins-inmemory |
In-Memory KMS Guide | Ephemeral in-memory key storage for development and tests |
Credential Format & Exchange Plugins
Credential plugins provide format support (SD-JWT VC, mdoc / mDL, BBS+), status / revocation, and exchange / discovery protocols. They live under credentials/plugins/* and are pulled in alongside credentials:credential-api.
Exchange protocols
| Plugin | Module ID | Description |
|---|---|---|
| OIDC4VCI | org.trustweave:credentials-plugins-oidc4vci |
OpenID for Verifiable Credential Issuance |
| OIDC4VP | org.trustweave:credentials-plugins-oidc4vp |
OpenID for Verifiable Presentations |
| SIOPv2 | org.trustweave:credentials-plugins-siop |
Self-Issued OpenID Provider v2 |
| Presentation Exchange | org.trustweave:credentials-plugins-presentation-exchange |
DIF Presentation Exchange request / definition matching |
| DIDComm v2 | org.trustweave:credentials-plugins-didcomm |
DIDComm v2 secure messaging and credential exchange |
| CHAPI | org.trustweave:credentials-plugins-chapi |
Credential Handler API for browser-based wallets |
| OpenID Federation | org.trustweave:credentials-plugins-openid-federation |
OpenID Federation 1.0 (issuer / verifier discovery) |
| EUDIW | org.trustweave:credentials-plugins-eudiw |
EU Digital Identity Wallet profile glue |
Credential formats / proofs
| Plugin | Module ID | Description |
|---|---|---|
| BBS+ | org.trustweave:credentials-plugins-bbs |
BBS+ selective-disclosure proofs |
| mDL / mdoc | org.trustweave:credentials-plugins-mdl |
ISO/IEC 18013-5 mobile driving licence (mdoc) format |
| JAdES (credential proof) | org.trustweave:credentials-plugins-jades |
ETSI JAdES JSON Advanced Electronic Signature proofs on credentials |
Agent authorization (agentic commerce)
| Plugin | Module ID | Documentation | Description |
|---|---|---|---|
| Verifiable Intent | org.trustweave:credentials-plugins-verifiable-intent |
Verifiable Intent Plugin | Mastercard/Google Verifiable Intent — layered SD-JWT/ES256 delegation chain proving what a user authorized an AI agent to do |
Status / revocation
| Plugin | Module ID | Description |
|---|---|---|
| StatusList (bitstring) | org.trustweave:credentials-plugins-status-list-bitstring |
W3C Bitstring Status List 2023 |
| StatusList (token) | org.trustweave:credentials-plugins-status-list-token |
Token-based status list |
| StatusList (publishing) | org.trustweave:credentials-plugins-status-list-publishing |
Publishing helpers for status lists |
| StatusList (database) | org.trustweave:credentials-plugins-status-list-database |
Database-backed status list storage |
| StatusList (server) | org.trustweave:credentials-plugins-status-list-server |
HTTP server for status list documents |
| Anchor adapter | org.trustweave:credentials-plugins-anchor |
Anchor credentials / status data to a configured chain |
For application-level helpers (audit logging, metrics, notifications, rendering, etc.) referenced in the legacy “feature plugins” tables, see the Features Usage Guide — those are integration patterns, not separate Gradle modules in this release.
Signature Suites — eIDAS QES
Advanced electronic signature support aligned with ETSI / eIDAS for qualified electronic signatures. See eIDAS QES design for the overall architecture.
| Plugin | Module ID | Description |
|---|---|---|
| TSA core | org.trustweave:signatures-tsa-core |
RFC 3161 time-stamp client and configuration (BouncyCastle backend) |
| Trust lists | org.trustweave:signatures-trust-lists |
ETSI TS 119 612 trust list parser, LOTL signature verifier, trust-anchor resolver |
| JAdES | org.trustweave:signatures-jades |
ETSI TS 119 182-1 JSON Advanced Electronic Signatures |
| CAdES | org.trustweave:signatures-cades |
ETSI TS 119 122 CMS Advanced Electronic Signatures |
| XAdES | org.trustweave:signatures-xades |
ETSI TS 119 132 XML Advanced Electronic Signatures |
| PAdES | org.trustweave:signatures-pades |
ETSI TS 119 142 PDF Advanced Electronic Signatures (skeleton) |
| ETSI validation | org.trustweave:signatures-etsi-validation |
ETSI EN 319 102 signature validation report engine |
Trust Registry
Pluggable trust registry for issuer/holder/verifier trust relationships.
| Module | Module ID | Description |
|---|---|---|
| Trust Registry core | org.trustweave:trust-registry-trust-registry-core |
SPI and core registry types |
| Database registry | org.trustweave:trust-registry-plugins-database |
Relational-database-backed registry implementation |
| Trust Registry server | org.trustweave:trust-registry-trust-registry-server |
Ktor-based HTTP server exposing the registry |
Server Modules
Ready-to-run Ktor server modules wrapping the above plugins.
| Module | Module ID | Description |
|---|---|---|
| OIDC4VCI issuer server | org.trustweave:credentials-oidc4vci-server |
Ktor issuer server implementing the OIDC4VCI protocol |
| VC API server | org.trustweave:credentials-vc-api-server |
Ktor server implementing the W3C VC API (issue/verify) |
| Status List server | org.trustweave:credentials-plugins-status-list-server |
HTTP server publishing W3C Bitstring / Token status list documents |
| DID Registrar server | org.trustweave:did-registrar |
Ktor server implementing the Universal Registrar interface for supported DID methods |
Other Integrations
Additional integrations that provide bridges to other identity ecosystems or combined DID/KMS functionality.
| Plugin | Module ID | Documentation | Description |
|---|---|---|---|
| GoDiddy | org.trustweave:did-plugins-godiddy |
GoDiddy Guide | HTTP bridge to DID/VC services exposed by the GoDiddy stack |
| walt.id | org.trustweave:kms-plugins-waltid |
walt.id Guide | DID and KMS providers from the walt.id ecosystem |
Experimental / Stub Plugins
The following plugins have scaffolding in place but are not yet fully implemented. They will throw descriptive exceptions if used. Check GitHub issues for implementation status.
| Plugin | Module | Status |
|---|---|---|
| Optimism | org.trustweave:anchors-plugins-optimism |
Code scaffolded; not yet documented or production-tested |
| zkSync | org.trustweave:anchors-plugins-zksync |
Code scaffolded; not yet documented or production-tested |
| Cardano | org.trustweave:anchors-plugins-cardano |
Transaction submission/reading not implemented |
| StarkNet | org.trustweave:anchors-plugins-starknet |
Transaction operations not implemented |
| Indy | org.trustweave:anchors-plugins-indy |
ATTRIB transaction operations not implemented |
| did:btcr | org.trustweave:did-plugins-btcr |
Create/resolve not implemented |
| did:tezos | org.trustweave:did-plugins-tezos |
Create/resolve not implemented |
| did:orb | org.trustweave:did-plugins-orb |
Create/resolve not implemented |
| did:3box | org.trustweave:did-plugins-threebox |
Create/resolve not implemented |
| Fortanix | org.trustweave:kms-plugins-fortanix |
Code scaffolded; not yet production-tested |
| CyberArk Conjur | org.trustweave:kms-plugins-cyberark |
Code scaffolded; not yet production-tested |
| CloudHSM | org.trustweave:kms-plugins-cloudhsm |
Not implemented |
| Entrust | org.trustweave:kms-plugins-entrust |
Not implemented |
| Thales | org.trustweave:kms-plugins-thales |
Not implemented |
| Thales Luna | org.trustweave:kms-plugins-thales-luna |
Not implemented |
| Utimaco | org.trustweave:kms-plugins-utimaco |
Not implemented |
| ServiceNow | credentials:platforms:servicenow |
Credential issuance/verification not implemented |
| Salesforce | credentials:platforms:salesforce |
Credential issuance/verification not implemented |
| Entra ID | credentials:platforms:entra |
Credential issuance/verification not implemented |
| Venafi | org.trustweave:kms-plugins-venafi |
Credential issuance not implemented |
Usage Example
To use a plugin, simply add it as a dependency to your project:
1
2
3
4
5
6
7
8
9
10
dependencies {
// DID method plugin
implementation("org.trustweave:did-plugins-key:0.6.0")
// Blockchain anchor plugin
implementation("org.trustweave:anchors-plugins-ethereum:0.6.0")
// KMS plugin
implementation("org.trustweave:kms-plugins-aws:0.6.0")
}
Plugins are automatically discovered and registered via the SPI (Service Provider Interface) pattern. No extra registration call is required at runtime: providers on the classpath are considered when you build the facade:
1
2
3
4
5
6
7
import kotlinx.coroutines.runBlocking
import org.trustweave.trust.TrustWeave
fun main() = runBlocking {
val trustWeave = TrustWeave.quickStart()
// SPI-provided KMS / DID / anchor providers participate in resolution during build/quickStart.
}
Creating Custom Plugins
If you need to create a custom plugin, see the Creating Plugins Guide for detailed instructions on implementing:
- DID methods
- Blockchain anchor clients
- Key management services
- Proof generators
- Wallet factories
- Credential services
Related Documentation
- Integration modules — Detailed integration guides for each plugin
- Plugin implementation roadmap — Current implementation status of all plugins
- Creating plugins — Guide for implementing custom plugins
- Plugin lifecycle — Managing plugin initialization and lifecycle