In this document you'll find all the relevant information to use the Radix Node API in your development projects.
Before you start using the JSON-RPC and REST methods, please review the details regarding authentication and rate limits.
Note: the API endpoints are exposed by all the Nodes of the Radix Universe.
The Node API allows a client to interact directly with a Node connected to the Radix Universe. As seen in the next diagram, a Node API client is connected directly to a specific Node, and can request any of the REST, JSON-PRC or Websockets API methods.
On the other hand, the Radix client libraries are a layer on top of the Node API. These libraries connect to any number of Nodes as needed, and talk to the API on the client's behalf. They process the low-level data (like Atoms) into high-level abstractions, as token transfers and messages.
Tip: if you're looking to develop DApps on the Radix Network, we recommend you to check our Java, JavaScript and Kotlin libraries.
Communication with the Radix network
Interaction with the Radix Universe
​JSON-RPC API support
JSON-RPC over Websockets support
​REST API support
​DSON encoding
Note: API responses can be cached by the web server for up to 10 seconds.
The initial DSON library was put together to satisfy some interoperability issues with JavaScript that other serialization frameworks did not adequately address.
The DSON encoding was defined and built to meet these requirements:
must have the ability to encode/decode both byte-stream and JSON encoded data.
serialization needs to have a well-defined serialized form that can be implemented reasonably easily in other languages. (multi-language support)
Radix nodes and client libraries use JSON encoded DSON for an exchange of data between client and server. Also, clients need to be able to serialize DSON into a byte array to correctly calculate hashes.
Tip: to learn how DSON values are encoded into JSON check this section.
For security reasons, the API requests should comply with the following rate limits:
Traffic source | Rate limit |
localhost | 100 req/s |
remote IPs | 10 req/s |
Note: the values shown above are the default rate limits. These limits can be customized by the Node administrator.
The Node Finder is a node discovery micro-service built in JavaScript using Node.js.
The service crawls the Radix network, verifies the nodes using the Get Network API method, and checks for connected live nodes every minute. On request, the Node Finder will answer with a randomly-selected live node discovered while crawling the network.
This service is not decentralized, and is meant for testing purposes only. It will become a fallback option when the Radix network goes public.
Note: Radix will provide a better and decentralized network discovery option in the future.
curl https://alphanet2.radixdlt.com/node-finder
54.207.126.201
curl https://alphanet2.radixdlt.com/node-finder/list
168.61.34.193168.62.51.2613.66.168.24613.66.213.5040.91.210.108104.45.18.10513.67.77.24313.67.90.17191.239.255.182191.239.245.4754.232.208.9218.231.180.23718.231.160.1253.8.1.15135.178.245.18418.228.232.2918.130.14.4118.130.107.10554.233.178.983.8.139.5418.228.19.24134.217.100.7435.211.243.202110.232.118.5735.240.236.142