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:
| Environment | Backend | Frontend | Forma RPC |
|---|---|---|---|
| Production | api.celestials.id | celestials.id | rpc.forma.art |
| Stage | api.stage.celestials.id | stage.celestials.id | rpc.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:
- Production: https://api.celestials.id/scalar
- Stage: https://api.stage.celestials.id/scalar