naftiko: 1.0.0-alpha2 info: label: EVM API — Get Collections description: 'EVM API — Get Collections. 4 operations. Lead operation: Get metadata for multiple NFT contracts. Self-contained Naftiko capability covering one Moralis business surface.' tags: - Moralis - Get Collections 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-collections baseUri: https://deep-index.moralis.io/api/v2.2 description: EVM API — Get Collections business capability. Self-contained, no shared references. resources: - name: nft-metadata path: /nft/metadata operations: - name: getnftbulkcontractmetadata method: POST description: Get metadata for multiple NFT contracts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: include_prices in: query type: boolean description: Should NFT last sale prices be included in the result? - name: body in: body type: object description: Request body (JSON). required: true - name: nft-address-metadata path: /nft/{address}/metadata operations: - name: getnftcontractmetadata method: GET description: Get NFT collection 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: include_prices in: query type: boolean description: Should NFT last sale prices be included in the result? - name: nft-address-sync path: /nft/{address}/sync operations: - name: syncnftcontract method: PUT description: Resync NFT Contract 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: address-nft-collections path: /{address}/nft/collections operations: - name: getwalletnftcollections method: GET description: Get NFT collections by wallet address 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 wallet address of the owner of NFTs in the collections required: true - name: include_prices in: query type: boolean description: Should NFT last sale prices be included in the result? - name: limit in: query type: integer description: The desired page size of the result. - name: exclude_spam in: query type: boolean description: Should spam NFTs be excluded from the result? - name: cursor in: query type: string description: The cursor returned in the previous response (used for getting the next page). - name: token_counts in: query type: boolean description: Should token counts per collection be included in the response? authentication: type: apikey key: X-API-Key value: '{{env.MORALIS_API_KEY}}' placement: header exposes: - type: rest namespace: evm-get-collections-rest port: 8080 description: REST adapter for EVM API — Get Collections. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/nft/metadata name: nft-metadata description: REST surface for nft-metadata. operations: - method: POST name: getnftbulkcontractmetadata description: Get metadata for multiple NFT contracts call: evm-get-collections.getnftbulkcontractmetadata with: chain: rest.chain include_prices: rest.include_prices body: rest.body outputParameters: - type: object mapping: $. - path: /v1/nft/{address}/metadata name: nft-address-metadata description: REST surface for nft-address-metadata. operations: - method: GET name: getnftcontractmetadata description: Get NFT collection metadata call: evm-get-collections.getnftcontractmetadata with: chain: rest.chain address: rest.address include_prices: rest.include_prices outputParameters: - type: object mapping: $. - path: /v1/nft/{address}/sync name: nft-address-sync description: REST surface for nft-address-sync. operations: - method: PUT name: syncnftcontract description: Resync NFT Contract call: evm-get-collections.syncnftcontract with: chain: rest.chain address: rest.address outputParameters: - type: object mapping: $. - path: /v1/{address}/nft/collections name: address-nft-collections description: REST surface for address-nft-collections. operations: - method: GET name: getwalletnftcollections description: Get NFT collections by wallet address call: evm-get-collections.getwalletnftcollections with: chain: rest.chain address: rest.address include_prices: rest.include_prices limit: rest.limit exclude_spam: rest.exclude_spam cursor: rest.cursor token_counts: rest.token_counts outputParameters: - type: object mapping: $. - type: mcp namespace: evm-get-collections-mcp port: 9090 transport: http description: MCP adapter for EVM API — Get Collections. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-metadata-multiple-nft-contracts description: Get metadata for multiple NFT contracts hints: readOnly: true destructive: false idempotent: false call: evm-get-collections.getnftbulkcontractmetadata with: chain: tools.chain include_prices: tools.include_prices body: tools.body outputParameters: - type: object mapping: $. - name: get-nft-collection-metadata description: Get NFT collection metadata hints: readOnly: true destructive: false idempotent: true call: evm-get-collections.getnftcontractmetadata with: chain: tools.chain address: tools.address include_prices: tools.include_prices outputParameters: - type: object mapping: $. - name: resync-nft-contract description: Resync NFT Contract hints: readOnly: false destructive: false idempotent: true call: evm-get-collections.syncnftcontract with: chain: tools.chain address: tools.address outputParameters: - type: object mapping: $. - name: get-nft-collections-wallet-address description: Get NFT collections by wallet address hints: readOnly: true destructive: false idempotent: true call: evm-get-collections.getwalletnftcollections with: chain: tools.chain address: tools.address include_prices: tools.include_prices limit: tools.limit exclude_spam: tools.exclude_spam cursor: tools.cursor token_counts: tools.token_counts outputParameters: - type: object mapping: $.