Skip to main content

How to query JSON RPC endpoints

Overview#

The JSON-RPC layer of the Polygon SDK provides developers with the functionality of easily interacting with the blockchain, through HTTP requests.

This example covers using tools like curl to query information, as well as starting the chain with a premined account, and sending a transaction.

Step 1: Create a genesis file with a premined account#

To generate a genesis file, run the following command:

go run main.go genesis --premine 0x1010101010101010101010101010101010101010

The premine flag sets the address that should be included with a starting balance in the genesis file.
In this case, the address 0x1010101010101010101010101010101010101010 will have a starting default balance of 0x100000000000000000000000000.

If we wanted to specify a balance, we can separate out the balance and address with a :, like so:

go run main.go genesis --premine 0x1010101010101010101010101010101010101010:0x123123

The balance can be either a hex or uint256 value.

Step 2: Start the Polygon SDK in dev mode#

To start the SDK in development mode, which is explained in the CLI Commands section, run the following:

go run main.go server --chain genesis.json --dev --log-level debug

Step 3: Query the account balance#

Now that the client is up and running in dev mode, using the genesis file generated in step 1, we can use a tool like curl to query the account balance:

curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x1010101010101010101010101010101010101010", "latest"],"id":1}' localhost:8545

The command should return the following output:

{
"id":1,
"result":"0x100000000000000000000000000"
}

Step 4: Send a transfer transaction#

Now that we've confirmed the account we set up as premined has the correct balance, we can transfer some ether:

go run main.go txpool add --nonce 0 --from 0x1010101010101010101010101010101010101010 --to 0x0000000000000000000000000000000000000010 --value 0x100

The txpool add command adds the transaction to the transaction pool.

In this case, the transfer is from 0x1010101010101010101010101010101010101010 to 0x0000000000000000000000000000000000000010, with the value being 0x100 wei.