This project aims to provide a scoped indexer for retrieving ADA Handle information from the Cardano blockchain and exposing it via REST using Yaci Store.
One may ask why Ada Handle resolve if there is already: https://github.com/koralabs/handles-public-api
Ada Handler resolver by CF differentiates itself with a number of following traits:
- it demostrates usage of Yaci-Store modular indexer
- is written in Java, thus easier extendable and to easier to reason about by Java Developers
- doesn't have any dependencies to other components, e.g. Ogmios, blockfrost, etc
- handles db has very small on disk footprint
- supports embedded DBs such as H2 for easier deployment
docker run -p 9095:9095 cardanofoundation/adahandle-resolver:latest
Java 17
git clone https://github.com/cardano-foundation/cf-adahandle-resolver.git
cd cf-adahandle-resolver
./mvnw clean package
java -jar target/cf-adahandle-resolver-0.0.1-SNAPSHOT.jar
To ensure the stability and reliability of this project, unit tests have been implemented. By clicking on the link below, you can access the detailed test report.
Endpoint | Description |
---|---|
http://localhost:9095/swagger-ui.html | Swagger UI for the API endpoints |
http://localhost:9095/api/v1/ada-handles/by-stake-address | [GET]s the ADA Handle held by a given stake address |
http://localhost:9095/api/v1/ada-handles/by-payment-address | [GET]s the ADA Handle held by a given payment address |
http://localhost:9095/api/v1/addresses/by-ada-handle/{adaHandle} | [GET]s the stake and payment addresses behind a provided ADA Handle |
http://localhost:9095/api/v1/ada-handles/by-payment-address | [GET]s the payment address behind a provided ADA Handle |
If you intend to scale this service, running multiple instances of the API is advisable.
However, you may not want a crawl job on every instance. To disable the indexer (yaci-store),
utilize the disable-indexer
profile as an environment variable.
SPRING_ACTIVE_PROFILES=disable-indexer java -jar target/cf-adahandle-resolver-0.0.1-SNAPSHOT.jar
Possible profiles: mainnet
, preprod
, preview
, local-node
, h2
, disable-indexer
Name | Description | Default Value |
---|---|---|
SPRING_ACTIVE_PROFILES | The active profile of the application | mainnet,h2 |
PORT | The port on which the server will listen for incoming requests | 9095 |
DB_URL | The URL of the database | jdbc:h2:mem:mydb |
DB_USERNAME | The username of the database user | sa |
DB_PASSWORD | The password of the database user | password |
REMOTE_NODE_URL | The URL of the remote node | relays-new.cardano-mainnet.iohk.io |
REMOTE_NODE_PORT | The port of the remote node | 3001 |
LOCAL_NODE_SOCKET_PATH | The path of the local node socket | <No default value> |
LOCAL_NODE_HOST | The host of the local node | <No default value> |
LOCAL_NODE_PORT | The port of the local node | <No default value> |