What Is ICON (ICX)?
ICON is a general purpose blockchain ecosystem with a focus on linking different blockchains together. The purpose of this documentation is to inform technical users, including developers, power-users, and enthusiasts, of how the network is setup and how to utilize the various components of it. This is an open-source community effort, so feel free to suggest new topics, add new content, and provide examples wherever you think it might be helpful. Please open a merge request on the Github repository, or if you want to be more heavily involved, open an issue to have access to edit via the Gitbook app.
ICON Storage Key Points
|Circulating Supply||919,483,096.00 ICX|
|Source Code||Click Here To View Source Code|
|Explorers||Click Here To View Explorers|
|Twitter Page||Click Here To Visit Twitter Group|
|Whitepaper||Click Here To View|
|Official Project Website||Click Here To Visit Project Website|
How to create an ICON account
Install the Hana Wallet extension for a Google Chrome-based browser (Chrome, Chromium, Brave, Edge). If you intend to use Ledger hardware wallet, then be sure to set that up as well. If you intend to use the goloop cli directly, then you must have that installed and setup. See the instructions on how to setup goloop. Click on the extension to open it in a new tab, and the user interface will guide you through the process of setting up an account. Be sure to keep your password and recovery material secure. You need to optimize your jar bundle before you deploy it to local or ICON networks. This involves some pre-processing to ensure the actual deployment successful.
How to estimate required STEP
It is important to set a proper value in your transaction to make the submitted transaction executed successfully. This document explains how to systemically estimate the required Step. To learn how to estimate the required Step for their transactions using SDKs, T-Bears CLI or JSON-RPC API calls. The following example is a transaction request message that will invoke the transfer method on the IRC2 token contract.
Using various SDKs, you can integrate the functionality in your DApp. Please be aware that the returned value is just an ESTIMATION. The block state may not remain the same between the Step estimation and the actual transaction execution time. The required Step can be different if the block state changes.
How to use the JSON-RPC API
When a user sends a transaction, they need to sign the data with their own private key. There are two major steps involved in signing the transaction, serializing the original transaction data and generating a signature with user’s own private key. This document describes the process of generating a digital signature of transaction data. Someone who wants to develop the program which communicates with ICON network with languages whose SDK is unsupported.
Before signing the data, the data needs to be serialized as bytes. This section describes how to serialize the transaction data. This document does not describe how to make the transaction data itself. Transaction message specification is defined in JSON-RPC API v3.
The first step is making a serialized signature. Using the library, create a recoverable ECDSA signature of a transaction hash. This ensures that the transaction was originated from the private key owner, and the transaction message received by the recipient is not compromised. The resulting output should be 64 bytes serialized signature (R, S) with 1 byte recovery id (V). The final step is to encode the generated signature as a Base64-encoded string. Below is the example of creating a signature in python. Here is a sample transaction request message.
ICON will create a signature for the transaction data. So far, they have learned about the rule of serializing transaction data, a process of converting from serialized transaction data to transaction signature and the list of libraries used to generate a signature. Be aware that you can not generate a valid transaction signature if you omit process or break any rule.