Affinidi Iota Framework
Install Dependency
Package: pkg:maven/com.affinidi.tdk/iota.client
<dependency>
<groupId>com.affinidi.tdk</groupId>
<artifactId>iota.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
Configurations API
Manage Affinidi Iota Framework configurations to integrate your application to request data from Affinidi Vault.
createIotaConfiguration
Creates an Affinidi Iota Framework configuration.
Parameters
Example
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.ConfigurationsApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.IotaConfigurationDto;
import com.affinidi.tdk.iota.client.models.CreateIotaConfigurationInput;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
ConfigurationsApi apiInstance = new ConfigurationsApi(defaultClient);
CreateIotaConfigurationInput requestInput = new CreateIotaConfigurationInput()
.name("Sample App")
.walletAri("<WALLET_ARI>")
.iotaResponseWebhookURL("http://localhost");
IotaConfigurationDto result = apiInstance.createIotaConfiguration(requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}deleteIotaConfigurationById
Deletes an existing Affinidi Iota Framework configuration by ID.
Parameters
configurationId
String
RequiredExample
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.ConfigurationsApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
ConfigurationsApi apiInstance = new ConfigurationsApi(defaultClient);
apiInstance.deleteIotaConfigurationById("<CONFIG_ID>");
} catch (Exception e) {
e.printStackTrace();
}getIotaConfigurationById
Retrieves an existing Affinidi Iota Framework configuration by ID.
Parameters
configurationId
String
RequiredExample
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.ConfigurationsApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.IotaConfigurationDto;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
ConfigurationsApi apiInstance = new ConfigurationsApi(defaultClient);
IotaConfigurationDto result = apiInstance.getIotaConfigurationById("<CONFIG_ID>");
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}getIotaConfigurationMetaData
Retrieves the metadata of an existing Affinidi Iota Framework configuration.
Parameters
projectId
String
RequiredconfigurationId
String
RequiredExample
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.ConfigurationsApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.GetIotaConfigurationMetaDataOK;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
ConfigurationsApi apiInstance = new ConfigurationsApi(defaultClient);
GetIotaConfigurationMetaDataOK result = apiInstance.getIotaConfigurationMetaData("<PROJECT_ID>", "<CONFIG_ID>");
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}listIotaConfigurations
Lists all Affinidi Iota Framework configurations.
No parameters required.
Example
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.ConfigurationsApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.ListConfigurationOK;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
ConfigurationsApi apiInstance = new ConfigurationsApi(defaultClient);
ListConfigurationOK result = apiInstance.listIotaConfigurations();
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}updateIotaConfigurationById
Updates an existing Affinidi Iota Framework configuration by ID.
Parameters
configurationId
String
RequiredExample
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.ConfigurationsApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.IotaConfigurationDto;
import com.affinidi.tdk.iota.client.models.UpdateConfigurationByIdInput;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
ConfigurationsApi apiInstance = new ConfigurationsApi(defaultClient);
UpdateConfigurationByIdInput requestInput = new UpdateConfigurationByIdInput()
.name("Sample App")
.walletAri("<WALLET_ARI>")
.iotaResponseWebhookURL("http://localhost");
IotaConfigurationDto result = apiInstance.updateIotaConfigurationById("<CONFIG_ID>", requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}Iota API
Generate access token required to access the Affinidi Iota Framework.
awsExchangeCredentials
Exchanges a limited token into a Cognito token.
Parameters
Example
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.IotaApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.AwsExchangeCredentials;
import com.affinidi.tdk.iota.client.models.AwsExchangeCredentialsOK;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
IotaApi apiInstance = new IotaApi(defaultClient);
AwsExchangeCredentials requestInput = new AwsExchangeCredentials()
.assertion("<JWT_STRING>");
AwsExchangeCredentialsOK result = apiInstance.awsExchangeCredentials(requestInput);
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}initiateDataSharingRequest
Initiates a data-sharing request for Affinidi Iota Framework and returns the signed request token.
Parameters
Example
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.IotaApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.InitiateDataSharingRequestInput;
import com.affinidi.tdk.iota.client.models.InitiateDataSharingRequestOK;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
IotaApi apiInstance = new IotaApi(defaultClient);
InitiateDataSharingRequestInput requestInput = new InitiateDataSharingRequestInput()
.configurationId("<IOTA_CONFIGURATION_ID>")
.mode(InitiateDataSharingRequestInput.ModeEnum.REDIRECT)
.queryId("<IOTA_CONFIGURATION_QUERY_ID>")
.correlationId("<uuid4_string>")
.nonce("<NONCE_FROM_FRONTEND>")
.redirectUri("<IOTA_CONFIGURATION_REDIRECT_URL>");
InitiateDataSharingRequestOK result = apiInstance.initiateDataSharingRequest(requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}fetchIotaVpResponse
Fetches the callback response from Affinidi Vault.
Parameters
Example
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.IotaApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.FetchIOTAVPResponseInput;
import com.affinidi.tdk.iota.client.models.FetchIOTAVPResponseOK;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
IotaApi apiInstance = new IotaApi(defaultClient);
FetchIOTAVPResponseInput requestInput = new FetchIOTAVPResponseInput()
.configurationId("<IOTA_CONFIGURATION_ID>")
.correlationId("<CORRELATION_ID_FROM_LOCAL_STORAGE>")
.transactionId("<TRANSACTION_ID_FROM_LOCAL_STORAGE>")
.responseCode("<RESPONSE_CODE_FROM_REDIRECT>");
FetchIOTAVPResponseOK result = apiInstance.fetchIotaVpResponse(requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}Default API
Manage logged consent from Affinidi Iota Framework.
listLoggedConsents
Returns the list of logged consents for the project.
Parameters
configurationId
String
OptionaluserId
String
Optionallimit
Integer
OptionalexclusiveStartKey
String
OptionalExample
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.DefaultApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.ListLoggedConsentsOK;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
DefaultApi apiInstance = new DefaultApi(defaultClient);
ListLoggedConsentsOK result = apiInstance.listLoggedConsents("<CONFIG_ID>", "<USER_ID>", 56, null);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}Callback API
Manage logged consent from Affinidi Iota Framework.
iotOIDC4VPCallback
Handles callback from clients with data from OID4VP transactions, including states, presentation submission, and verification tokens.
Parameters
Example
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.CallbackApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.CallbackInput;
import com.affinidi.tdk.iota.client.models.CallbackResponseOK;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
CallbackApi apiInstance = new CallbackApi(defaultClient);
CallbackInput requestInput = new CallbackInput()
.state("<RANDOM_STRING>")
.presentationSubmission("<PRESENTATION_SUBMISSION_OBJECT>")
.vpToken("<VERIFIABLE_PRESENTATION_OBJECT>")
.onboarded(true);
CallbackResponseOK result = apiInstance.iotOIDC4VPCallback(requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}PexQuery API
Manage Presentation Exchange (PEX) query definitions within Affinidi Iota Framework configurations.
createPexQuery
Creates a Presentation Definition in an Iota configuration.
Parameters
configurationId
String
RequiredExample
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.PexQueryApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.CreatePexQueryInput;
import com.affinidi.tdk.iota.client.models.PexQueryDto;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
PexQueryApi apiInstance = new PexQueryApi(defaultClient);
CreatePexQueryInput requestInput = new CreatePexQueryInput()
.name("Request Data")
.vpDefinition("{PRESENTATION_DEFINITION_JSON_STRING}");
PexQueryDto result = apiInstance.createPexQuery("<CONFIG_ID>", requestInput);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}deletePexQueryById
Deletes a Presentation Definition by query ID from an Iota configuration.
Parameters
configurationId
String
RequiredqueryId
String
RequiredExample
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.PexQueryApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
PexQueryApi apiInstance = new PexQueryApi(defaultClient);
apiInstance.deletePexQueryById("<CONFIG_ID>", "<QUERY_ID>");
} catch (Exception e) {
e.printStackTrace();
}getPexQueryById
Retrieves a Presentation Definition by query ID from an Iota configuration.
Parameters
configurationId
String
RequiredqueryId
String
RequiredExample
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.PexQueryApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.PexQueryDto;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
PexQueryApi apiInstance = new PexQueryApi(defaultClient);
PexQueryDto result = apiInstance.getPexQueryById("<CONFIG_ID>", "<QUERY_ID>");
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}listPexQueries
Retrieves all Presentation Definitions in an Iota configuration.
Parameters
configurationId
String
RequiredExample
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.PexQueryApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.ListPexQueriesOK;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
PexQueryApi apiInstance = new PexQueryApi(defaultClient);
ListPexQueriesOK result = apiInstance.listPexQueries("<CONFIG_ID>", 56, null);
System.out.println(result.toString());
} catch (Exception e) {
e.printStackTrace();
}updatePexQueryById
Updates a Presentation Definition by query ID in an Iota configuration.
Parameters
configurationId
String
RequiredqueryId
String
RequiredExample
import com.affinidi.tdk.iota.client.Configuration;
import com.affinidi.tdk.iota.client.apis.PexQueryApi;
import com.affinidi.tdk.iota.client.auth.ApiKeyAuth;
import com.affinidi.tdk.iota.client.models.PexQueryDto;
import com.affinidi.tdk.iota.client.models.UpdatePexQueryInput;
import com.affinidi.tdk.iota.client.ApiClient;
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
ApiKeyAuth ProjectTokenAuth = (ApiKeyAuth) defaultClient.getAuthentication("ProjectTokenAuth");
ProjectTokenAuth.setApiKey(authProvider.fetchProjectScopedToken());
PexQueryApi apiInstance = new PexQueryApi(defaultClient);
UpdatePexQueryInput requestInput = new UpdatePexQueryInput()
.vpDefinition("{PRESENTATION_DEFINITION_JSON_STRING}");
PexQueryDto result = apiInstance.updatePexQueryById("<CONFIG_ID>", "<QUERY_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.