To setup the IDP Kit a few things may need to be considered and some configuration may be required, depending on your situation.
Configuration and data are kept in sub folders of the data root (by default the current working directory):
config/
data/
To override the data root, one can set the environment variable:
WALTID_DATA_ROOT
In the following sections you will find examples using the command line interface.
Refer to CLI | Command line interface for basic instructions of using the command line interface.
The IDP Kit consists of multiple submodules, which need to be configured according to your requirements:
Provides standard OIDC API endpoints, for communication with client applications
Provides presentation exchange and verification with SSI wallets via the OIDC/SIOP protocol
Provides communication with NFT wallets and verification of NFT collections and traits
By default, the IDP Kit exposes its API endpoints bound to localhost on port 8080.
To override the default bindings, set the following environment variables:
WALTID_WALLET_BACKEND_BIND_ADDRESS
WALTID_WALLET_BACKEND_PORT
Note: these variables are inherited from Wallet Kit, which is why they have the term WALLET in it.
To set binding address and port, you can also use the command arguments of the run command like so:
To set the bind address to "192.168.0.1" and the port to 8081:
To bind to all interfaces (on the default port):
The IDP Kit needs to communicate with the NFT Kit JS to process the NFT authorization request. You need to run an NFT Kit JS instance and specify which URL is accessible.
The underlying NFT Kit needs a configuration file to be able to verify NFTs for the IDP Kit. Therefore, you need to create a walt.yaml
file in the root folder of the IDP Kit.
Only two values must be updated. One of the providers
, depending on the network, where the NFT collection is lying and alchemy
under the apiKeys
section. The privateKey
just holds a placeholder value and can stay as it is.
providers
: a list of URLs to RPC node provider for every network. You can get them either from Infura or Alchemy.
Examples:
https://rinkeby.infura.io/v3/0184192d0fd9423b52322d79eca162b2
https://polygon-mumbai.g.alchemy.com/v2/yjbYhlaH3U_vfnTiRQ3miGQS0cKwQMGh
alchemy:
an API key from Alchemy.