Thursday, June 29, 2023

Release: mx-api-service - v1.1.0

Most important features to Github migration

In attention of the validators:
In order to support the Staking Provider with the reflection of their data in the internals of the API we had to refactor the way identities are fetched. It started initially as a feature, it transformed in the end to a complete refactoring of the way the identities are resolved for nodes.

Github link: #1045

Finalize transaction batch support

All transactions from a batch already contain transaction signatures so having also native auth support for triggering batches/requesting status was redundant.

Github link: #1041

Add support for Guardians

We added a new method applyGuardianInfo to the AccountService class that retrieves and applies Guardian data to an AccountDetailed object. This method is used in the existing getAccount method to optionally fetch Guardian information and add it to the result. We also added two new query parameters to the getAccountDetails endpoint: withGuardianInfo and fields.

  • withGuardianInfo: is a boolean flag that indicates whether to include guardian-related information in the response or not;
  • fields: is an array of strings that specifies which optional fields to include in the response (e.g. txCount, scrCount, etc.).

Also updating the getAccountDetails implementation was needed so that it passes the withGuardianInfo and fields parameters to the getAccount method on the AccountService.

Endpoint: GET accounts/:address?withGuardianInfo=true/false


GET accounts/erd1wh9c0sjr2xn8hzf02lwwcr4jk2s84tat9ud2kaq6zr7xzpvl9l5q8awmex?withGuardianInfo=true -> should return guardian extra fields

Unknown block type "codeSnippet", specify a component for it in the `components.types` option

Github link: #1028

Merge all caching service

We targeted to merge all caching services in order to do that we also had to Migrate API to CacheService.

Github link: #1024

A list of other exciting features that we are releasing:

  • JWT or native auth for cache controllers (PR: #976) ;
  • More precision for node versions (PR: #979) ;
  • Add filter by EGLD (PR: #982) ;
  • Filter accounts by ownerAddres (PR: #980) ;
  • Expose transaction pool endpoint (PR: #983) ;
  • Remove unnecessary logs (PR: #990)
  • Add before and after query parameters for accounts history (PR: #988)
  • Add scheduledRootHash block field (PR: #989)
  • Support for multiple miniblocks hashes (PR: #991)
  • Provide token collection in account tokens endpoints if MetaESDT (PR: #992)
  • Provide token nonce in account tokens endpoints if meta esdt (PR: #994)
  • Support for extra block info for transactions endpoint (PR: #995)
  • Add block info fields when withBlockInfo = false (PR: #996)
  • Add metrics for inter cluster checks (PR: #1004)
  • Add support for guardian fields (PR: #981)
  • Update holder count for MetaESDTs (PR: #1005)
  • Extract price from data api in assets (PR: #1006)
  • Account token history by collection / nft (PR: #1009)
  • Add account token history count (PR: #1011)
  • Native auth guards only (PR: #1020)
  • Support for multiple function search (PR: #1021)
  • Fetch token prices from data-api (PR: #1019)
  • Latest block endpoint (PR: #1025)
  • Support for provider avatar (PR: #1027)
  • Remove support for keybase pub (PR: #1029)
  • Support for guardian data in transaction details (PR: #1037)
  • Elasticsearch fallback when trie timeout (PR: #1042)
  • Extra logging for GitHub validation (PR: #1043)
  • Support for egld token filter in transfers endpoint (PR: #1047)
  • Owner invalidation in case of makeNewContractFromValidatorData function (PR: #1048)
  • Filter transactions by no function (PR: #1050)
  • Add support for miniblock type filter (PR: #1051)
  • Expose gas configs endpoint (PR: #1053)
  • Add exchange filter (PR: #1058)
  • Add inTransit transaction field (PR: #1061)
  • Support for invalid block in miniblocks type filter (PR: #1057)
  • Support for guardian in transaction batch endpoint (PR: #1065)
  • If address is staking provider, return owner from provider details (PR: #1068)
  • Identity data in provider details (PR: #1072)
  • Add remainingUnbondPeriod (PR: #1078)
  • Get collection properties from gateway (PR: #1077)
  • Add support for remainingUnbondPeriod for account keys (PR: #1079)
  • Collection name fallback in transaction operation (PR: #1081)


Some of the most notable bugfixes are:

  • Fix required fields for upgrades endpoint (PR: #977)
  • Update SDK Nestjs to latest version (PR: #986)
  • Count token accounts in chunks (PR: #993)
  • handle situations where token properties can be null (PR: #999)
  • Delegation shard (PR: #1002)
  • Fix WEGLD in mex tokens endpoint (PR: #1008)
  • Search by proper field in accountsesdthistory index (PR: #1010)
  • Fix account stake endpoint crash (PR: #1012)
  • Improve ttl for extended attributes activation nonce (PR: #1023)
  • Changed cache key for identity profile (PR: #1030)
  • update swagger account endpoint (PR: #1031)
  • add support for function filter on tokens transfers route (PR: #1033)
  • Case insensitive search for collections (PR: #1036)
  • ffmpeg generate waveform from audio file handle error (PR: #1044)
  • Trim url when generating thumbnail (PR: #1046)
  • Expose Websocket port only on public api instances (PR: #1054)
  • Handle vm query error for getMetaData function (PR: #1064)
  • fix winston imports (PR: #1066)
  • When topUp is 0, topUpReturn = 0 (PR: #1067)
  • return empty array if no upgrades are available for address (PR: #1074)
  • Fix account token identifier if fetched from ElasticSearch (PR: #1070)
  • Fix account transfers sender receiver (PR: #1071)

Here you can find all Github Release Notes details.

In conclusion, this release brings several significant improvements and exciting new features. The migration from to GitHub provides enhanced functionality and ensures seamless integration for Staking Providers. The refactoring of identity fetching supports the reflection of data within the API's internals. Additionally, transaction batch support has been finalized, eliminating redundancy by leveraging existing transaction signatures.

A notable addition is the support for Guardians, introducing the "applyGuardianInfo" method and new query parameters to retrieve and apply Guardian data to AccountDetailed objects. This empowers users to include guardian-related information in their responses and select specific optional fields.

As always, feel free to get in touch with us on Telegram or Discord. We encourage you to continue providing feedback and to let us know if you have any further questions or concerns. Your input is crucial to the success of MultiversX, and we are grateful for your support.

Stay Hungry! Stay Foolish!

Do you need more information?

Explore projects, tokens, and integrations built on MultiversX