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>You can check the latest version of this module on the Maven repository or view the source code at the GitHub repository.
Classes and Methods
Wallet API
Used to manage digital wallets for issuing credentials.
createWallet
Create a wallet by type.
Parameters
CreateWalletInput [Object]
JSON object to provide details for the wallet to create. See more here.
Example
import com.affinidi.tdk.authProvider.AuthProvider;
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();
// Configure API key authorization: ProjectTokenAuth
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
Delete a Wallet by ID.
Parameters
walletId [String]
ID of the Wallet to delete.
Example
import com.affinidi.tdk.authProvider.AuthProvider;
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();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
String walletId = "<WALLET_ID-to-delete>";
apiInstance.deleteWallet(walletId);
} catch (Exception e) {
e.printStackTrace();
}getWallet
Retrieves the details of the Wallet.
Parameters
walletId [String]
ID of the Wallet to retrieve.
Example
import com.affinidi.tdk.authProvider.AuthProvider;
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();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
String walletId = "<WALLET_ID>";
WalletDto result = apiInstance.getWallet(walletId);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}listWallets
Get the list of the Wallets.
Parameters
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();
// Configure API key authorization: ProjectTokenAuth
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
Sign a credentials with the Wallet details (DID document).
Parameters
walletId [String]
ID of the Wallet used for signing the credential.
SignCredentialInputDto [Object]
JSON object to provide the credential data to sign. See more here.
Example
import com.affinidi.tdk.authProvider.AuthProvider;
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.UpdateWalletInput;
import com.affinidi.tdk.wallets.client.models.WalletDto;
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();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
String walletId = "<WALLET_ID>";
Object unsignedCredential = new Object();
SignCredentialInputDto requestInput = new SignCredentialInputDto()
.credentialFormat(CredentialFormatEnum.LDP_VC)
.revocable(false)
.unsignedCredential(unsignedCredential)
.unsignedCredentialParams(new SignCredentialInputDtoUnsignedCredentialParams());
SignCredentialResultDto response = apiInstance.signCredential(walletId, requestInput);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}signJwtToken
Sign the JSON Web Token with the Wallet details (DID document).
Parameters
walletId [String]
ID of the Wallet used for signing the JWT.
SignCredentialInputDto [Object]
JSON object to provide the JWT data to sign. See more here.
Example
import com.affinidi.tdk.authProvider.AuthProvider;
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();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
String walletId = "<WALLET_ID>";
SignJwtToken requestInput = new SignJwtToken()
.header(new Object())
.payload(new Object());
SignJwtTokenOK response = apiInstance.signJwtToken(walletId, requestInput);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}updateWallet
Update an existing Wallet by ID.
Parameters
walletId [String]
ID of the Wallet to update.
UpdateWalletInput [Object]
JSON object to provide details for the wallet to update. See more here.
Example
import com.affinidi.tdk.authProvider.AuthProvider;
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();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
String walletId = "03707491e061e35e9756d4534c2edcb7";
UpdateWalletInput requestInput = new UpdateWalletInput()
.name("Name")
.description("Description");
WalletDto result = apiInstance.updateWallet(walletId, requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}createWalletKey
Add a cryptographic key to an existing wallet.
Note: Multiple keys are only supported for
did:webwallets.
Parameters
walletId [String]
ID of the Wallet to add a key to.
CreateWalletKeyInput [Object]
JSON object to provide the key details. See more here.
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.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();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
String walletId = "<WALLET_ID>";
CreateWalletKeyInput requestInput = new CreateWalletKeyInput()
.keyType(KeyTypeEnum.ED25519)
.relationships(List.of(VerificationRelationship.AUTHENTICATION, VerificationRelationship.ASSERTION_METHOD));
WalletKeyDto result = apiInstance.createWalletKey(walletId, requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}listWalletKeys
Retrieve all keys associated with a wallet.
Note: Multiple keys are only supported for
did:webwallets.
Parameters
walletId [String]
ID of the Wallet.
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.ListWalletKeysOK;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
String walletId = "<WALLET_ID>";
ListWalletKeysOK result = apiInstance.listWalletKeys(walletId);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}removeWalletKey
Remove a key from a wallet.
Note: Multiple keys are only supported for
did:webwallets.
Parameters
walletId [String]
ID of the Wallet.
keyId [String]
Wallet-scoped key identifier (e.g. "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();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
String walletId = "<WALLET_ID>";
String keyId = "key-1";
apiInstance.removeWalletKey(walletId, keyId);
} catch (Exception e) {
e.printStackTrace();
}updateWalletKey
Update the verification relationships of an existing wallet key.
Note: Multiple keys are only supported for
did:webwallets.
Parameters
walletId [String]
ID of the Wallet.
keyId [String]
Wallet-scoped key identifier (e.g. "key-1").
UpdateWalletKeyInput [Object]
JSON object to provide the updated key relationships. See more here.
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();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
String walletId = "<WALLET_ID>";
String keyId = "key-1";
UpdateWalletKeyInput requestInput = new UpdateWalletKeyInput()
.relationships(List.of(VerificationRelationship.AUTHENTICATION, VerificationRelationship.KEY_AGREEMENT));
WalletKeyDto result = apiInstance.updateWalletKey(walletId, keyId, requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}createServiceEndpoint
Add a DID service endpoint to a wallet’s DID document.
Parameters
walletId [String]
ID of the Wallet.
ServiceEndpointInput [Object]
JSON object to provide the service endpoint details. See more here.
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.ServiceEndpointInput;
import com.affinidi.tdk.wallets.client.models.ServiceEndpointDto;
import com.affinidi.tdk.wallets.client.models.ServiceEndpointInput.ServiceTypeEnum;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
String walletId = "<WALLET_ID>";
ServiceEndpointInput requestInput = new ServiceEndpointInput()
.url("https://example.com/messaging")
.name("My Messaging Service")
.serviceType(ServiceTypeEnum.DID_COMM_MESSAGING);
ServiceEndpointDto result = apiInstance.createServiceEndpoint(walletId, requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}listServiceEndpoints
Retrieve all service endpoints associated with a wallet.
Parameters
walletId [String]
ID of the Wallet.
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.ListServiceEndpointsOK;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
String walletId = "<WALLET_ID>";
ListServiceEndpointsOK result = apiInstance.listServiceEndpoints(walletId);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}removeServiceEndpoint
Remove a service endpoint from a wallet’s DID document.
Parameters
walletId [String]
ID of the Wallet.
serviceId [String]
ID of the service endpoint to remove.
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();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
String walletId = "<WALLET_ID>";
String serviceId = "<SERVICE_ID>";
apiInstance.removeServiceEndpoint(walletId, serviceId);
} catch (Exception e) {
e.printStackTrace();
}updateServiceEndpoint
Update an existing service endpoint on a wallet.
Parameters
walletId [String]
ID of the Wallet.
serviceId [String]
ID of the service endpoint to update.
UpdateServiceEndpointInput [Object]
JSON object to provide the updated service endpoint details. See more here.
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.UpdateServiceEndpointInput;
import com.affinidi.tdk.wallets.client.models.ServiceEndpointDto;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: ProjectTokenAuth
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
WalletApi apiInstance = new WalletApi(defaultClient);
String walletId = "<WALLET_ID>";
String serviceId = "<SERVICE_ID>";
UpdateServiceEndpointInput requestInput = new UpdateServiceEndpointInput()
.name("Updated Service Name")
.url("https://new-endpoint.example.com");
ServiceEndpointDto result = apiInstance.updateServiceEndpoint(walletId, serviceId, requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}Glad to hear it! Please tell us how we can improve more.
Sorry to hear that. Please tell us how we can improve.
Thank you for sharing your feedback so we can improve your experience.