Moralis · Capability

EVM API — Get Metadata

EVM API — Get Metadata. 4 operations. Lead operation: Get ERC20 token metadata by contract. Self-contained Naftiko capability covering one Moralis business surface.

Run with Naftiko MoralisGet Metadata

What You Can Do

GET
Gettokenmetadata — Get ERC20 token metadata by contract
/v1/erc20/metadata
GET
Gettokenmetadatabysymbol — Get ERC20 token metadata by symbols
/v1/erc20/metadata/symbols
GET
Getnftmetadata — Get NFT metadata
/v1/nft/{address}/{token-id}
GET
Resyncmetadata — Resync NFT metadata
/v1/nft/{address}/{token-id}/metadata/resync

MCP Tools

get-erc20-token-metadata-contract

Get ERC20 token metadata by contract

read-only idempotent
get-erc20-token-metadata-symbols

Get ERC20 token metadata by symbols

read-only idempotent
get-nft-metadata

Get NFT metadata

read-only idempotent
resync-nft-metadata

Resync NFT metadata

read-only idempotent

Capability Spec

evm-get-metadata.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: EVM API — Get Metadata
  description: 'EVM API — Get Metadata. 4 operations. Lead operation: Get ERC20 token metadata by contract. Self-contained
    Naftiko capability covering one Moralis business surface.'
  tags:
  - Moralis
  - Get Metadata
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    MORALIS_API_KEY: MORALIS_API_KEY
capability:
  consumes:
  - type: http
    namespace: evm-get-metadata
    baseUri: https://deep-index.moralis.io/api/v2.2
    description: EVM API — Get Metadata business capability. Self-contained, no shared references.
    resources:
    - name: erc20-metadata
      path: /erc20/metadata
      operations:
      - name: gettokenmetadata
        method: GET
        description: Get ERC20 token metadata by contract
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: chain
          in: query
          type: string
          description: The chain to query
        - name: addresses
          in: query
          type: array
          description: The addresses to get metadata for
          required: true
    - name: erc20-metadata-symbols
      path: /erc20/metadata/symbols
      operations:
      - name: gettokenmetadatabysymbol
        method: GET
        description: Get ERC20 token metadata by symbols
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: chain
          in: query
          type: string
          description: The chain to query
        - name: symbols
          in: query
          type: array
          description: The symbols to get metadata for
          required: true
    - name: nft-address-token_id
      path: /nft/{address}/{token_id}
      operations:
      - name: getnftmetadata
        method: GET
        description: Get NFT metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: chain
          in: query
          type: string
          description: The chain to query
        - name: address
          in: path
          type: string
          description: The address of the NFT contract
          required: true
        - name: token_id
          in: path
          type: string
          description: The ID of the token
          required: true
        - name: format
          in: query
          type: string
          description: The format of the token ID
        - name: normalizeMetadata
          in: query
          type: boolean
          description: Should normalized metadata be returned?
        - name: media_items
          in: query
          type: boolean
          description: Should preview media data be returned?
        - name: include_prices
          in: query
          type: boolean
          description: Should NFT last sale prices be included in the result?
    - name: nft-address-token_id-metadata-resync
      path: /nft/{address}/{token_id}/metadata/resync
      operations:
      - name: resyncmetadata
        method: GET
        description: Resync NFT metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: chain
          in: query
          type: string
          description: The chain to query
        - name: address
          in: path
          type: string
          description: The address of the NFT contract
          required: true
        - name: token_id
          in: path
          type: string
          description: The ID of the token
          required: true
        - name: flag
          in: query
          type: string
          description: The type of resync to operate
        - name: mode
          in: query
          type: string
          description: To define the behaviour of the endpoint
    authentication:
      type: apikey
      key: X-API-Key
      value: '{{env.MORALIS_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: evm-get-metadata-rest
    port: 8080
    description: REST adapter for EVM API — Get Metadata. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/erc20/metadata
      name: erc20-metadata
      description: REST surface for erc20-metadata.
      operations:
      - method: GET
        name: gettokenmetadata
        description: Get ERC20 token metadata by contract
        call: evm-get-metadata.gettokenmetadata
        with:
          chain: rest.chain
          addresses: rest.addresses
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/erc20/metadata/symbols
      name: erc20-metadata-symbols
      description: REST surface for erc20-metadata-symbols.
      operations:
      - method: GET
        name: gettokenmetadatabysymbol
        description: Get ERC20 token metadata by symbols
        call: evm-get-metadata.gettokenmetadatabysymbol
        with:
          chain: rest.chain
          symbols: rest.symbols
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/nft/{address}/{token-id}
      name: nft-address-token-id
      description: REST surface for nft-address-token_id.
      operations:
      - method: GET
        name: getnftmetadata
        description: Get NFT metadata
        call: evm-get-metadata.getnftmetadata
        with:
          chain: rest.chain
          address: rest.address
          token_id: rest.token_id
          format: rest.format
          normalizeMetadata: rest.normalizeMetadata
          media_items: rest.media_items
          include_prices: rest.include_prices
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/nft/{address}/{token-id}/metadata/resync
      name: nft-address-token-id-metadata-resync
      description: REST surface for nft-address-token_id-metadata-resync.
      operations:
      - method: GET
        name: resyncmetadata
        description: Resync NFT metadata
        call: evm-get-metadata.resyncmetadata
        with:
          chain: rest.chain
          address: rest.address
          token_id: rest.token_id
          flag: rest.flag
          mode: rest.mode
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: evm-get-metadata-mcp
    port: 9090
    transport: http
    description: MCP adapter for EVM API — Get Metadata. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: get-erc20-token-metadata-contract
      description: Get ERC20 token metadata by contract
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: evm-get-metadata.gettokenmetadata
      with:
        chain: tools.chain
        addresses: tools.addresses
      outputParameters:
      - type: object
        mapping: $.
    - name: get-erc20-token-metadata-symbols
      description: Get ERC20 token metadata by symbols
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: evm-get-metadata.gettokenmetadatabysymbol
      with:
        chain: tools.chain
        symbols: tools.symbols
      outputParameters:
      - type: object
        mapping: $.
    - name: get-nft-metadata
      description: Get NFT metadata
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: evm-get-metadata.getnftmetadata
      with:
        chain: tools.chain
        address: tools.address
        token_id: tools.token_id
        format: tools.format
        normalizeMetadata: tools.normalizeMetadata
        media_items: tools.media_items
        include_prices: tools.include_prices
      outputParameters:
      - type: object
        mapping: $.
    - name: resync-nft-metadata
      description: Resync NFT metadata
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: evm-get-metadata.resyncmetadata
      with:
        chain: tools.chain
        address: tools.address
        token_id: tools.token_id
        flag: tools.flag
        mode: tools.mode
      outputParameters:
      - type: object
        mapping: $.