API Quick Reference

Quick lookup for common TrustWeave (trustWeave) operations. For full signatures and edge cases, see Core API.

DIDs

Method Description Link
createDid { } Create a new DID (returns DidCreationResult) createDid()
resolveDid(did) Resolve a DID (String or Did) → DidResolutionResult resolveDid()
updateDid { } Update a DID document → DidDocument updateDid()
createDidWithKey { } Create DID and expose key id → DidCreationWithKeyResult core-api.md

Credentials

Method Description Link
issue { } Issue a VC → IssuanceResult issue()
verify(credential) Verify with defaults → VerificationResult verify()
verify { } Verify with DSL (revocation, schema, trust policy, …) verify()
presentationResult { } Build a VP → PresentationResult create-presentations.md

Wallets

Method Description Link
wallet { } Create a wallet → WalletCreationResult wallet()

Wallet storage/query live on the Wallet instance after a successful result (see Wallet API).

Blockchain

Use trustWeave.blockchains (e.g. anchor, read) — not a top-level anchor { } on the facade. See Core API — Blockchain and quick start.

Trust registry

Method Description
trust { } Trust DSL: addAnchor, isTrusted, findTrustPath, getTrustedIssuers, …

Requires trust { provider(...) } (or an explicit trust registry factory) in TrustWeave.build { }.

Delegation & keys

Method Description
delegate { } Delegation chain check → DelegationChainResult
rotateKey { } Key rotation → DidDocument
revoke(timeout) { } Revocation DSL

Snippets (current API)

Create DID

1
2
3
4
5
6
7
8
import org.trustweave.trust.TrustWeave
import org.trustweave.trust.types.getOrThrowDid

val trustWeave: TrustWeave = // TrustWeave.build { ... } or quickStart()
val issuerDid = trustWeave.createDid {
    method("key")
    algorithm("Ed25519")
}.getOrThrowDid()

Resolve DID

1
2
3
4
5
6
7
8
import org.trustweave.did.identifiers.Did
import org.trustweave.did.resolver.DidResolutionResult
import org.trustweave.did.resolver.errorMessage

when (val res = trustWeave.resolveDid(Did("did:key:example"))) {
    is DidResolutionResult.Success -> println(res.document.id)
    is DidResolutionResult.Failure -> println(res.errorMessage)
}

Update DID

1
2
3
4
5
6
7
8
import org.trustweave.trust.dsl.credential.DidMethods
import org.trustweave.testkit.services.*

trustWeave.updateDid {
    did("did:key:example")
    method(DidMethods.KEY)
    addService { /* ... */ }
}

Issue credential

1
2
3
4
5
6
7
8
9
10
11
12
13
import org.trustweave.trust.types.getOrThrow
import org.trustweave.credential.results.getOrThrow
import kotlinx.datetime.Clock

val credential = trustWeave.issue {
    credential {
        type("PersonCredential")
        issuer(issuerDid)
        subject { id("did:key:holder"); "name" to "Alice" }
        issued(Clock.System.now())
    }
    signedBy(issuerDid) // key id derived when configured
}.getOrThrow()

Verify credential

1
2
3
4
5
6
7
8
import org.trustweave.credential.results.VerificationResult

val result = trustWeave.verify(credential)

when (result) {
    is VerificationResult.Valid -> println("Valid")
    is VerificationResult.Invalid -> println(result.allErrors.joinToString())
}

Optional: import org.trustweave.trust.types.* for ergonomic helpers (result.valid, result.trustRegistryValid, result.errors as an alias of allErrors, etc.) on VerificationResult.

Wallet

1
2
3
4
5
6
7
8
import org.trustweave.trust.types.getOrThrow
import org.trustweave.credential.results.getOrThrow

val wallet = trustWeave.wallet {
    holder("did:key:holder")
    enableOrganization()
    enablePresentation()
}.getOrThrow()

Requires a WalletFactory on the TrustWeave configuration (e.g. testkit in tests).

Trust anchors

1
2
3
4
5
6
7
trustWeave.trust {
    addAnchor(issuerDid.value) {
        credentialTypes("EducationCredential")
        description("Trusted university")
    }
    val ok = isTrusted(issuerDid.value, "EducationCredential")
}

Delegation

1
2
3
4
val chain = trustWeave.delegate {
    from(delegatorDid.value)
    to(delegateDid.value)
}

Key rotation

1
2
3
4
5
6
7
import org.trustweave.trust.dsl.credential.KeyAlgorithms

trustWeave.rotateKey {
    did("did:key:example")
    oldKeyId("did:key:example#key-1")
    newAlgorithm(KeyAlgorithms.ED25519)
}

This site uses Just the Docs, a documentation theme for Jekyll.