Skip to main content

Walkthrough

Celestials is a multi-chain naming service that allows users to register human-readable names and link them to addresses across different blockchain networks.

Overview​

With Celestials, users can:

  • Register unique celestial IDs (like hello_world.i)
  • Link these IDs to addresses across multiple supported chains
  • Verify ownership of linked addresses through cryptographic signatures
  • Resolve names to addresses and vice versa

Environments​

We provide two environments for development and production use:

EnvironmentBackendFrontendForma RPC
Productionapi.celestials.idcelestials.idrpc.forma.art
Stageapi.stage.celestials.idstage.celestials.idrpc.sketchpad-1.forma.art

When to Use Each Environment​

  • Production: Ready for live applications. No authorization required.
  • Stage: Recommended for testing changes without spending real TIA or waiting for auctions to finish. Feel free to contact us if you need test TIA tokens.

All APIs are OpenAPI compatible and can be explored through the Scalar links above.

Address Verification Status​

Understanding the verification levels for linked addresses:

  • NOT_VERIFIED: Address was linked to a Celestial ID without cryptographic verification. Ownership cannot be confirmed.
  • VERIFIED: Address was linked and the user provided a cryptographic signature, proving ownership.
  • PRIMARY: Address is verified and marked as the user's primary address for this Celestial ID.

Core API Endpoints​

1. Batch Lookup​

Resolve multiple Celestial IDs to addresses on specific chains.

Endpoint: POST /api/resolver/lookup

Docs: https://api.celestials.id/scalar#tag/resolver/post/api/resolver/lookup

Example Request:

curl https://api.celestials.id/api/resolver/lookup \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"celestial_chain": [
{
"celestials_id": "lueveka",
"chain_id": "0xf043a"
}
]
}'

Example Response:

{
"addresses": [
{
"address": "0x149ee62a662996eee56cb9385002f5e31ef794e6",
"status": "NOT_VERIFIED"
}
]
}

2. Batch Reverse Lookup​

Find all celestial IDs associated with multiple specific addresses.

Endpoint: POST /api/resolver/reverse_lookup

Docs: https://api.celestials.id/scalar#tag/resolver/post/api/resolver/reverse_lookup

Example Request:

curl https://api.celestials.id/api/resolver/reverse_lookup \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"chain_addresses": [
{
"address": "0x0000a78C054b03be49DaF6A05c772705F0710000",
"chain_id": "0xf043a"
}
]
}'

Example Response:

{
"celestial_ids": [
[
{
"celestial_id": "lueveka_alt.i",
"status": "VERIFIED"
},
{
"celestial_id": "lueveka.i",
"status": "PRIMARY"
},
]
]
}

3. Primary Lookup​

Lookup addresses on specific chain using list of Primary Celestial IDs.

Endpoint: POST /api/resolver/primary_lookup

Docs: https://api.celestials.id/scalar#tag/resolver/post/api/resolver/primary_lookup

Example Request:

curl https://api.celestials.id/api/resolver/primary_lookup \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"celestial_ids": [
"blobfest.i",
"lueveka_alt.i"
],
"chain_id": "0xf043a"
}'

Example Response:

{
"primary_addresses": {
"blobfest.i": "0x1a83faf6bd193f17f97a3b0542d764397ff96d34",
"lueveka_alt.i": "0x0000a78c054b03be49daf6a05c772705f0710000"
}
}

4. Primary Reverse Lookup​

Lookup Primary Celestial IDs for list of addresses on a specific chain.

Endpoint: POST /api/resolver/primary_reverse_lookup

Docs: https://api.celestials.id/scalar#tag/resolver/post/api/resolver/primary_reverse_lookup

Example Request:

curl https://api.celestials.id/api/resolver/primary_reverse_lookup \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"addresses": [
"0x1a83faf6bd193f17f97a3b0542d764397ff96d34",
"0x0000a78c054b03be49daf6a05c772705f0710000"
],
"chain_id": "0xf043a"
}'

Example Response:

{
"primary_celestials": {
"0x0000a78c054b03be49daf6a05c772705f0710000": "lueveka_alt.i",
"0x1a83faf6bd193f17f97a3b0542d764397ff96d34": "blobfest.i"
}
}

5. Address Changes​

Returns the changes of the addresses. The changes are sorted by change id in ascending order and the last change id is returned as the head.

Endpoint: POST /api/resolver/changes

Docs: https://api.celestials.id/scalar#tag/resolver/post/api/resolver/changes

Example Request:

curl https://api.celestials.id/api/resolver/changes \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"chain_id": "0xf043a",
"from_change_id": 1234,
"limit": 100,
"only_head": false,
"with_images": true
}'

Example Response:

{
"changes": [
{
"address": "0x0000a78C054b03be49DaF6A05c772705F0710000",
"celestial_id": "lueveka",
"change_id": 1234,
"image_url": "https://ipfs.io/ipfs/QmUi269vE25fagqhyMCCTNSoiW6x4LHCwwQb3keSrEXAmC",
"status": "NOT_VERIFIED"
}
],
"head": 2345
}

6. Supported Chains​

Get a list of all currently supported blockchain networks.

Endpoint: GET /api/resolver/chains

Docs: https://api.celestials.id/scalar#tag/resolver/get/api/resolver/chains

Example Request:

curl https://api.celestials.id/api/resolver/chains

System Status and Monitoring​

Backend Status​

Monitor the health and synchronization status of our backend services.

Endpoint: GET /api/status

Docs: https://api.celestials.id/scalar#tag/status/get/api/status

Example Request:

curl https://api.celestials.id/api/status

Example Response:

{
"processed_block_height": 9390983,
"rpc_block_height": 9390987,
"sync_status": "SYNCING"
}

The status endpoint provides:

  • processed_block_height: Last block processed by our indexer
  • rpc_block_height: Current block height from the RPC node
  • sync_status: Current synchronization state

Support​

For questions, issues, or to request test tokens for the stage environment, please contact our team. support@celestials.id

API Documentation​

Complete API documentation with interactive examples is available at: