Wallet Service

The Wallet Service provides a set of endpoints to support the creation of a Data Wallet application that connects to a Solid Pod. With the Wallet Service:

  • An application can incorporate Wallet capabilities for managing resources in the Wallet (e.g. Read , Write , Delete ).

  • An application can incorporate Access Requests and Access Grants for managing access to data stored in the Wallet.

  • An application can add the ability to download data from an external reference for storage in the Wallet.

ESS Wallet Service Endpoints

ESS Wallet Service endpoints run at:

https://datawallet.{ESS Domain}

The ESS Wallet Service consists of the following endpoints:

Wallet Endpoint

Create, Read, Update and Delete Wallet resources.

HTTP Method
Endpoint
Description

GET

/wallet

List all resources in the Wallet.

PUT

/wallet

Create or update a resource in the Wallet.

GET

/wallet/{identifier}

Get the content of a resource in the Wallet.

DELETE

/wallet/{identifier}

Delete a resource from the Wallet.

Inbox Endpoint

Manage Access Requests in the Wallet inbox.

HTTP Method
Endpoint
Description

GET

/inbox

List all Access Requests in the inbox.

GET

/inbox/{uuid}

Fetch the content of a specific Access Request from the inbox.

DELETE

/inbox/{uuid}

Delete an Access Request from the inbox.

GET

/inbox/{uuid}/verify

Verify an Access Request in the inbox.

PUT

/inbox/{uuid}/grantAccess

Grant access to a resource based on a specific Access Request in the inbox.

PUT

/inbox/{uuid}/denyAccess

Deny access to a resource based on a specific Access Request in the inbox.

Access Grant Endpoint

Manage Access Grants in a user’s Wallet.

HTTP Method
Endpoint
Description

GET

/accessgrants

List all Access Grants managed by the user’s Wallet.

GET

/accessgrants/{uuid}

Fetch an Access Grant managed by the user’s Wallet.

DELETE

/accessgrants/{uuid}

Delete an Access Grant managed by the user’s Wallet.

PUT

/accessgrants/{uuid}/revoke

Revoke and delete an Access Grant managed by the user’s Wallet.

PUT

/accessgrants/revoke

Revoke and delete multiple Access Grants managed by the user’s Wallet.

Signup Endpoint

Initialize a Solid Pod for use with the Wallet.

HTTP Method
Endpoint
Description

POST

/signup

Initialize a user’s Pod for use with the Wallet.

Access Prompt Endpoint

Initiate and validate Access Request flows with third-party applications.

HTTP Method
Endpoint
Description

POST

/accessprompt

Endpoint subject to change. Send a prompt to a third party, initiating an Access Request flow.

GET

/accessprompt/resource

Endpoint subject to change. Validate an Access Request and search the Wallet for data of the requested type.

Login Endpoint

Facilitate login flows for applications.

HTTP Method
Endpoint
Description

GET

/login/userInfo

Experimental. Provide user properties to a client application.

Endpoint Access Control

The ESS Wallet Service endpoints listed above require the caller to be authenticated. The endpoints support the use of HTTP-only, secure session cookies.

Wallet Service Configuration

As part of the installation process, Inrupt provides base Kustomize overlays and associated files that require deployment-specific configuration inputs.

The following configuration options are available for the service and may be set as part of updating the inputs for your deployment. The Inrupt-provided base Kustomize overlays may be using updated configuration values that differ from the default values.

Required

SPRING_APPLICATION_HTTP_BASE_URL

Default : https://datawallet.<ESS Domain>

Specifies the root URL of the wallet service.

SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_WALLET_APP_CLIENT_ID

Default : https://datawallet.<ESS Domain>/app/id

Specifies the URL of the ClientID document for the wallet service.

Optional

Multiple third-party clients can be configured using indexed properties. The indexed property values must be consecutive non-negative integers starting at 0. For example:

WALLET_APP_THIRD_PARTY_CLIENTS_0_CLIENT=ffc36f46-45cf-4dbd-853e-7cdc5587e206
WALLET_APP_THIRD_PARTY_CLIENTS_0_NAME=DataWallet Companion App
WALLET_APP_THIRD_PARTY_CLIENTS_1_CLIENT=8257876e-ec3f-4b4c-8dda-8a00142351eb
WALLET_APP_THIRD_PARTY_CLIENTS_1_NAME=Third-party Wallet Application

WALLET_APP_THIRD_PARTY_CLIENTS_{index}_CLIENT

A unique identifier for a third-party client. For example, ffc36f46-45cf-4dbd-853e-7cdc5587e206 .

WALLET_APP_THIRD_PARTY_CLIENTS_{index}_NAME

A name for a third-party companion application. For example, “DataWallet Companion App”

Last updated