Wallets
Install Dependency
Package: pkg:maven/com.affinidi.tdk/wallets.client
<dependency>
<groupId>com.affinidi.tdk</groupId>
<artifactId>wallets.client</artifactId>
<version><version_number></version>
</dependency>Check the latest version on the Maven Central repository or view the source on GitHub.
Classes and Methods
Wallet API
Used to manage digital wallets for issuing credentials.
createWallet
Creates a wallet by type.
Parameters
Example
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
import com.affinidi.tdk.wallets.client.models.CreateWalletInput;
import com.affinidi.tdk.wallets.client.models.CreateWalletResponse;
import com.affinidi.tdk.wallets.client.models.CreateWalletInput.DidMethodEnum;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
CreateWalletInput requestInput = new CreateWalletInput()
.name("Wallet Name")
.description("Description")
.didMethod(DidMethodEnum.KEY);
CreateWalletResponse result = apiInstance.createWallet(requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}deleteWallet
Deletes a wallet by ID.
Parameters
walletId
String
RequiredExample
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
apiInstance.deleteWallet("<WALLET_ID>");
} catch (Exception e) {
e.printStackTrace();
}getWallet
Retrieves the details of a wallet.
Parameters
walletId
String
RequiredExample
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
import com.affinidi.tdk.wallets.client.models.WalletDto;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
WalletDto result = apiInstance.getWallet("<WALLET_ID>");
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}listWallets
Returns the list of wallets for the current project.
No parameters required.
Example
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
import com.affinidi.tdk.wallets.client.models.WalletsListDto;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
WalletsListDto result = apiInstance.listWallets(null);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}signCredential
Signs a credential with the wallet’s DID document.
Parameters
walletId
String
RequiredExample
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
import com.affinidi.tdk.wallets.client.models.SignCredentialInputDto;
import com.affinidi.tdk.wallets.client.models.SignCredentialInputDto.CredentialFormatEnum;
import com.affinidi.tdk.wallets.client.models.SignCredentialInputDtoUnsignedCredentialParams;
import com.affinidi.tdk.wallets.client.models.SignCredentialResultDto;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
SignCredentialInputDto requestInput = new SignCredentialInputDto()
.credentialFormat(CredentialFormatEnum.LDP_VC)
.revocable(false)
.unsignedCredential(new Object())
.unsignedCredentialParams(new SignCredentialInputDtoUnsignedCredentialParams());
SignCredentialResultDto response = apiInstance.signCredential("<WALLET_ID>", requestInput);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}signJwtToken
Signs a JSON Web Token with the wallet’s DID document.
Parameters
walletId
String
RequiredExample
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
import com.affinidi.tdk.wallets.client.models.SignJwtToken;
import com.affinidi.tdk.wallets.client.models.SignJwtTokenOK;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
SignJwtToken requestInput = new SignJwtToken()
.header(new Object())
.payload(new Object());
SignJwtTokenOK response = apiInstance.signJwtToken("<WALLET_ID>", requestInput);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}updateWallet
Updates an existing wallet by ID.
Parameters
walletId
String
RequiredExample
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
import com.affinidi.tdk.wallets.client.models.UpdateWalletInput;
import com.affinidi.tdk.wallets.client.models.WalletDto;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
UpdateWalletInput requestInput = new UpdateWalletInput()
.name("Name")
.description("Description");
WalletDto result = apiInstance.updateWallet("<WALLET_ID>", requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}createWalletKey
Adds a cryptographic key to an existing wallet.
Note: Multiple keys are only supported for
did:webwallets.
Parameters
walletId
String
RequiredExample
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
import java.util.List;
import com.affinidi.tdk.wallets.client.models.CreateWalletKeyInput;
import com.affinidi.tdk.wallets.client.models.WalletKeyDto;
import com.affinidi.tdk.wallets.client.models.VerificationRelationship;
import com.affinidi.tdk.wallets.client.models.CreateWalletKeyInput.KeyTypeEnum;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
CreateWalletKeyInput requestInput = new CreateWalletKeyInput()
.keyType(KeyTypeEnum.ED25519)
.relationships(List.of(VerificationRelationship.AUTHENTICATION, VerificationRelationship.ASSERTION_METHOD));
WalletKeyDto result = apiInstance.createWalletKey("<WALLET_ID>", requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}listWalletKeys
Retrieves all keys associated with a wallet.
Note: Multiple keys are only supported for
did:webwallets.
Parameters
walletId
String
RequiredExample
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
import com.affinidi.tdk.wallets.client.models.ListWalletKeysOK;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
ListWalletKeysOK result = apiInstance.listWalletKeys("<WALLET_ID>");
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}removeWalletKey
Removes a key from a wallet.
Note: Multiple keys are only supported for
did:webwallets.
Parameters
walletId
String
RequiredkeyId
String
Required"key-1").Example
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
apiInstance.removeWalletKey("<WALLET_ID>", "key-1");
} catch (Exception e) {
e.printStackTrace();
}updateWalletKey
Updates the verification relationships of an existing wallet key.
Note: Multiple keys are only supported for
did:webwallets.
Parameters
walletId
String
RequiredkeyId
String
Required"key-1").Example
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
import java.util.List;
import com.affinidi.tdk.wallets.client.models.UpdateWalletKeyInput;
import com.affinidi.tdk.wallets.client.models.WalletKeyDto;
import com.affinidi.tdk.wallets.client.models.VerificationRelationship;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
UpdateWalletKeyInput requestInput = new UpdateWalletKeyInput()
.relationships(List.of(VerificationRelationship.AUTHENTICATION, VerificationRelationship.KEY_AGREEMENT));
WalletKeyDto result = apiInstance.updateWalletKey("<WALLET_ID>", "key-1", requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}createServiceEndpoint
Adds a DID service endpoint to a wallet’s DID document.
Parameters
walletId
String
RequiredExample
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
import com.affinidi.tdk.wallets.client.models.ServiceEndpointInput;
import com.affinidi.tdk.wallets.client.models.ServiceEndpointDto;
import com.affinidi.tdk.wallets.client.models.ServiceEndpointInput.ServiceTypeEnum;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
ServiceEndpointInput requestInput = new ServiceEndpointInput()
.url("https://example.com/messaging")
.name("My Messaging Service")
.serviceType(ServiceTypeEnum.DID_COMM_MESSAGING);
ServiceEndpointDto result = apiInstance.createServiceEndpoint("<WALLET_ID>", requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}listServiceEndpoints
Retrieves all service endpoints associated with a wallet.
Parameters
walletId
String
RequiredExample
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
import com.affinidi.tdk.wallets.client.models.ListServiceEndpointsOK;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
ListServiceEndpointsOK result = apiInstance.listServiceEndpoints("<WALLET_ID>");
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}removeServiceEndpoint
Removes a service endpoint from a wallet’s DID document.
Parameters
walletId
String
RequiredserviceId
String
RequiredExample
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
apiInstance.removeServiceEndpoint("<WALLET_ID>", "<SERVICE_ID>");
} catch (Exception e) {
e.printStackTrace();
}updateServiceEndpoint
Updates an existing service endpoint on a wallet.
Parameters
walletId
String
RequiredserviceId
String
RequiredExample
import com.affinidi.tdk.wallets.client.Configuration;
import com.affinidi.tdk.wallets.client.ApiClient;
import com.affinidi.tdk.wallets.client.apis.WalletApi;
import com.affinidi.tdk.wallets.client.auth.ApiKeyAuth;
import com.affinidi.tdk.wallets.client.models.UpdateServiceEndpointInput;
import com.affinidi.tdk.wallets.client.models.ServiceEndpointDto;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
UpdateServiceEndpointInput requestInput = new UpdateServiceEndpointInput()
.name("Updated Service Name")
.url("https://new-endpoint.example.com");
ServiceEndpointDto result = apiInstance.updateServiceEndpoint("<WALLET_ID>", "<SERVICE_ID>", requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}Glad to hear it. Thanks for letting us know.
Sorry to hear that. Thanks for letting us know.