Download OpenAPI specification:Download
A Catalyst is a Server that runs different services. These services currently work as the backbone for Decentraland and work in a decentralized network. The current specification details the following services:
- Archipelago
- Content Server
- Lambdas Service
WARNING: We are working to close the version 1.0 of the Catalyst Protocol defined by this API. So far this is what we have and it's public but we are still working on refinement and during this process we may decided to deprecate or change some of the endpoints.
Retrieve detailed information about the services health and its configuration
{- "healthy": true,
- "configurations": {
- "realmName": "zeus"
}, - "content": {
- "healthy": true,
- "commitHash": "58bc402b1b8f0a407a9d66a5ea58b33dd141af5f",
- "version": "4.8.0"
}, - "comms": {
- "healthy": true,
- "protocol": "v3",
- "commitHash": "70bc402b1b8f0a407a9d66a5ea58b33dd141af5f"
}, - "lambdas": {
- "healthy": true,
- "commitHash": "18bc402b1b8f0a407a9d66a5ea58b33dd141af5f",
- "version": "4.8.0"
}, - "bff": {
- "usersCount": 51,
- "healthy": true,
- "commitHash": "80bc402b1b8f0a407a9d66a5ea58b33dd141af5f"
}
}
Decentraland is a virtual world that is owned by its users. One of the biggest differentiators about Decentraland is its level of decentralization. Users can own LAND, wearables, and probably other types of items in the future. Each of these items is an NFT in itself, and therefore ownership is determined by the Ethereum (or EVM-compatible) blockchain.
Now, when a new wearable is created, or when a user uploads a scene to their LAND/parcel, all necessary files (3d models, textures, music, etc) are uploaded to a "content server". Why are we using these servers instead of the blockchain? Mainly because it would be prohibitively expensive to store files as big as 3d models in the blockchain. Users would have to pay fees so high to upload content to their parcels that nobody would do it.
So this is where content servers come into play. The content server is mainly a server where users can upload these files we mentioned before. Each server will verify against the blockchain that the user making the upload is actually allowed to do so. For example, in the case of scenes, the server will check that the deployer owns all the parcels they are trying to modify.
And the most important part is that all content servers will then sync with each other. So, for example, if a scene is modified in one server, the update itself will be broadcasted to the other ones. Then, in the case a content server goes down for some reason, all content will still be present in the other ones.
Get information about an entity, such us Scenes Profiles or Wearables, with the specified entityId.
entityType required | string Enum: "profile" "scene" "wearable" Example: profile Specify the type of entity to audit |
entityId required | string Example: QmQgezF4UWTZpD5VqKs2AGCzucRJdm8zU87MxdSRH9heZR id of the entity |
{- "version": "v3",
- "localTimestamp": 1628271052660,
- "authChain": [
- {
- "type": "SIGNER",
- "payload": "0x6B9d61D2AF37F0661dc3c3492fF74a6b13d13B86",
- "signature": ""
}, - {
- "type": "ECDSA_EPHEMERAL",
- "payload": "Decentraland Login\nEphemeral address: 0x422AF1a8705Caa58E16F21E7ECA64C8B868118Ca\nExpiration: 2021-08-13T11:30:32.697Z",
- "signature": "0x35a35fa65783f963bab9faa73035eedef019b783394d414df583ab0b89d859444168e985b0d71ff6c7fca57e77c0b609bb48c83ca997687d6072abe70f7e99ed1b"
}, - {
- "type": "ECDSA_SIGNED_ENTITY",
- "payload": "QmQgezF4UWTZpD5VqKs2AGCzucRJdm8zU87MxdSRH9heZR",
- "signature": "0x085e17af656af3f60ee2cc98de99e458949b58cd5c5aa417f2cdb1f17cd1dde0370a719dc8385345969a9ee0c642d19b3650bc1076be593c59eb97f38ee0b2be1c"
}
]
}
Used by the Server to figure out their identity on the DAO by themselves, so they will generate a random challenge text, and then query each server for it. If the text matches, then they have found themselves.
{- "challengeText": "186a1c51-2c4c-4dae-913c-b87670600c56"
}
Download the binary file associated with the specified hashId
hashId required | string Example: QmVzr55TyXcrbQUWBN6rf7K7zkZsTFnBK19LvgYM9CxFbu Hash of the file to be retrieved, you can search for the hashId in the content section of a deployment. If the entity version greater than or equal to v4, then the hashing algorithm will be IPFS, if the entity version is v3 or below then it will be SHA-256 |
"Not Found"
Get the list of entity ids whose deployments are associated with the specified content hash. This endpoint is currently intended for troubleshooting as there is no specific use case for it.
hashId required | string Example: QmWFLwHGfvhB9a1epaRpS38HEwbHvhpaYzHEsNhDRgon7P Hash of the content file |
[- "QmY4GFuf2jR3ocfuXuFLgvUrGEpjo84Byg44Pv2wduuinW",
- "QmZbAEFPF7LSq9xVZTCAZoHPNV1QX7YiSbKL2g881MJLj8"
]
Given a list of hashes, validates if the corresponding files exist in the storage of the server
cid required | Array of strings Example: cid=QmWFLwHGfvhB9a1epaRpS38HEwbHvhpaYzHEsNhDRgon7P Hash of the content file |
[- {
- "cid": "QmWFLwHGfvhB9a1epaRpS38HEwbHvhpaYzHEsNhDRgon7P",
- "available": true
}, - {
- "cid": "MfWFLwHGfvhB9a1epaRpJ38HEwbHvhpaYzHEsNhDRgon8H",
- "available": false
}
]
Deploys an entity in the content server. This request must contain a file with the entity itself and also the files associated with it, such as 3D models, as well as information about the entity and requester. This request will succeed only if the hash of the entity file matches the entityId and also if the signature is valid has the correct permission to modify the pointers associated with it.
files | Array of strings <binary> |
entityId | string |
authChain | string |
ethAddress | string |
signature | string |
{- "creationTimestamp": 1628607669304
}
Returns the list of active entities which have at least one pointer that matches the prefix given
collectionUrn required | string Example: urn:decentraland:matic:collections-v2:0x8e674db9b2fc0759b2d94cace9c4bae334a8f0c3 urn prefix to filter the entities by |
pageSize | number Page size (max 1000) |
pageNumber | number Page number (default: 1) |
[- {
- "pointer": "urn:decentraland:polygon:collections-thirdparty:cryptohats:0xc04528c14c8ffd84c7c1fb6719b4a89853035cdd",
- "entityId": "QmeA8RpAtqU6gCebNaWRXtM9nQs3ugzzbeQm3L7uKrP4Jp"
}, - {
- "pointer": "urn:decentraland:polygon:collections-thirdparty:cryptohats:0xabcdefghijk",
- "entityId": "QmdajbrYt4pdkkW2R2PcZ8iLz55uzgGceo4hJMCirHEpPK"
}, - {
- "pointer": "urn:decentraland:polygon:collections-thirdparty:cryptohats:0xlmnopqrst",
- "entityId": "QmXokfUunNwLY9hw7U9x2Q3NJ7VFXt65rVDRGzFzPzEXvX"
}
]
Returns the list of entities of the specified type with the specified id or pointers. Only one of these filters must be specified in the body.
pointers | Array of strings Entities must be filtered by pointer XOR entityId (ids). Use this parameter if you want to retrieve an entity of the specified type with this pointer. |
ids | Array of strings Entities must be filtered by pointer (pointers) XOR entityId. Use this parameter if you want to retrieve an entity of the specified type with this entityId. |
{- "pointers": [
- "urn:decentraland:mumbai:collections-v2:0xf6426e0c70c17509038aba78137e721d187499d6:0"
], - "ids": [
- "QmeA8RpAtqU6gCebNaWRXtM9nQs3ugzzbeQm3L7uKrP4Jp"
]
}
[- {
- "version": "v3",
- "id": "QmQ9UorFsVTpaVpCwJZAzFyCmaGf7Ksi6aQHYTJVKyzVMh",
- "type": "scene",
- "timestamp": 1581034082829,
- "pointers": [
- "100,0"
], - "content": [
- {
- "file": "Fork_0.glb",
- "hash": "QmdnkhnMwaFWs5ysAQ4Y8r9CSYMoMvpiAcaLr1PJoQFbZU"
}, - {
- "file": "game.js",
- "hash": "QmXdgLxwgBRr3igNoJAu7Qi6KtMR6WR5kUSRtZVERnQH9A"
}, - {
- "file": "OpenRoad_0.glb",
- "hash": "QmRF2LA6AdTP8ZTsKpf6WGW8iZesfmKqMzYrg7Yx1nbLU9"
}, - {
- "file": "scene.json",
- "hash": "QmPgaz3kzicJKAtagqGHN5LYFvECimz4te5CVU9y4EbPgo"
}
], - "metadata": {
- "display": {
- "title": "Road at 100,0 (open road OpenRoad_0)",
- "favicon": "favicon_asset"
}, - "contact": {
- "name": "",
- "email": ""
}, - "owner": "",
- "scene": {
- "parcels": [
- "100,0"
], - "base": "100,0"
}, - "policy": {
- "contentRating": "E",
- "fly": true,
- "voiceEnabled": true,
- "blacklist": [ ],
- "teleportPosition": ""
}, - "main": "game.js",
- "tags": [ ]
}
}
]
[- {
- "entityType": "profile",
- "entityId": "Qmej2ASCw4ubcjd2KHyMkcQz8HbMUfLqGbtheWoxykBt38",
- "reason": "No entity or audit",
- "errorDescription": "During sync, we couldn't fetch the entity or the audit info"
}
]
List of all deltas from the deployments inside the filters that affect the given pointers. It returns a list of changes with the before
field (the entity that was overridden with this deployment) and after
(the entity that overrides the current one if present).
from | integer Example: from=1606829553969 Acts as a filter in the collection of deployments, this value is the minimum value of local timestamp that any deployment in the collection will have. |
to | integer Example: to=1606829553969 Acts as a filter in the collection of deployments, this value is the maximum value of local timestamp that any deployment in the collection will have. |
lastId | string Example: lastId=QmNknKv8MuKbfZ73z4QdUEsNbTd1ZAN1fSuwTFGiNGeCt5 It is the last entity id that was visited, so it will be skipped when showing current page. |
limit | integer Example: limit=100 The deployments are a paginated collection, this parameter corresponds to the limit for each page. The default value is 500. |
entityType | string Enum: "scene" "profile" "wearable" Example: entityType=profile The type of entities that will be shown in the collection, many values can be sent. Valid values are: profile, scene and wearable. |
sortingField | string Enum: "local_timestamp" "entity_timestamp" Example: sortingField=local_timestamp This value is used as the field to order all the deployments in the collection. If no parameter is sent, then the default field to order with will be local_timestamp. |
sortingOrder | string Enum: "ASC" "DESC" Example: sortingOrder=ASC This value is used as the order for all the deployments in the collection. If no parameter is sent, then the default field to order with will be DESC. |
{- "deltas": [
- {
- "entityType": "scene",
- "entityId": "QmWBMqDmFebLr4pJWxBpXdtToqTNxqeefzkerQ1C35cGeb",
- "localTimestamp": 1628614712569,
- "pointers": [
- "0,0",
- "0,1"
], - "authChain": [
- {
- "type": "SIGNER",
- "payload": "0x5dB41e2b949a60D60Ae203CdAdabF1c0f0759985",
- "signature": ""
}
]
}, - {
- "entityType": "scene",
- "entityId": "QmT3EYh8cGtB8oHMEgCc5GuRMPofkHNwb936ZhRocwgrAL",
- "localTimestamp": 1628612595680,
- "pointers": [
- "1,1",
- "1,2"
], - "authChain": [
- {
- "type": "SIGNER",
- "payload": "0x5dB41e2b949a60D60Ae203CdAdabF1c0f0759985",
- "signature": ""
}
]
}, - {
- "entityType": "scene",
- "entityId": "QmQSBke1rXUtPYHLJvJdrfX85n68YMSRgb4KeGhNL8w8KL",
- "localTimestamp": 1628612397349,
- "pointers": [
- "3,3"
], - "authChain": [
- {
- "type": "SIGNER",
- "payload": "0x5dB41e2b949a60D60Ae203CdAdabF1c0f0759985",
- "signature": ""
}
]
}
]
}
Lists all active deployments stored in the database in multiple snapshots for different time ranges. If the information needed is front in time of the most recent snapshot, you may use the /content/pointer-changes
endpoint with the necessary from
filter.
[- {
- "hash": "bafkreig6sfhegnp4okzecgx3v6gj6pohh5qzw6zjtrdqtggx64743rkmz4",
- "timeRange": {
- "initTimestamp": 1577836800000,
- "endTimestamp": 1606867200000
}, - "replacedSnapshotHashes": [
- "bafkreig6sfhegnp4okzecgx3v6gj6pohh5qzw6zjtrdqtggx64743rkmz4"
], - "numberOfEntities": 0,
- "generationTimestamp": 1671126919124
}, - {
- "hash": "bafkreig6sfhegnp4okzecgx3v6gj6pohh5qzw6zjtrdqtggx64743rkmz4",
- "timeRange": {
- "initTimestamp": 1606867200000,
- "endTimestamp": 1635897600000
}, - "replacedSnapshotHashes": [ ],
- "numberOfEntities": 0,
- "generationTimestamp": 1671126611185
}
]
{- "name": "",
- "version": "v3",
- "currentTime": 1628618042062,
- "lastImmutableTime": 0,
- "historySize": 968083,
- "synchronizationStatus": {
- "otherServers": [
- {
- "connectionState": "Connected",
- "lastDeploymentTimestamp": 1628617995540
}, - {
- "connectionState": "Connected",
- "lastDeploymentTimestamp": 1628617952275
}, - {
- "connectionState": "Connected",
- "lastDeploymentTimestamp": 1628617951020
}, - {
- "connectionState": "Connected",
- "lastDeploymentTimestamp": 1628617964042
}, - {
- "connectionState": "Connected",
- "lastDeploymentTimestamp": 1628617996216
}, - {
- "connectionState": "Connected",
- "lastDeploymentTimestamp": 1628617993064
}, - {
- "connectionState": "Connected",
- "lastDeploymentTimestamp": 1628617962087
}, - {
- "connectionState": "Connected",
- "lastDeploymentTimestamp": 1628617994238
}, - {
- "connectionState": "Connected",
- "lastDeploymentTimestamp": 1628617976603
}, - {
- "connectionState": "Connected",
- "lastDeploymentTimestamp": 1628617977558
}
], - "lastSyncWithDAO": 1628616434517,
- "synchronizationState": "Synced",
- "lastSyncWithOtherServers": 1628617998093
}, - "commitHash": "7890de4598f88a382863ea5f399b9cc17b80b42e",
- "catalystVersion": "1.3.3",
- "ethNetwork": "mainnet"
}
This service is in charge of clustering users according to their position and assigning a connection string that will allow the user to connect to an specifig transport.
Retrieves the list of communication islands in the server with details about the peers present in each island.
{- "ok": true,
- "islands": [
- {
- "id": "I5l",
- "peers": [
- {
- "id": "06f",
- "address": "0x5e5d9d1dfd87e9b8b069b8e5d708db92be5ade99",
- "parcel": [
- 0,
- -1
], - "position": [
- 12.69494342803955,
- 104.27444005012512,
- -5.611218452453613
], - "lastPing": 1629827670429,
- "preferedIslandId": "Ilvs"
}, - {
- "id": "06g",
- "address": "0x5d543082dbc88ef48d6e4e10da466b4089011a97",
- "parcel": [
- 0,
- -1
], - "position": [
- 14.994168281555176,
- 104.27944493293762,
- -5.502110481262207
], - "lastPing": 1629827671509,
- "preferedIslandId": "Ilvs"
}
], - "maxPeers": 100,
- "center": [
- 13.844555854797363,
- 0,
- -5.55666446685791
], - "radius": 1.1509061078560505
}
]
}
Retrieve information about the specified islandId
islandId required | string Example: I5n ID of the Island. You can search for the list of islands using the /comms/islands endpoint. |
{- "id": "I5n",
- "peers": [
- {
- "id": "06h",
- "address": "0x5e5d9d1dfd87e9b8b069b8e5d708db92be5ade99",
- "parcel": [
- 0,
- -1
], - "position": [
- 12.105399131774902,
- 104.28455662727356,
- -4.339361190795898
], - "lastPing": 1629828187587,
- "preferedIslandId": "I5l"
}
], - "maxPeers": 100,
- "center": [
- 12.105399131774902,
- 0,
- -4.339361190795898
], - "radius": 0
}
Retrieves the list peers in the server with details about their positions and islands.
{- "ok": true,
- "peers": [
- {
- "id": "06h",
- "address": "0x5e5d9d1dfd87e9b8b069b8e5d708db92be5ade99",
- "parcel": [
- 0,
- -1
], - "position": [
- 12.105399131774902,
- 104.28455662727356,
- -4.339361190795898
], - "lastPing": 1629828217833
}, - {
- "id": "06i",
- "address": "0xe9bfcbe4ff64d03af9dfcf3fbd54dba58b4a4730",
- "parcel": [
- 1,
- -1
], - "position": [
- 19.152772903442383,
- 104.28796696662903,
- -4.191743850708008
], - "lastPing": 1629828216857
}
]
}
This service provides a set of utilities required by the Catalyst Server Clients\Consumers in order to retrieve or validate data.
{- "version": "1.0",
- "currentTime": 1628875330839,
- "commitHash": "7890de4598f88a382863ea5f399b9cc17b80b42e",
- "catalystVersion": "1.3.3"
}
{- "collections": [
- {
- "id": "urn:decentraland:off-chain:base-avatars",
- "name": "Base Wearables"
}, - {
- "id": "urn:decentraland:ethereum:collections-v1:3lau_basics",
- "name": "dcl://3lau_basics"
}, - {
- "id": "urn:decentraland:ethereum:collections-v1:atari_launch",
- "name": "dcl://atari_launch"
}, - {
- "id": "urn:decentraland:ethereum:collections-v1:binance_us_collection",
- "name": "dcl://binance_us_collection"
}, - {
- "id": "urn:decentraland:ethereum:collections-v1:china_flying",
- "name": "dcl://china_flying"
}, - {
- "id": "urn:decentraland:ethereum:collections-v1:community_contest",
- "name": "dcl://community_contest"
}, - {
- "id": "urn:decentraland:ethereum:collections-v1:cybermike_cybersoldier_set",
- "name": "dcl://cybermike_cybersoldier_set"
}, - {
- "id": "urn:decentraland:ethereum:collections-v1:cz_mercenary_mtz",
- "name": "dcl://cz_mercenary_mtz"
}
]
}
Retrieve ERC721/NFT Entity details
chainId required | string Example: 137 Ethereum chain ID: ETHEREUM_MAINNET = 1 ETHEREUM_RINKEBY = 4 ETHEREUM_GOERLI = 5 ETHEREUM_KOVAN = 42 MATIC_MAINNET = 137 MATIC_MUMBAI = 80001 |
contract required | string Example: 0x123db7844eaf7da11d88cf1754945bbd020742ef Hash of the Contract. This will be used to build the URN that identifies the NFT. |
option required | string Example: 3 Token Identifier |
emission required | string Example: legendary Optional rarity description that will be return as part of the NFT description common: 100000 uncommon: 10000 rare: 5000 epic: 1000 legendary: 100 mythic: 10 unique: 1 |
{- "id": "urn:decentraland:matic:collections-v2:0x123db7844eaf7da11d88cf1754945bbd020742ef:3",
- "name": "4Skin Libre Upper Body",
- "description": "DCL Wearable {emission}/100",
- "language": "en-US",
- "attributes": [
- {
- "trait_type": "Rarity",
- "value": "legendary"
}, - {
- "trait_type": "Category",
- "value": "upper_body"
}, - {
- "trait_type": "Body Shape",
- "value": "BaseMale"
}, - {
- "trait_type": "Body Shape",
- "value": "BaseFemale"
}
]
}
Get a list of wearables owned by the given address
address required | string Example: 0xa87d168717538e86d71ac48baccaeb84162de602 Ethereum address from which you want to get the list of wearables |
includeEntities | boolean Example: includeEntities=true If present, response will be extended with the entity data. |
includeThirdParty | boolean Example: includeThirdParty=true If present, response will include the third-party wearables owned by the address. They will appear before other wearables if the response is paginated. |
pageNum | string Example: pageNum=1 The number of the requested page. |
pageSize | string Example: pageSize=10 The size of the requested page. |
orderBy | string Example: orderBy=rarity Determines the field to be sort by. By default it will be by |
{- "elements": [
- {
- "urn": "urn:decentraland:matic:collections-v2:0x6d83706836e820e79252edd48da419d2d03592d4:0",
- "individualData": [
- {
- "id": "0x6d83706836e820e79252edd48da419d2d03592d4-6407",
- "tokenId": "6407",
- "transferredAt": "1662738697",
- "price": "10000000000000000000000000"
}, - {
- "id": "0x6d83706836e820e79252edd48da419d2d03592d4-5452",
- "tokenId": "5452",
- "transferredAt": "1662738325",
- "price": "10000000000000000000000000"
}, - {
- "id": "0x6d83706836e820e79252edd48da419d2d03592d4-4497",
- "tokenId": "4497",
- "transferredAt": "1662737945",
- "price": "10000000000000000000000000"
}, - {
- "id": "0x6d83706836e820e79252edd48da419d2d03592d4-3542",
- "tokenId": "3542",
- "transferredAt": "1662737595",
- "price": "10000000000000000000000000"
}, - {
- "id": "0x6d83706836e820e79252edd48da419d2d03592d4-2587",
- "tokenId": "2587",
- "transferredAt": "1662737239",
- "price": "10000000000000000000000000"
}, - {
- "id": "0x6d83706836e820e79252edd48da419d2d03592d4-1632",
- "tokenId": "1632",
- "transferredAt": "1662736881",
- "price": "10000000000000000000000000"
}, - {
- "id": "0x6d83706836e820e79252edd48da419d2d03592d4-677",
- "tokenId": "677",
- "transferredAt": "1662736515",
- "price": "10000000000000000000000000"
}
], - "amount": 7
}, - {
- "urn": "urn:decentraland:matic:collections-v2:0x475abb52a7e925209b1334e52bfb62e1da9ebf62:1",
- "individualData": [
- {
- "id": "0x475abb52a7e925209b1334e52bfb62e1da9ebf62-105312291668557186697918027683670432318895095400549111254310977681",
- "tokenId": "105312291668557186697918027683670432318895095400549111254310977681",
- "transferredAt": "1662040489",
- "price": "1000000000000000000"
}
], - "amount": 1
}, - {
- "urn": "urn:decentraland:matic:collections-v2:0x710dce41dceace2f0e06c0cffee25fe65ad6f64c:0",
- "individualData": [
- {
- "id": "0x710dce41dceace2f0e06c0cffee25fe65ad6f64c-339",
- "tokenId": "339",
- "transferredAt": "1662040423",
- "price": "500000000000000000"
}
], - "amount": 1
}, - {
- "urn": "urn:decentraland:matic:collections-v2:0x293d1ae40b28c39d7b013d4a1fe3c5a8c016bf19:1",
- "individualData": [
- {
- "id": "0x293d1ae40b28c39d7b013d4a1fe3c5a8c016bf19-105312291668557186697918027683670432318895095400549111254310977722",
- "tokenId": "105312291668557186697918027683670432318895095400549111254310977722",
- "transferredAt": "1662040329",
- "price": "100000000000000000"
}
], - "amount": 1
}
], - "totalAmount": 23,
- "pageNum": "2",
- "pageSize": "4"
}
Get a list of emotes owned by the given address
address required | string Example: 0xf4f7512c68f358856514cd4e449fc6c5ac04bb15 Ethereum address from which you want to get the list of emotes |
collectionId | string Example: collectionId=urn:decentraland:matic:collections-thirdparty:ntr1-meta:ntr1-meta-1ef79e7b Third Party collection Id to filter emotes, if this param is not sent then the 3rd parties emotes are not shown. If it is sent, only the 3rd parties emotes are shown. |
includeEntities | boolean Example: includeEntities=true If present, response will be extended with the entity data. |
pageNum | string Example: pageNum=1 The number of the requested page. |
pageSize | string Example: pageSize=10 The size of the requested page |
{- "elements": [
- {
- "urn": "urn:decentraland:matic:collections-v2:0xa5b27856547a7d7c238b0e6c2de7a73556b915ba:0",
- "amount": 1
}, - {
- "urn": "urn:decentraland:matic:collections-v2:0x7f26599ad1e9ad0ce6d47c5043d70d3bcd3d259a:0",
- "amount": 1
}, - {
- "urn": "urn:decentraland:matic:collections-v2:0xeed6bdbdec460e258688e15816e8a9f760c3651a:0",
- "amount": 1
}, - {
- "urn": "urn:decentraland:matic:collections-v2:0xa6c722476bdd17bf2adb65e96388345d83259f3b:0",
- "amount": 1
}
], - "totalAmount": 973,
- "pageNum": "3",
- "pageSize": "4"
}
Get a list of names owned by the given address
address required | string Example: 0xddf1eec586d8f8f0eb8c5a3bf51fb99379a55684 Ethereum address from which you want to get the list of names |
pageNum | string Example: pageNum=1 The number of the requested page. It needs |
pageSize | string Example: pageSize=10 The size of the requested page. It needs |
{- "names": [
- {
- "name": "Gojo",
- "contractAddress": "0x2a187453064356c898cae034eaed119e1663acb8",
- "tokenId": "115307283102801270656452808194409685445355100338904720773052040552422075323100",
- "price": "25000000000000000000000"
}, - {
- "name": "Ugh",
- "contractAddress": "0x2a187453064356c898cae034eaed119e1663acb8",
- "tokenId": "109851145768931514038649521124955142005672037705020471158837454870244371101640",
- "price": "20000000000000000000000"
}, - {
- "name": "Pain",
- "contractAddress": "0x2a187453064356c898cae034eaed119e1663acb8",
- "tokenId": "37860252415586502442474289153833538639704044038329376660459632788847982021683",
- "price": "35000000000000000000000"
}, - {
- "name": "Hawks",
- "contractAddress": "0x2a187453064356c898cae034eaed119e1663acb8",
- "tokenId": "61045570331711729163571591712822027676157304898474053802260900686360273563216",
- "price": "30000000000000000000000"
}
], - "totalAmount": 812,
- "pageNum": "2",
- "pageSize": "4"
}
Get a list of lands owned by the given address
address required | string Example: 0xddf1eec586d8f8f0eb8c5a3bf51fb99379a55684 Ethereum address from which you want to get the list of lands |
pageNum | string Example: pageNum=1 The number of the requested page. It needs |
pageSize | string Example: pageSize=10 The size of the requested page. It needs |
{- "lands": [
- {
- "name": "No rules red light",
- "contractAddress": "0x959e104e1a4db6317fa58f8295f586e1a978c297",
- "tokenId": "2178",
- "category": "estate",
- "description": "No rules red light",
- "price": "13850000000000000000000",
}, - {
- "name": null,
- "contractAddress": "0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d",
- "tokenId": "115792089237316195423570985008687907830471066081937686987411485309984659472358",
- "category": "parcel",
- "x": "-68",
- "y": "-26",
- "price": null,
}
], - "totalAmount": 692,
- "pageNum": "1",
- "pageSize": "2"
}
Returns the list of third party wearables for the provided address
address required | string Example: 0xf4f7512c68f358856514cd4e449fc6c5ac04bb15 Ethereum address from which you want to get the list of wearables |
pageNum | string Example: pageNum=1 The number of the requested page. |
pageSize | string Example: pageSize=10 The size of the requested page. |
{- "elements": [
- {
- "urn": "string",
- "amount": 0,
- "name": "string",
- "category": "string",
- "entity": {
- "version": "string",
- "id": "string",
- "type": "string",
- "timestamp": 0,
- "pointers": [
- "string"
], - "content": [
- {
- "file": "string",
- "hash": "string"
}
], - "metadata": { }
}, - "individualData": [
- {
- "id": "string"
}
]
}
], - "totalAmount": 0,
- "pageNum": 0,
- "pageSize": 0
}
Returns the list of third party wearables for the given collection
address required | string Example: 0xf4f7512c68f358856514cd4e449fc6c5ac04bb15 Ethereum address from which you want to get the list of wearables |
collectionId required | string Example: urn:decentraland:matic:collections-thirdparty:ntr1-meta:ntr1-meta-1ef79e7b Third Party collection Id to filter wearables. |
pageNum | string Example: pageNum=1 The number of the requested page. |
pageSize | string Example: pageSize=10 The size of the requested page. |
{- "elements": [
- {
- "urn": "string",
- "amount": 0,
- "name": "string",
- "category": "string",
- "entity": {
- "version": "string",
- "id": "string",
- "type": "string",
- "timestamp": 0,
- "pointers": [
- "string"
], - "content": [
- {
- "file": "string",
- "hash": "string"
}
], - "metadata": { }
}, - "individualData": [
- {
- "id": "string"
}
]
}
], - "totalAmount": 0,
- "pageNum": 0,
- "pageSize": 0
}
Search for wearables based on the applied filters and retrieve detailed information
collectionId | Array of strings Example: collectionId=urn:decentraland:ethereum:collections-v1:mf_sammichgamer Lis of URNs that identify the collection. Maximum amount of ids allowed is 500. |
wearableId | Array of strings Example: wearableId=urn:decentraland:ethereum:collections-v1:binance_us_collection:binance_us_hat List of wearables URNs to search. Maximum amount of ids allowed is 500. |
textSearch | string Example: textSearch=Hoodie Search text |
limit | integer Example: limit=2 Limit the quantity of results that will be returned by the request. You can only request up to 500 results. |
lastId | string Example: lastId=urn:decentraland:ethereum:collections-v1:binance_us_collection:binance_us_hat The result will always be ordered by the local timestamp fields but in case of timestamp collisions, you can use the lastId field to filter the result |
{- "wearables": [
- {
- "id": "urn:decentraland:ethereum:collections-v1:binance_us_collection:binance_us_hat",
- "description": "Binance US Hat",
- "collectionAddress": "0xa8ee490e4c4da48cc1653502c1a77479d4d818de",
- "rarity": "uncommon",
- "data": {
- "replaces": [
- "helmet"
], - "hides": [
- "hair"
], - "tags": [
- "binance",
- "us",
- "hat",
- "decentraland",
- "exclusive"
], - "category": "hat",
- "representations": [
- {
- "bodyShapes": [
- "urn:decentraland:off-chain:base-avatars:BaseMale"
], - "mainFile": "M_BinanceUS_Hat.glb",
- "overrideReplaces": [ ],
- "overrideHides": [ ],
- "contents": [
- {
- "key": "AvatarWearables_TX_2.png",
}, - {
- "key": "F_BinanceUS_Hat.glb",
}, - {
- "key": "M_BinanceUS_Hat.glb",
}, - {
- "key": "binance_hoddie.png",
}
]
}, - {
- "bodyShapes": [
- "urn:decentraland:off-chain:base-avatars:BaseFemale"
], - "mainFile": "F_BinanceUS_Hat.glb",
- "overrideReplaces": [ ],
- "overrideHides": [ ],
- "contents": [
- {
- "key": "AvatarWearables_TX_2.png",
}, - {
- "key": "F_BinanceUS_Hat.glb",
}, - {
- "key": "M_BinanceUS_Hat.glb",
}, - {
- "key": "binance_hoddie.png",
}
]
}
]
}, - "i18n": [
- {
- "code": "en",
- "text": "Binance US Hat"
}, - {
- "code": "es",
- "text": "Gorra de Binance US"
}
], - "createdAt": 1617888339603,
- "updatedAt": 1617888339603
}, - {
- "id": "urn:decentraland:ethereum:collections-v1:community_contest:cw_bell_attendant_hat",
- "description": "",
- "collectionAddress": "0x32b7495895264ac9d0b12d32afd435453458b1c6",
- "rarity": "legendary",
- "data": {
- "replaces": [
- "helmet",
- "tiara",
- "top_head"
], - "hides": [
- "hair"
], - "tags": [
- "hat",
- "exclusive",
- "launch",
- "20.02.20",
- "decentraland",
- "community",
- "wearables",
- "exclusive"
], - "category": "hat",
- "representations": [
- {
- "bodyShapes": [
- "urn:decentraland:off-chain:base-avatars:BaseMale"
], - "mainFile": "M_Hat_BellAttendant.glb",
- "overrideReplaces": [ ],
- "overrideHides": [ ],
- "contents": [
- {
- "key": "AvatarWearables_Emissive_TX.png",
}, - {
- "key": "AvatarWearables_TX.png",
}, - {
- "key": "AvatarWearables_TX_2.png",
}, - {
- "key": "F_Hat_BellAttendant.glb",
}, - {
- "key": "M_Hat_BellAttendant.glb",
}
]
}, - {
- "bodyShapes": [
- "urn:decentraland:off-chain:base-avatars:BaseFemale"
], - "mainFile": "F_Hat_BellAttendant.glb",
- "overrideReplaces": [ ],
- "overrideHides": [ ],
- "contents": [
- {
- "key": "AvatarWearables_Emissive_TX.png",
}, - {
- "key": "AvatarWearables_TX.png",
}, - {
- "key": "AvatarWearables_TX_2.png",
}, - {
- "key": "F_Hat_BellAttendant.glb",
}, - {
- "key": "M_Hat_BellAttendant.glb",
}
]
}
]
}, - "i18n": [
- {
- "code": "en",
- "text": "Bell Attendant Hat"
}, - {
- "code": "es",
- "text": "Sombrero de Botones"
}
], - "createdAt": 1618845343458,
- "updatedAt": 1618845343458
}
], - "filters": {
- "textSearch": "hat"
}, - "pagination": {
- "limit": 2,
- "next": "?textSearch=hat&lastId=urn%3Adecentraland%3Aethereum%3Acollections-v1%3Acommunity_contest%3Acw_bell_attendant_hat&limit=2"
}
}
[- {
- "owner": "0x75e1d32289679dfcB2F01fBc0e043B3d7F9Cd443",
- "id": "0xa88ccc81441dd364f33f0db770508d63e6ce933e2a2f24039974c887e535e2cd"
}, - {
- "owner": "0xFE95E04A628087FCdD5f278E61F148B47471Af4A",
- "id": "0xfb539741ce2cc5e843a1690c57d9a67a3a193f52df217b589b131e90b1130db0"
}, - {
- "owner": "0x6327Ef6bAE918584B86AcfD58bDEB6EF9211e371",
- "id": "0xdc79f86d81f8be2e8ecf51f5be7df04edca3c815846f890c8b1bcade6bcf2a6c"
}, - {
- "owner": "0xF78Dfd2a940c1c204d9eb5D1fF7988b7AEC3F01a",
- "id": "0x77fa03b44621846a18358ca6e766a5fa6959a1b25ae2229f16be328dac8931df"
}, - {
- "owner": "0xa7C825BB8c2C4d18288af8efe38c8Bf75A1AAB51",
- "id": "0x397114b887b57bb13bd50e35a31cf7b91aa62117a040cc029e4935749f595d26"
}, - {
- "owner": "0x3f95F857F89357fb1592C74dEd1f4556c6272edB",
- "id": "0x242d013bc99da6593970d01f044f46194eee33b8947384efbafc10ae1a7917fc"
}, - {
- "owner": "0x3d7C732f54f7D60d14eabca8A7Da3097cEc3AF1e",
- "id": "0xd5d98a65db8d09437f138b06d112a630c762cca7082c96fa0dcd4102abfc0aef"
}, - {
- "owner": "0xEfc549434A03756F6e37A43757a2927605D8839B",
- "id": "0x4e55ad26203dfef9b2235dfea39d531b2b64814e606c0294768c0d1469124479"
}, - {
- "owner": "0xe5d0c3fEA1e5F01CA4098e9580B93B3b5d0Ea768",
- "id": "0x63edaad1a9bdfa5a492b12d4920655c5812c8572d1cdeca2f3f5e8cc49efc593"
}, - {
- "owner": "0x4eAC6325e1DBF1Ac90434d39766e164Dca71139E",
- "id": "0xca6c9aff525af8ae6fb73c59c402619030323150b0dfcb39574c9eed608e7309"
}, - {
- "owner": "0xF1598bC1aD6474d6e884684706ABdd1e3468D199",
- "id": "0x201a63dfe16e0e870f83367ac0ce1dd90b6e851f78baae140c81741e3f5fc9ec"
}
]
[- "-29,55",
- "-108,-30",
- "144,-34",
- "-10,58",
- "-79,-54",
- "111,-23",
- "25,74",
- "26,9",
- "-143,-125",
- "-25,25",
- "-119,133",
- "-48,-110",
- "23,-123",
- "38,103",
- "82,-149",
- "52,83",
- "10,52",
- "19,-120",
- "-67,-114",
- "22,-118",
- "46,-52",
- "-96,110",
- "-108,129",
- "-119,125",
- "96,-30",
- "-1,-135",
- "-23,69",
- "-116,-49",
- "95,-7"
]
Retrieve list of forbidden user names. The prohibition of these names is decided through the DAO and need to be voted, the list lives in a Smart Contract and the Catalyst just consumes this information to present it to the client. In order to add a new name a new proposal needs to be created, approved and a transaction should be sent by a DAO committee member.
[- "OffensiveName1",
- "OffensiveName2",
- "OffensiveName3"
]
Given a signed message and it's AuthChain, validate it's authenticity. A message can be signed, for example, to prove ownership of the Entity pointers that they want to modify.
The body has 3 properties. The timestamp, the signedMessage that you wish to validate and the AuthChain.
The structure of the AuthChain is described as follows:
- The first element of the chain is the original signer, and the one who will be used to validate against the blockchain
- The last element of the chain contains the EHash and a signature
- In between are ephemeral keys that can be used for signing
{- "timestamp": "1629753096906",
- "signedMessage": "QmfSjDEi2a43aURjbNR3KTXmBB3wWfkJb6Vdmu3vmaNW5H",
- "authChain": [
- {
- "type": "SIGNER",
- "payload": "0x716954738e57686a08902d9dd586e813490fee23"
}, - {
- "type": "ECDSA_EPHEMERAL",
- "payload": "Decentraland Login\nEphemeral address: 0x90a43461d3e970785B945FFe8f7628F2BC962D6a\nExpiration: 2021-07-10T20:55:42.215Z",
- "signature": "0xe64e46fdd7d8789c0debec54422ae77e31b77e5a28287e072998e1114e252c57328c17756400d321e9e77032347c9d05e63fb59a3b6c3ab754565f9db86b8c481b"
}, - {
- "type": "ECDSA_SIGNED_ENTITY",
- "payload": "QmNMZBy7khBxdigikA8mcJMyv6yeBXfMv3iAcUiBr6n72C",
- "signature": "0xbed22719dcdc19580353108027c41c65863404879592c65014d806efa961c629777adc76986193eaee4e48f278ec59feb1c289827254230af85b2955157ec8061b"
}
]
}
{- "valid": true,
- "ownerAddress": "0xa8ee490e4c4da48cc1653502c1a77479d4d818de"
}
Returns the list of scenes where there are more users with coordinates and the list of parcels that compose the scene.
[- {
- "id": "QmT2pZZ5XX5LZ8KTy9ExRnBEcMZzcChfnAXyBafyRp4sdY",
- "name": "WonderMine Crafting Game",
- "baseCoords": [
- -29,
- 55
], - "usersTotalCount": 107,
- "parcels": [
- [
- -29,
- 55
], - [
- -29,
- 56
]
], - "creator": "WonderZone",
- "description": "Mine meteors, get loot, and craft wearables!",
- "realms": [
- {
- "serverName": "loki",
- "layer": "amber",
- "usersCount": 45,
- "maxUsers": 100,
- "userParcels": [
- [
- -27,
- 57
], - [
- -27,
- 60
]
]
}
]
}
]
[- {
- "serverName": "loki",
- "layer": "blue",
- "usersCount": 66,
- "maxUsers": 100,
- "userParcels": [
- [
- -27,
- 58
]
]
}, - {
- "serverName": "unicorn",
- "layer": "blue",
- "usersCount": 62,
- "maxUsers": 100,
- "userParcels": [
- [
- -62,
- -13
], - [
- 87,
- -83
], - [
- 1,
- 0
], - [
- 133,
- 36
]
]
}, - {
- "serverName": "fenrir",
- "layer": "amber",
- "usersCount": 61,
- "maxUsers": 100,
- "userParcels": [
- [
- -68,
- 60
], - [
- 11,
- 139
]
]
}
]
Returns all the Avatars details associated with the Ethereum addresses in the body
The body only has the ids
property representing a list of Ethereum addresses
ids | Array of strings |
{- "ids": [
- "0x5e5d9d1dfd87e9b8b069b8e5d708db92be5ade99",
- "0x22480812a9a0669783c06d359182a583bd1d9fc2"
]
}
[- {
- "avatars": [
- {
- "userId": "0x5e5d9d1dfd87e9b8b069b8e5d708db92be5ade99",
- "email": "",
- "name": "Paralax24#de99",
- "hasClaimedName": false,
- "description": "",
- "ethAddress": "0x5e5D9D1dfD87E9B8B069B8e5d708dB92bE5ADe99",
- "version": 2,
- "avatar": {
- "bodyShape": "urn:decentraland:off-chain:base-avatars:BaseMale",
- "snapshots": {
}, - "eyes": {
- "color": {
- "r": 0.22265625,
- "g": 0.484375,
- "b": 0.69140625
}
}, - "hair": {
- "color": {
- "r": 0.98046875,
- "g": 0.82421875,
- "b": 0.5078125
}
}, - "skin": {
- "color": {
- "r": 0.94921875,
- "g": 0.76171875,
- "b": 0.6484375
}
}, - "wearables": [
- "urn:decentraland:off-chain:base-avatars:eyebrows_00",
- "urn:decentraland:off-chain:base-avatars:eyes_06",
- "urn:decentraland:off-chain:base-avatars:mouth_03",
- "urn:decentraland:off-chain:base-avatars:casual_hair_03",
- "urn:decentraland:off-chain:base-avatars:oxford_pants",
- "urn:decentraland:off-chain:base-avatars:black_jacket",
- "urn:decentraland:off-chain:base-avatars:m_feet_soccershoes",
- "urn:decentraland:off-chain:base-avatars:italian_director",
- "urn:decentraland:off-chain:base-avatars:lincoln_beard"
]
}, - "tutorialStep": 256,
- "interests": [ ],
- "unclaimedName": "Paralax24"
}
]
}, - {
- "avatars": [
- {
- "userId": "0x22480812a9a0669783c06d359182a583bd1d9fc2",
- "email": "",
- "name": "cestfini#9fc2",
- "hasClaimedName": false,
- "description": "",
- "ethAddress": "0x22480812a9a0669783c06d359182a583bd1d9fc2",
- "version": 2,
- "avatar": {
- "bodyShape": "urn:decentraland:off-chain:base-avatars:BaseMale",
- "snapshots": {
}, - "eyes": {
- "color": {
- "r": 0.37109375,
- "g": 0.22265625,
- "b": 0.1953125
}
}, - "hair": {
- "color": {
- "r": 0.234375,
- "g": 0.12890625,
- "b": 0.04296875
}
}, - "skin": {
- "color": {
- "r": 0.94921875,
- "g": 0.76171875,
- "b": 0.6484375
}
}, - "wearables": [
- "urn:decentraland:off-chain:base-avatars:hair_coolshortstyle",
- "urn:decentraland:off-chain:base-avatars:eyebrows_05",
- "urn:decentraland:off-chain:base-avatars:eyes_08",
- "urn:decentraland:off-chain:base-avatars:mouth_01",
- "urn:decentraland:off-chain:base-avatars:full_beard",
- "urn:decentraland:off-chain:base-avatars:red_square_shirt",
- "urn:decentraland:off-chain:base-avatars:hip_hop_joggers",
- "urn:decentraland:off-chain:base-avatars:m_mountainshoes.glb",
- "urn:decentraland:off-chain:base-avatars:thug_life"
]
}, - "tutorialStep": 384,
- "interests": [ ],
- "unclaimedName": "cestfini"
}
]
}
]
Given a Ethereum address of a user, return the Avatars details associated with it.
id required | string Example: 0x22480812a9a0669783c06d359182a583bd1d9fc2 Ethereum address of the user |
{- "avatars": [
- {
- "userId": "0x22480812a9a0669783c06d359182a583bd1d9fc2",
- "email": "",
- "name": "cestfini#9fc2",
- "hasClaimedName": false,
- "description": "",
- "ethAddress": "0x22480812a9a0669783c06d359182a583bd1d9fc2",
- "version": 2,
- "avatar": {
- "bodyShape": "urn:decentraland:off-chain:base-avatars:BaseMale",
- "snapshots": {
}, - "eyes": {
- "color": {
- "r": 0.37109375,
- "g": 0.22265625,
- "b": 0.1953125
}
}, - "hair": {
- "color": {
- "r": 0.234375,
- "g": 0.12890625,
- "b": 0.04296875
}
}, - "skin": {
- "color": {
- "r": 0.94921875,
- "g": 0.76171875,
- "b": 0.6484375
}
}, - "wearables": [
- "urn:decentraland:off-chain:base-avatars:hair_coolshortstyle",
- "urn:decentraland:off-chain:base-avatars:eyebrows_05",
- "urn:decentraland:off-chain:base-avatars:eyes_08",
- "urn:decentraland:off-chain:base-avatars:mouth_01",
- "urn:decentraland:off-chain:base-avatars:full_beard",
- "urn:decentraland:off-chain:base-avatars:red_square_shirt",
- "urn:decentraland:off-chain:base-avatars:hip_hop_joggers",
- "urn:decentraland:off-chain:base-avatars:m_mountainshoes.glb",
- "urn:decentraland:off-chain:base-avatars:thug_life"
]
}, - "tutorialStep": 384,
- "interests": [ ],
- "unclaimedName": "cestfini"
}
]
}
Given a Ethereum address of a user, return the Outfits entity.
id required | string Example: 0x22480812a9a0669783c06d359182a583bd1d9fc2 Ethereum address of the user |
[- {
- "version": "v3",
- "id": "QmQ9UorFsVTpaVpCwJZAzFyCmaGf7Ksi6aQHYTJVKyzVMh",
- "type": "outfits",
- "timestamp": 1581034082829,
- "pointers": [
- "0xa87d168717538e86d71ac48baccaeb84162de602:outfits"
], - "content": [ ],
- "metadata": {
- "outfits": [
- {
- "slot": 1,
- "outfit": {
- "bodyShape": "urn:decentraland:off-chain:base-avatars:BaseMale",
- "eyes": {
- "color": {
- "r": 0.23046875,
- "g": 0.625,
- "b": 0.3125
}
}, - "hair": {
- "color": {
- "r": 0.35546875,
- "g": 0.19140625,
- "b": 0.05859375
}
}, - "skin": {
- "color": {
- "r": 0.94921875,
- "g": 0.76171875,
- "b": 0.6484375
}
}, - "wearables": [
- "urn:decentraland:matic:collections-v2: 0xf6f601efee04e74cecac02c8c5bdc8cc0fc1c721:0",
- "urn:decentraland:matic:collections-v2: 0x04e7f74e73e951c61edd80910e46c3fece5ebe80:2",
- "urn:decentraland:ethereum:collections-v1:rtfkt_x_atari:p_rtfkt_x_atari_feet"
]
}
}, - {
- "slot": 5,
- "outfit": {
- "bodyShape": "urn:decentraland:off-chain:base-avatars:BaseMale",
- "eyes": {
- "color": {
- "r": 0.23046875,
- "g": 0.625,
- "b": 0.3125
}
}, - "hair": {
- "color": {
- "r": 0.35546875,
- "g": 0.19140625,
- "b": 0.05859375
}
}, - "skin": {
- "color": {
- "r": 0.94921875,
- "g": 0.76171875,
- "b": 0.6484375
}
}, - "wearables": [
- "urn:decentraland:matic:collections-v2: 0xf6f601efee04e74cecac02c8c5bdc8cc0fc1c721:0",
- "urn:decentraland:matic:collections-v2: 0x04e7f74e73e951c61edd80910e46c3fece5ebe80:2",
- "urn:decentraland:ethereum:collections-v1:rtfkt_x_atari:p_rtfkt_x_atari_feet"
]
}
}
], - "namesForExtraSlots": [
- "perro"
]
}
}
]
Returns the list of third party integrations and collections
{- "data": [
- {
- "urn": "urn:decentraland:ethereum:ext:cryptopunks:0xContractAddressaaabbff999123",
- "name": "Jean Pier",
- "description": "Crypto punks (third party)"
}, - {
- "urn": "urn:decentraland:matic:collections-v1:halloween",
- "name": "Halloween hat",
- "description": "Decentraland Halloween 2019"
}, - {
- "urn": "urn:decentraland:matic:collections-v2:halloween",
- "name": "Halloween tshirt",
- "description": "Decentraland Halloween 2020"
}
]
}