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! 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.