naftiko: 1.0.0-alpha2 info: label: EVM API — DeFi description: 'EVM API — DeFi. 3 operations. Lead operation: Get DEX token pair reserves. Self-contained Naftiko capability covering one Moralis business surface.' tags: - Moralis - DeFi created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MORALIS_API_KEY: MORALIS_API_KEY capability: consumes: - type: http namespace: evm-defi baseUri: https://deep-index.moralis.io/api/v2.2 description: EVM API — DeFi business capability. Self-contained, no shared references. resources: - name: pair_address-reserves path: /{pair_address}/reserves operations: - name: getpairreserves method: GET description: Get DEX token pair reserves outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: to_block in: query type: string description: The block number to get the reserves from - name: to_date in: query type: string description: Get the reserves up to this date (format in seconds or datestring accepted by momentjs) - name: pair_address in: path type: string description: The liquidity pair address required: true - name: token0_address-token1_address-pairAddress path: /{token0_address}/{token1_address}/pairAddress operations: - name: getpairaddress method: GET description: Get DEX token pair address outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: to_block in: query type: string description: The block number to get the reserves from - name: to_date in: query type: string description: Get the reserves up to this date (format in seconds or datestring accepted by momentjs) - name: exchange in: query type: string description: The factory name or address of the token exchange required: true - name: token0_address in: path type: string description: The token0 address required: true - name: token1_address in: path type: string description: The token1 address required: true - name: token0_address-token1_address-price path: /{token0_address}/{token1_address}/price operations: - name: getpairprice method: GET description: Get DEX token pair price outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: chain in: query type: string description: The chain to query - name: to_block in: query type: string description: The block number to get the reserves from - name: to_date in: query type: string description: Get the price up to this date (format in seconds or datestring accepted by momentjs) - name: token0_address in: path type: string description: The token0 address required: true - name: token1_address in: path type: string description: The token1 address required: true - name: exchange in: query type: string description: The factory name or address of the token exchange authentication: type: apikey key: X-API-Key value: '{{env.MORALIS_API_KEY}}' placement: header exposes: - type: rest namespace: evm-defi-rest port: 8080 description: REST adapter for EVM API — DeFi. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/{pair-address}/reserves name: pair-address-reserves description: REST surface for pair_address-reserves. operations: - method: GET name: getpairreserves description: Get DEX token pair reserves call: evm-defi.getpairreserves with: chain: rest.chain to_block: rest.to_block to_date: rest.to_date pair_address: rest.pair_address outputParameters: - type: object mapping: $. - path: /v1/{token0-address}/{token1-address}/pairaddress name: token0-address-token1-address-pairaddress description: REST surface for token0_address-token1_address-pairAddress. operations: - method: GET name: getpairaddress description: Get DEX token pair address call: evm-defi.getpairaddress with: chain: rest.chain to_block: rest.to_block to_date: rest.to_date exchange: rest.exchange token0_address: rest.token0_address token1_address: rest.token1_address outputParameters: - type: object mapping: $. - path: /v1/{token0-address}/{token1-address}/price name: token0-address-token1-address-price description: REST surface for token0_address-token1_address-price. operations: - method: GET name: getpairprice description: Get DEX token pair price call: evm-defi.getpairprice with: chain: rest.chain to_block: rest.to_block to_date: rest.to_date token0_address: rest.token0_address token1_address: rest.token1_address exchange: rest.exchange outputParameters: - type: object mapping: $. - type: mcp namespace: evm-defi-mcp port: 9090 transport: http description: MCP adapter for EVM API — DeFi. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-dex-token-pair-reserves description: Get DEX token pair reserves hints: readOnly: true destructive: false idempotent: true call: evm-defi.getpairreserves with: chain: tools.chain to_block: tools.to_block to_date: tools.to_date pair_address: tools.pair_address outputParameters: - type: object mapping: $. - name: get-dex-token-pair-address description: Get DEX token pair address hints: readOnly: true destructive: false idempotent: true call: evm-defi.getpairaddress with: chain: tools.chain to_block: tools.to_block to_date: tools.to_date exchange: tools.exchange token0_address: tools.token0_address token1_address: tools.token1_address outputParameters: - type: object mapping: $. - name: get-dex-token-pair-price description: Get DEX token pair price hints: readOnly: true destructive: false idempotent: true call: evm-defi.getpairprice with: chain: tools.chain to_block: tools.to_block to_date: tools.to_date token0_address: tools.token0_address token1_address: tools.token1_address exchange: tools.exchange outputParameters: - type: object mapping: $.