naftiko: 1.0.0-alpha2 info: label: Chainlens — Nft-Controller description: 'Chainlens — Nft-Controller. 8 operations. Lead operation: Chainlens Retrieve NFTs.. Self-contained Naftiko capability covering one Chainlens business surface.' tags: - Chainlens - Nft-Controller created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: CHAINLENS_API_KEY: CHAINLENS_API_KEY capability: consumes: - type: http namespace: chainlens-nft-controller baseUri: '' description: Chainlens — Nft-Controller business capability. Self-contained, no shared references. resources: - name: nfts path: /nfts operations: - name: findtokens2 method: GET description: Chainlens Retrieve NFTs. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: query in: query type: string required: true - name: nfts-addressHash path: /nfts/{addressHash} operations: - name: gettoken3 method: GET description: Chainlens Retrieve a NFT by its address hash. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: addressHash in: path type: string description: The address hash identifying the contract. required: true - name: nfts-addressHash-collections path: /nfts/{addressHash}/collections operations: - name: findnftcollections method: GET description: Chainlens Retrieve all NFTs with Metadata. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: addressHash in: path type: string description: The address hash identifying the contract. required: true - name: query in: query type: string required: true - name: nfts-addressHash-erc1155-transfers path: /nfts/{addressHash}/erc1155/transfers operations: - name: finderc1155transfers2 method: GET description: Chainlens Retrieve transfers of an ERC1155 Token. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: addressHash in: path type: string description: The address hash identifying the token. required: true - name: query in: query type: string required: true - name: nfts-addressHash-erc721-transfers path: /nfts/{addressHash}/erc721/transfers operations: - name: finderc721transfers2 method: GET description: Chainlens Retrieve transfers of an ERC721 Token. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: addressHash in: path type: string description: The address hash identifying the token. required: true - name: query in: query type: string required: true - name: nfts-addressHash-holders path: /nfts/{addressHash}/holders operations: - name: gettokenholders2 method: GET description: Chainlens Retrieve a list of token holders by token contract address hash. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: addressHash in: path type: string description: The address hash identifying the contract. required: true - name: query in: query type: string required: true - name: nfts-addressHash-tokenId path: /nfts/{addressHash}/{tokenId} operations: - name: findtokensbytokenid1 method: GET description: Chainlens Retrieve NFT contracts by tokenId. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: addressHash in: path type: string description: The address hash identifying the contract. required: true - name: tokenId in: path type: string required: true - name: nfts-addressHash-tokenId-metadata path: /nfts/{addressHash}/{tokenId}/metadata operations: - name: gettokenmetadata1 method: GET description: Chainlens Retrieve token metadata for a given token contract address and token id. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: addressHash in: path type: string description: The address hash identifying the contract. required: true - name: tokenId in: path type: string required: true exposes: - type: rest namespace: chainlens-nft-controller-rest port: 8080 description: REST adapter for Chainlens — Nft-Controller. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/nfts name: nfts description: REST surface for nfts. operations: - method: GET name: findtokens2 description: Chainlens Retrieve NFTs. call: chainlens-nft-controller.findtokens2 with: query: rest.query outputParameters: - type: object mapping: $. - path: /v1/nfts/{addresshash} name: nfts-addresshash description: REST surface for nfts-addressHash. operations: - method: GET name: gettoken3 description: Chainlens Retrieve a NFT by its address hash. call: chainlens-nft-controller.gettoken3 with: addressHash: rest.addressHash outputParameters: - type: object mapping: $. - path: /v1/nfts/{addresshash}/collections name: nfts-addresshash-collections description: REST surface for nfts-addressHash-collections. operations: - method: GET name: findnftcollections description: Chainlens Retrieve all NFTs with Metadata. call: chainlens-nft-controller.findnftcollections with: addressHash: rest.addressHash query: rest.query outputParameters: - type: object mapping: $. - path: /v1/nfts/{addresshash}/erc1155/transfers name: nfts-addresshash-erc1155-transfers description: REST surface for nfts-addressHash-erc1155-transfers. operations: - method: GET name: finderc1155transfers2 description: Chainlens Retrieve transfers of an ERC1155 Token. call: chainlens-nft-controller.finderc1155transfers2 with: addressHash: rest.addressHash query: rest.query outputParameters: - type: object mapping: $. - path: /v1/nfts/{addresshash}/erc721/transfers name: nfts-addresshash-erc721-transfers description: REST surface for nfts-addressHash-erc721-transfers. operations: - method: GET name: finderc721transfers2 description: Chainlens Retrieve transfers of an ERC721 Token. call: chainlens-nft-controller.finderc721transfers2 with: addressHash: rest.addressHash query: rest.query outputParameters: - type: object mapping: $. - path: /v1/nfts/{addresshash}/holders name: nfts-addresshash-holders description: REST surface for nfts-addressHash-holders. operations: - method: GET name: gettokenholders2 description: Chainlens Retrieve a list of token holders by token contract address hash. call: chainlens-nft-controller.gettokenholders2 with: addressHash: rest.addressHash query: rest.query outputParameters: - type: object mapping: $. - path: /v1/nfts/{addresshash}/{tokenid} name: nfts-addresshash-tokenid description: REST surface for nfts-addressHash-tokenId. operations: - method: GET name: findtokensbytokenid1 description: Chainlens Retrieve NFT contracts by tokenId. call: chainlens-nft-controller.findtokensbytokenid1 with: addressHash: rest.addressHash tokenId: rest.tokenId outputParameters: - type: object mapping: $. - path: /v1/nfts/{addresshash}/{tokenid}/metadata name: nfts-addresshash-tokenid-metadata description: REST surface for nfts-addressHash-tokenId-metadata. operations: - method: GET name: gettokenmetadata1 description: Chainlens Retrieve token metadata for a given token contract address and token id. call: chainlens-nft-controller.gettokenmetadata1 with: addressHash: rest.addressHash tokenId: rest.tokenId outputParameters: - type: object mapping: $. - type: mcp namespace: chainlens-nft-controller-mcp port: 9090 transport: http description: MCP adapter for Chainlens — Nft-Controller. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: chainlens-retrieve-nfts description: Chainlens Retrieve NFTs. hints: readOnly: true destructive: false idempotent: true call: chainlens-nft-controller.findtokens2 with: query: tools.query outputParameters: - type: object mapping: $. - name: chainlens-retrieve-nft-its-address description: Chainlens Retrieve a NFT by its address hash. hints: readOnly: true destructive: false idempotent: true call: chainlens-nft-controller.gettoken3 with: addressHash: tools.addressHash outputParameters: - type: object mapping: $. - name: chainlens-retrieve-all-nfts-metadata description: Chainlens Retrieve all NFTs with Metadata. hints: readOnly: true destructive: false idempotent: true call: chainlens-nft-controller.findnftcollections with: addressHash: tools.addressHash query: tools.query outputParameters: - type: object mapping: $. - name: chainlens-retrieve-transfers-erc1155-token description: Chainlens Retrieve transfers of an ERC1155 Token. hints: readOnly: true destructive: false idempotent: true call: chainlens-nft-controller.finderc1155transfers2 with: addressHash: tools.addressHash query: tools.query outputParameters: - type: object mapping: $. - name: chainlens-retrieve-transfers-erc721-token description: Chainlens Retrieve transfers of an ERC721 Token. hints: readOnly: true destructive: false idempotent: true call: chainlens-nft-controller.finderc721transfers2 with: addressHash: tools.addressHash query: tools.query outputParameters: - type: object mapping: $. - name: chainlens-retrieve-list-token-holders description: Chainlens Retrieve a list of token holders by token contract address hash. hints: readOnly: true destructive: false idempotent: true call: chainlens-nft-controller.gettokenholders2 with: addressHash: tools.addressHash query: tools.query outputParameters: - type: object mapping: $. - name: chainlens-retrieve-nft-contracts-tokenid description: Chainlens Retrieve NFT contracts by tokenId. hints: readOnly: true destructive: false idempotent: true call: chainlens-nft-controller.findtokensbytokenid1 with: addressHash: tools.addressHash tokenId: tools.tokenId outputParameters: - type: object mapping: $. - name: chainlens-retrieve-token-metadata-given description: Chainlens Retrieve token metadata for a given token contract address and token id. hints: readOnly: true destructive: false idempotent: true call: chainlens-nft-controller.gettokenmetadata1 with: addressHash: tools.addressHash tokenId: tools.tokenId outputParameters: - type: object mapping: $.