> ## Documentation Index
> Fetch the complete documentation index at: https://sequence-0fb8d9e6-shop-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Metadatos de Contrato

* [Aprenda cómo consultar metadatos a nivel de contrato directamente para cualquier contrato](/api-references/metadata/examples/token-metadata#fetch-token-metadata-for-any-erc721-or-erc1155-contract)
* [Conozca los metadatos a nivel de contrato para tokens ERC20, ERC721 y ERC1155](/api-references/metadata/examples/token-metadata#token-metadata-standards)
* [Conozca cómo consultar extensiones de metadatos de información a nivel de contrato para tokens ERC20, ERC721 y ERC1155](/api-references/metadata/examples/contract-metadata#search-contract-metadata)

<Note>
  \[PRO TIP: Sequence Indexer también devuelve metadatos de tokens]

  Al usar el [Sequence Indexer](/api-references/indexer/overview), agregue `"includeMetadata": true` a la solicitud para
  consultar metadatos de tokens de cualquier contrato ERC20, ERC721 o ERC1155. Vea abajo cómo obtener
  metadatos a nivel de contrato directamente.
</Note>

## Obtenga metadatos de contrato de cualquier dirección de contrato ERC20, ERC721 o ERC1155

*Método `GetContractInfoBatch` de Sequence Metadata:*

* Solicitud: POST /rpc/Metadata/GetContractInfoBatch
* Content-Type: application/json
* Cuerpo (en JSON):
  * `chainID` (string) -- el id de la cadena, como nombre o número (ej. "1" o "mainnet", "137" o "polygon", etc.)
  * `contractAddresses` (string de strings) -- arreglo de direcciones de contratos

**Ejemplo: `GetContractInfoBatch` de algunos contratos en Polygon usando un `AQAAAAAAAF_JvPALhBthL7VGn6jV0YDqaFY`**

<Note>
  Este código requiere una clave de acceso API de [Sequence Builder](https://sequence.build).
</Note>

<CodeGroup>
  ```shell cURL
  curl -X POST -H "Content-Type: application/json" -H "X-Access-Key: AQAAAAAAAF_JvPALhBthL7VGn6jV0YDqaFY" https://metadata.sequence.app/rpc/Metadata/GetContractInfoBatch -d '{ "chainID": "polygon", "contractAddresses": ["0x631998e91476DA5B870D741192fc5Cbc55F5a52E", "0x17b66009af459dc8ebf37acf8a8b355379be2fe5", "0x2791bca1f2de4661ed88a30c99a7a9449aa84174", "0x2953399124f0cbb46d2cbacd8a89cf0599974963", "0x7227e371540cf7b8e512544ba6871472031f3335", "0x7c0ebabfc394ec6d926e801fe0e69a1f15a7fe4d", "0x8f3cf7ad23cd3cadbd9735aff958023239c6a063", "0xa1c57f48f0deb89f569dfbe6e2b7f46d33606fd4"] }'
  ```

  ```ts Typescript
  // Works in both a Webapp (browser) or Node.js:
  import { SequenceMetadata } from '@0xsequence/metadata'

  const metadataClient = new SequenceMetadata("https://metadata.sequence.app", "AQAAAAAAAF_JvPALhBthL7VGn6jV0YDqaFY")

  const contractMetadata = await metadataClient.getContractInfoBatch({
    chainID: 'polygon',
    contractAddresses: [
      '0x631998e91476DA5B870D741192fc5Cbc55F5a52E',
      '0x17b66009af459dc8ebf37acf8a8b355379be2fe5',
      '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',
      '0x2953399124f0cbb46d2cbacd8a89cf0599974963',
      '0x7227e371540cf7b8e512544ba6871472031f3335',
      '0x7c0ebabfc394ec6d926e801fe0e69a1f15a7fe4d',
      '0x8f3cf7ad23cd3cadbd9735aff958023239c6a063',
      '0xa1c57f48f0deb89f569dfbe6e2b7f46d33606fd4'
    ]
  })

  console.log('Contract info for above addresses:', contractMetadata)
  ```

  ```go Go
  import (
  	"github.com/0xsequence/go-sequence/metadata"
  )

  seqMetadata := metadata.NewMetadata("AQAAAAAAAF_JvPALhBthL7VGn6jV0YDqaFY")

  contractInfo, err := seqMetadata.GetContractInfo(context.Background(), "polygon", "0x631998e91476DA5B870D741192fc5Cbc55F5a52E")
  ```

  ```shell Other
  Please contact our team for assistance with integrations to another target.
  ```
</CodeGroup>

## Estándares de Metadatos a Nivel de Contrato

Adicionalmente, OpenSea añadió algo llamado `contractURI` ([https://docs.opensea.io/docs/contract-level-metadata](https://docs.opensea.io/docs/contract-level-metadata)).

## Buscar Metadatos de Contrato

### Obtenga información de metadatos a nivel de contrato para cualquier dirección de contrato ERC20, ERC721 o ERC1155 según un criterio de búsqueda

*Método `SearchContracts` de Sequence Metadata:*

* Solicitud: POST /rpc/Metadata/SearchContracts
* Content-Type: application/json
* Cuerpo (en JSON):
  * `chainID` **opcional**  (string) -- el id de la cadena, como número (ej. "1" para "mainnet", "137" para "polygon", etc.)
  * `chainIDs` **opcional** (string) -- una lista de ids de cadena, como número (ej. "1" para "mainnet", "137" para "polygon", etc.)
  * `q` (cadena) -- puede ser un parámetro de búsqueda para buscar información de contratos, o simplemente una dirección de contrato para buscar

<br />

**Ejemplo: `SearchContracts` de algunas consultas / un contrato en Polygon usando un `AQAAAAAAAF_JvPALhBthL7VGn6jV0YDqaFY`**

<Note>
  Este código requiere una clave de acceso API de [Sequence Builder](https://sequence.build).
</Note>

<CodeGroup>
  ```shell cURL
  curl -X POST -H "Content-Type: application/json" -H "X-Access-Key: AQAAAAAAAF_JvPALhBthL7VGn6jV0YDqaFY" https://metadata.sequence.app/rpc/Metadata/SearchContracts -d '{ "q": "skyweaver"}'
  ```

  ```ts Typescript
  // Works in both a Webapp (browser) or Node.js:
  import { SequenceMetadata } from '@0xsequence/metadata'

  const metadataClient = new SequenceMetadata('https://metadata.sequence.app', 'AQAAAAAAAF_JvPALhBthL7VGn6jV0YDqaFY')
      
  const contractAddressSearchMetadata = await metadataClient.searchContracts({
      chainIDs: ['137'],
      q: '0x631998e91476DA5B870D741192fc5Cbc55F5a52E',
  })

  console.log('Contract info metadata for above address:', contractAddressSearchMetadata)

  const contractQuerySearchMetadata = await metadataClient.searchContracts({
      chainIDs: ['137'],
      q: 'skyweaver',
  })

  console.log('Contract info metadata for query:', contractQuerySearchMetadata)
  ```

  ```go Go

  package main

  import (
  	"context"
  	"fmt"
  	"log"
  	"github.com/0xsequence/go-sequence/metadata"
  )

  func main() {
  	seqMetadata := metadata.NewMetadata("AQAAAAAAAF_JvPALhBthL7VGn6jV0YDqaFY")
  	chainID := "137"

  	contractInfo, _, err := seqMetadata.SearchContracts(context.Background(), "0x631998e91476DA5B870D741192fc5Cbc55F5a52E", &chainID, nil, nil)
  	
  	if err != nil {
  		log.Fatalf("Failed to get contract info: %v", err)
  	}

  	fmt.Printf("Contract Info: %+v\n", contractInfo)
  }
  ```

  ```shell Other
  Please contact our team for assistance with integrations to another target.
  ```
</CodeGroup>
