SettleMint
Reference

Directory trusted issuers API reference

Read the platform-wide directory of trusted claim issuers and the claim topics each one is authorised to verify, through the DALP Platform API.

A trusted issuer is an identity allowed to sign verifiable claims, such as a Know Your Customer result or an accredited-investor attestation, that DALP compliance checks then trust during transfers and other gated operations. An auditor or compliance lead needs a single, authoritative view of which issuers the platform trusts and exactly which claim topics each one may attest. These endpoints provide that platform-wide view.

The directory trusted issuers registry is the platform-wide (global) tier. Issuers registered here are inherited by the systems beneath them, so a row in this directory can apply across many systems at once. Each issuer record reports inheritedBySystemsCount. A reviewer reads that count to see how far an issuer reaches before anyone changes it.

This surface is read-only. It lists and inspects issuers and their topics. It does not register, edit, or remove issuers. To configure trusted issuers for one system or one asset, see Configure trusted issuers.

How this differs from system trusted issuers

DALP resolves trusted issuers across three tiers: the platform-wide directory, each system, and each asset. These endpoints read the platform-wide directory tier only.

You want toUse
Audit every issuer the whole platform trustsThese directory endpoints
Configure the issuers that apply to one systemConfigure trusted issuers
Discover the contracts and registries backing the active networkSystem directory API

Required role

Reading the platform-wide directory requires the platform admin role. These endpoints sit above the per-system permission model, so a system-scoped role cannot call them.

Set the standard request headers before calling these endpoints. See Request headers.

Endpoints

EndpointUse it for
GET /api/v2/directory/trusted-issuersList every issuer in the platform-wide directory.
GET /api/v2/directory/trusted-issuers/{issuerAddress}Read one directory issuer by its identity address.
GET /api/v2/directory/trusted-issuers/{issuerAddress}/topicsList the claim topics one directory issuer is authorised for.

List and topics responses use the collection envelope with data, meta, and pagination links. The read response uses the single-resource envelope with data and links.self.

Issuer fields

The list and read endpoints return the same issuer record.

FieldTypeDescription
idstringThe issuer's on-chain identity address.
accountobject or nullThe issuer's wallet address, as { "id": "0x..." }, when one is recorded.
claimTopicsarrayThe claim topics this issuer can verify. Each entry carries id, topicId, name, and signature.
deployedInTransactionstringTransaction hash that added this issuer to the registry.
inheritedBySystemsCountnumberHow many systems inherit this issuer through the registry chain.

A claim topic carries a human-readable name, such as Know Your Customer, and a signature, the ABI type list that defines the claim's data shape, such as (string) or (uint256,bool). The topicId is the numeric identifier used on-chain.

List directory issuers

GET /api/v2/directory/trusted-issuers returns the issuers registered in the platform-wide directory, ordered by issuer address.

The list supports pagination and filtering by issuer address with filter[id]. It also supports global search with filter[q], which matches against the issuer address.

curl --globoff "https://your-platform.example.com/api/v2/directory/trusted-issuers?filter[id]=0x71C7656EC7ab88b098defB751B7401B5f6d8976F" \
  -H "x-api-key: YOUR_API_KEY"
{
  "data": [
    {
      "id": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
      "account": { "id": "0x2546BcD3c84621e976D8185a91A922aE77ECEc30" },
      "claimTopics": [
        {
          "id": "topic-001",
          "topicId": "1",
          "name": "Know Your Customer",
          "signature": "(string)"
        }
      ],
      "deployedInTransaction": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
      "inheritedBySystemsCount": 3
    }
  ],
  "meta": {
    "total": 1,
    "facets": {}
  },
  "links": {
    "self": "/v2/directory/trusted-issuers?page[offset]=0&page[limit]=50",
    "first": "/v2/directory/trusted-issuers?page[offset]=0&page[limit]=50",
    "prev": null,
    "next": null,
    "last": "/v2/directory/trusted-issuers?page[offset]=0&page[limit]=50"
  }
}

The list returns 50 issuers per page by default, up to 200. Use page[offset] and page[limit] to page through larger registries.

Read one issuer

GET /api/v2/directory/trusted-issuers/{issuerAddress} returns a single issuer by its identity address.

curl "https://your-platform.example.com/api/v2/directory/trusted-issuers/0x71C7656EC7ab88b098defB751B7401B5f6d8976F" \
  -H "x-api-key: YOUR_API_KEY"
{
  "data": {
    "id": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
    "account": { "id": "0x2546BcD3c84621e976D8185a91A922aE77ECEc30" },
    "claimTopics": [
      {
        "id": "topic-001",
        "topicId": "1",
        "name": "Know Your Customer",
        "signature": "(string)"
      }
    ],
    "deployedInTransaction": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
    "inheritedBySystemsCount": 3
  },
  "links": {
    "self": "/v2/directory/trusted-issuers/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
  }
}

The endpoint returns DALP-0294 with status 404 when no issuer matches the address in the platform-wide registry. Confirm the address and that the issuer was registered before retrying.

List an issuer's claim topics

GET /api/v2/directory/trusted-issuers/{issuerAddress}/topics returns only the claim topics assigned to one issuer, with its own pagination, filtering, and sorting. Use it when you want to audit an issuer's authorised topics without loading the full issuer record.

The topics list supports filtering by topicId, name, and signature, and global search with filter[q] across all three. You can sort by topicId or name. The signature field is filterable but not sortable. Default sort is by name.

curl --globoff "https://your-platform.example.com/api/v2/directory/trusted-issuers/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/topics?filter[name]=Customer&sort=name" \
  -H "x-api-key: YOUR_API_KEY"
{
  "data": [
    {
      "id": "topic-001",
      "topicId": "1",
      "name": "Know Your Customer",
      "signature": "(string)"
    }
  ],
  "meta": {
    "total": 1,
    "facets": {}
  },
  "links": {
    "self": "/v2/directory/trusted-issuers/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/topics?filter[name]=Customer&sort=name&page[offset]=0&page[limit]=50",
    "first": "/v2/directory/trusted-issuers/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/topics?filter[name]=Customer&sort=name&page[offset]=0&page[limit]=50",
    "prev": null,
    "next": null,
    "last": "/v2/directory/trusted-issuers/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/topics?filter[name]=Customer&sort=name&page[offset]=0&page[limit]=50"
  }
}

When the global registry is unavailable

All three endpoints resolve the platform-wide Trusted Issuers Registry and Topic Scheme Registry from the active network's directory before reading. If the directory address is missing for the active network, or the indexer has not yet processed the global registry, they return DALP-0618 with status 404. Confirm the platform's directory address is configured for the active network and that indexing has caught up, then retry.

When to use it

Use these endpoints when you need to:

  • Produce an audit list of every claim issuer the platform trusts.
  • Confirm which claim topics a given issuer may attest before relying on its claims.
  • Measure how far an issuer reaches across systems through inheritedBySystemsCount before a change.
  • Reconcile platform-wide trust against the issuers configured for an individual system.

For the per-system and per-asset configuration workflow, including how to add or remove issuers and topics, see Configure trusted issuers.

On this page