# Pointers

Pointers são strings únicas e insensíveis a maiúsculas/minúsculas que referenciam um ativo [entity](https://github.com/decentraland/docs/blob/main/contributor/entities.md). Os content servers podem resolver esses pointers para obter o identificador da entidade.

Lembre-se de que tanto [entities](https://github.com/decentraland/docs/blob/main/contributor/entities.md) quanto seus [files](https://github.com/decentraland/docs/blob/main/contributor/filesystem.md) são imutáveis no sistema de content do Decentraland, e seus identificadores mudam quando versões de substituição são carregadas. Pointers, por outro lado, são referências estáveis que persistem através de substituições. Isso é conseguido redirecionando automaticamente o pointer para uma nova entidade quando o proprietário carrega uma substituição.

Múltiplos pointers podem resolver para o mesmo [entity](https://github.com/decentraland/docs/blob/main/contributor/entities.md), como frequentemente ocorre com [cenas](https://docs.decentraland.org/contributor/contributor-pt/content/entity-types/scenes).

Como você pode perceber, o uso mais comum de pointers é obter o ID da versão ativa (ou seja, a última substituição) de uma [entity](https://github.com/decentraland/docs/blob/main/contributor/entities.md), a fim de baixá-la.

### Tipos de Pointers

Existem 4 tipos de pointers que os content servers podem resolver para entidades, cada um com sua própria sintaxe:

* [Scene pointers](https://docs.decentraland.org/contributor/contributor-pt/entity-types/scenes#pointers) são coordenadas de parcelas, como `"0,0"`.
* [Profile pointers](https://docs.decentraland.org/contributor/contributor-pt/entity-types/profiles#pointers) são o endereço Ethereum do proprietário.
* [Wearable pointers](https://docs.decentraland.org/contributor/contributor-pt/entity-types/wearables#pointers) e [emote pointers](https://docs.decentraland.org/contributor/contributor-pt/entity-types/emotes#pointers) são ou [collection](https://github.com/decentraland/docs/blob/main/contributor/collections.md) item URNs ou URNs off-chain.
* [Store pointers](https://docs.decentraland.org/contributor/contributor-pt/entity-types/stores#pointers) são URNs off-chain com o endereço Ethereum do proprietário.
* [Outfits pointers](https://docs.decentraland.org/contributor/contributor-pt/entity-types/outfits#pointers) são o endereço Ethereum do proprietário suplementado por `:outfits`.

Você pode encontrar mais detalhes em suas seções específicas.

### Resolvendo Pointers

Os content servers têm um endpoint que pode resolver pointers no manifesto da sua entidade ativa, fazendo uma `GET` requisição para:

```
https://<content-base-url>/entities/<entity-type>?pointer=<pointer>
```

{% hint style="info" %}
Por razões históricas, a resposta deste endpoint é um array contendo um elemento.
{% endhint %}

Alguns exemplos úteis, usando o content server da Foundation:

```bash
# Um pointer on-chain de coleção para um wearable:
curl "https://peer.decentraland.org/content/entities/wearables/?pointer=urn:decentraland:matic:collections-v2:0x30517529cb5c16f686c6d0b48faae5d250d43005:0"

# Um pointer off-chain de coleção para um asset padrão:
curl https://peer.decentraland.org/content/entities/wearables/?pointer=urn:decentraland:off-chain:base-avatars:BaseFemale

# Um pointer de parcela:
curl https://peer.decentraland.org/content/entities/wearables/?pointer=0,0

# Um pointer de perfil:
curl https://peer.decentraland.org/content/entities/profiles/?pointer=0xe2c2b80ca5ad868f4b30fa83cca2bf12cc95b4fe
```

Observe que, se você já conhece o ID da entidade, você pode [baixar o manifesto](https://github.com/decentraland/docs/blob/main/contributor/filesystem.md#downloading) diretamente.
