Retrieve Tokens Catalog
Centralized solution designed to aggregate and provide seamless access to both on-chain and off-chain data related to ERC-3643 tokens deployed by Tokeny Factory. This API serves as a key resource for distributors, enabling them to retrieve comprehensive information about tokens, including metadata, compliance details, and network-specific attributes.
By consolidating this data into a single endpoint, the API simplifies the distribution process, ensuring that distributors have the insights needed to effectively list and manage tokens across multiple platforms.
Note:
As owner you can control whether distributors have access to your token data. Ensure that your token is marked as publishable before retrieving the catalog API.
Prerequisites:
To complete this use case, you will need to authenticate your request(s). You can generate your token by following these steps:
- Make sure to leverage an existing account from the correct role, e.g. Agent, Owner, Investor, etc.
- If this use case requires you to leverage an Agent account, make sure your 2FA is disabled via the Servicing portal.
- Navigate to the "Getting API access" page to generate the required JWT, thanks to your credentials.
- Add the JWT to the header of your request.
List of Catalog Endpoints
Method | Endpoint |
---|---|
GET | distribution-api.tokeny.com/api/catalog |
Permissions
Data returned depends on the user's role and token permissions:
Role/Permission | Data Accessible | Requirements |
---|---|---|
Public | On-chain information associated with a token. | |
Owner/Agent | On-chain information and additional details specific to tokens you own or manage. | Requires to be the owner or an agent of the token. |
Authorized Distributor | On-chain information and data explicitly authorized for access by the token owners. | Requires an API key. More info in Getting API access. |
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
tokenIds | string | No | Filter by token id across all networks. |
addresses | string | No | Filter by token address across all networks. |
limit | integer | No | Number of tokens per page. Default is 10 . |
offset | integer | No | Starting index for paginated results. Default is 0 . |
Response
The response is paginated and includes deployed token data, with access determined by the user's role.
Asset Portals: Provides URLs for applications used to manage the token portfolio.
Documents: are available only to the token owner or agent.
Primary Market: Returns an empty response if no subscription or redemption is configured.
Subscription: Returns the active subscription or, if none, the closest upcoming one (past subscriptions are excluded). The subscription type can be CLOSE_ENDED
or OPEN_ENDED
.
Redemption: Returns the active redemption or, if none, the closest upcoming one (past redemptions are excluded). The redemption type can only be OPEN_ENDED
.
Secondary Market: Returns an empty response if no billboard or exchange is configured.
{
"totalItemsFound": 0,
"items": [
{
"tokenData": {
"id": "string",
"symbol": "string",
"name": "string",
"blockchainAddresses": {
"tokenAddress": "string",
"identityRegistryAddress": "string",
"identityStorageAddress": "string",
"complianceAddress": "string",
"claimsTopicsRegistryAddress": "string",
"claimsIssuersRegistryAddress": "string"
},
"blockchainNetwork": {
"name": "string",
"chain": "string",
"chainId": 0,
"privacy": "string",
"testnet": true
},
"ownerAddress": "string",
"protocol": "string",
"protocolVersion": "string",
"baseCurrency": "string",
"decimals": 0,
"explorerUrl": "string",
"tokenLogoUrl": "string",
"totalSupply": 0,
"holdersNumber": 0,
"tokenPaused": true,
"createdAt": "string",
"updatedAt": "string"
},
"tokenCompliance": {
"jurisdiction": {
"moduleAddress": "string",
"allowedCountries": [
"string"
]
},
"supplyLimit": {
"moduleAddress": "string",
"supplyLimit": 0
},
"investorLimit": {
"moduleAddress": "string",
"supplyLimit": 0
},
"transferLimit": {
"moduleAddress": "string",
"limits": [
{
"timePeriod": "string",
"amount": "string"
}
]
},
"conditionalTransfers": {
"moduleAddress": "string",
"approvers": [
{
"recipientApproval": true,
"agentApproval": true,
"walletsApproval": [
"string"
]
}
]
},
"transferAllowlisting": {
"moduleAddress": "string",
"allowedUsers": [
"string"
]
},
"transferFees": {
"moduleAddress": "string",
"fees": {
"fee": "string",
"collectorWallet": "string"
}
},
"custom": [
{
"moduleAddress": "string",
"moduleName": "string",
"moduleDescription": "string"
}
]
},
"assetData": {
"isin": "string",
"assetType": "string",
"dti": "string",
"dtiType": "string",
"issuer": {
"name": "string",
"vlei": "string"
},
"nav": {
"lastNavDateTime": "string",
"lastNavValue": 0
},
"assetPortals": [
{
"name": "string",
"url": "string"
}
],
"documents": [
{
"name": "string",
"language": "string",
"url": "string",
"uploadDate": "string"
}
]
},
"projectData": {
"title": "string",
"subtitle": "string",
"shortDescription": "string",
"longDescription": "string",
"additionalData": [
{
"label": "string",
"type": "string",
"value": 0
}
],
"links": {
"facebook": "string",
"instagram": "string",
"linkedin": "string",
"medium": "string",
"telegram": "string",
"twitter": "string",
"website": "string",
"youtube": "string",
"supportEmail": "string"
},
"teamMembers": [
{
"name": "string",
"url": "string",
"uploadDate": "string"
}
],
"documents": [
{
"name": "string",
"url": "string",
"uploadDate": "string"
}
]
},
"primaryMarket": {
"primaryMarketPortals": [
{
"name": "string",
"url": "string"
}
],
"qualificationPortals": [
{
"name": "string",
"url": "string"
}
],
"subscription": {
"startDate": "string",
"endDate": "string",
"type": "CLOSE_ENDED",
"baseCurrency": "string",
"supportedCurrencies": [
"string"
],
"caps": {
"minOrder": "string",
"maxOrder": "string",
"minCap": "string",
"maxCap": "string"
},
"price": "string",
"nav": {
"lastNavDateTime": "string",
"lastNavValue": 0
},
"cutOffTime": "string",
"settlementDate": "string",
"fees": {
"type": "string",
"value": "string"
}
},
"redemption": {
"startDate": "string",
"endDate": "string",
"type": "CLOSE_ENDED",
"baseCurrency": "string",
"supportedCurrencies": [
"string"
],
"price": "string",
"nav": {
"lastNavDateTime": "string",
"lastNavValue": 0
},
"cutOffTime": "string",
"settlementDate": "string",
"fees": {
"type": "string",
"value": "string"
}
}
},
"secondaryMarket": {
"qualificationPortals": [
{
"name": "string",
"url": "string"
}
],
"billboard": {
"url": "string",
"tradableTo": [
"string"
]
},
"exchanges": [
{
"name": "string",
"url": "string"
}
]
}
}
]
}
Behavioral Rules
Filters Applied Always
- Only deployed tokens are returned.
- Only ERC-3643 tokens are included.
Subscriptions and Redemptions
- Return only one:
- Active if exists.
- Next closest in the future if active does not exist.
- None otherwise.
Field Visibility Based on Role
- Public data is always included.
- Agent or distributor data is conditionally included.
Updated 7 days ago