Hiro · Capability

Token Metadata API — Tokens

Token Metadata API — Tokens. 5 operations. Lead operation: Fungible Tokens. Self-contained Naftiko capability covering one Hiro business surface.

Run with Naftiko HiroTokens

What You Can Do

GET
Getfungibletokens — Fungible Tokens
/v1/metadata/v1/ft
GET
Getftmetadata — Fungible Token Metadata
/v1/metadata/v1/ft/{principal}
GET
Getnftmetadata — Non-Fungible Token Metadata
/v1/metadata/v1/nft/{principal}/{token-id}
GET
Searchtokens — Search Tokens
/v1/metadata/v1/search
GET
Getsftmetadata — Semi-Fungible Token Metadata
/v1/metadata/v1/sft/{principal}/{token-id}

MCP Tools

fungible-tokens

Fungible Tokens

read-only idempotent
fungible-token-metadata

Fungible Token Metadata

read-only idempotent
non-fungible-token-metadata

Non-Fungible Token Metadata

read-only idempotent
search-tokens

Search Tokens

read-only idempotent
semi-fungible-token-metadata

Semi-Fungible Token Metadata

read-only idempotent

Capability Spec

token-metadata-tokens.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Token Metadata API — Tokens
  description: 'Token Metadata API — Tokens. 5 operations. Lead operation: Fungible Tokens. Self-contained Naftiko capability
    covering one Hiro business surface.'
  tags:
  - Hiro
  - Tokens
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    HIRO_API_KEY: HIRO_API_KEY
capability:
  consumes:
  - type: http
    namespace: token-metadata-tokens
    baseUri: https://api.hiro.so
    description: Token Metadata API — Tokens business capability. Self-contained, no shared references.
    resources:
    - name: metadata-v1-ft
      path: /metadata/v1/ft
      operations:
      - name: getfungibletokens
        method: GET
        description: Fungible Tokens
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: query
          type: string
        - name: symbol
          in: query
          type: string
        - name: address
          in: query
          type: string
          description: Stacks Address
        - name: valid_metadata_only
          in: query
          type: boolean
          description: If enabled, only tokens with valid SIP-016 metadata will be returned
        - name: offset
          in: query
          type: integer
          description: Result offset
        - name: limit
          in: query
          type: integer
          description: Results per page
        - name: order_by
          in: query
          type: string
          description: Parameter to order results by
        - name: order
          in: query
          type: string
          description: Results order
    - name: metadata-v1-ft-principal
      path: /metadata/v1/ft/{principal}
      operations:
      - name: getftmetadata
        method: GET
        description: Fungible Token Metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: locale
          in: query
          type: string
          description: Metadata localization to retrieve
        - name: principal
          in: path
          type: string
          description: Principal for the contract which owns the SIP-010 token
          required: true
    - name: metadata-v1-nft-principal-token_id
      path: /metadata/v1/nft/{principal}/{token_id}
      operations:
      - name: getnftmetadata
        method: GET
        description: Non-Fungible Token Metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: locale
          in: query
          type: string
          description: Metadata localization to retrieve
        - name: principal
          in: path
          type: string
          description: SIP-009 compliant smart contract principal
          required: true
        - name: token_id
          in: path
          type: integer
          description: Token ID to retrieve
          required: true
    - name: metadata-v1-search
      path: /metadata/v1/search
      operations:
      - name: searchtokens
        method: GET
        description: Search Tokens
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: contract
          in: query
          type: array
          description: 'Contract identifiers to search for. Format: PRINCIPAL or PRINCIPAL:TOKEN_NUMBER. Defaults token_number
            to 1 when omitted.'
          required: true
        - name: locale
          in: query
          type: string
          description: Metadata localization to retrieve
    - name: metadata-v1-sft-principal-token_id
      path: /metadata/v1/sft/{principal}/{token_id}
      operations:
      - name: getsftmetadata
        method: GET
        description: Semi-Fungible Token Metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: locale
          in: query
          type: string
          description: Metadata localization to retrieve
        - name: principal
          in: path
          type: string
          description: SIP-013 compliant smart contract principal
          required: true
        - name: token_id
          in: path
          type: integer
          description: Token ID to retrieve
          required: true
  exposes:
  - type: rest
    namespace: token-metadata-tokens-rest
    port: 8080
    description: REST adapter for Token Metadata API — Tokens. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/metadata/v1/ft
      name: metadata-v1-ft
      description: REST surface for metadata-v1-ft.
      operations:
      - method: GET
        name: getfungibletokens
        description: Fungible Tokens
        call: token-metadata-tokens.getfungibletokens
        with:
          name: rest.name
          symbol: rest.symbol
          address: rest.address
          valid_metadata_only: rest.valid_metadata_only
          offset: rest.offset
          limit: rest.limit
          order_by: rest.order_by
          order: rest.order
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/metadata/v1/ft/{principal}
      name: metadata-v1-ft-principal
      description: REST surface for metadata-v1-ft-principal.
      operations:
      - method: GET
        name: getftmetadata
        description: Fungible Token Metadata
        call: token-metadata-tokens.getftmetadata
        with:
          locale: rest.locale
          principal: rest.principal
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/metadata/v1/nft/{principal}/{token-id}
      name: metadata-v1-nft-principal-token-id
      description: REST surface for metadata-v1-nft-principal-token_id.
      operations:
      - method: GET
        name: getnftmetadata
        description: Non-Fungible Token Metadata
        call: token-metadata-tokens.getnftmetadata
        with:
          locale: rest.locale
          principal: rest.principal
          token_id: rest.token_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/metadata/v1/search
      name: metadata-v1-search
      description: REST surface for metadata-v1-search.
      operations:
      - method: GET
        name: searchtokens
        description: Search Tokens
        call: token-metadata-tokens.searchtokens
        with:
          contract: rest.contract
          locale: rest.locale
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/metadata/v1/sft/{principal}/{token-id}
      name: metadata-v1-sft-principal-token-id
      description: REST surface for metadata-v1-sft-principal-token_id.
      operations:
      - method: GET
        name: getsftmetadata
        description: Semi-Fungible Token Metadata
        call: token-metadata-tokens.getsftmetadata
        with:
          locale: rest.locale
          principal: rest.principal
          token_id: rest.token_id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: token-metadata-tokens-mcp
    port: 9090
    transport: http
    description: MCP adapter for Token Metadata API — Tokens. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: fungible-tokens
      description: Fungible Tokens
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: token-metadata-tokens.getfungibletokens
      with:
        name: tools.name
        symbol: tools.symbol
        address: tools.address
        valid_metadata_only: tools.valid_metadata_only
        offset: tools.offset
        limit: tools.limit
        order_by: tools.order_by
        order: tools.order
      outputParameters:
      - type: object
        mapping: $.
    - name: fungible-token-metadata
      description: Fungible Token Metadata
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: token-metadata-tokens.getftmetadata
      with:
        locale: tools.locale
        principal: tools.principal
      outputParameters:
      - type: object
        mapping: $.
    - name: non-fungible-token-metadata
      description: Non-Fungible Token Metadata
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: token-metadata-tokens.getnftmetadata
      with:
        locale: tools.locale
        principal: tools.principal
        token_id: tools.token_id
      outputParameters:
      - type: object
        mapping: $.
    - name: search-tokens
      description: Search Tokens
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: token-metadata-tokens.searchtokens
      with:
        contract: tools.contract
        locale: tools.locale
      outputParameters:
      - type: object
        mapping: $.
    - name: semi-fungible-token-metadata
      description: Semi-Fungible Token Metadata
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: token-metadata-tokens.getsftmetadata
      with:
        locale: tools.locale
        principal: tools.principal
        token_id: tools.token_id
      outputParameters:
      - type: object
        mapping: $.