caver.rpc.klay

caver.rpc.klay provides JSON-RPC call with klay name space.

caver.rpc.klay.accountCreated

caver.rpc.klay.accountCreated(address [, blockNumber] [, callback])

Returns true if the account associated with the address is created in the Klaytn blockchain platform. It returns false otherwise.

Parameters

Name

Type

Description

address

string

The address of the account you want to query to see if it has been created on the network.

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns boolean

Type

Description

boolean

The existence of an input address in the Klaytn.

Example

> caver.rpc.klay.accountCreated('0x{address in hex}').then(console.log)
true

caver.rpc.klay.getAccount

caver.rpc.klay.getAccount(address [, blockNumber] [, callback])

Returns the account information of a given address in the Klaytn. For more details about the types of an account in Klaytn, please refer to Klaytn Account Types.

NOTE caver.rpc.klay.getAccount returns the account that exists on the network, so null is returned if the account matching the address does not exist on the actual blockchain network.

Parameters

Name

Type

Description

address

string

The address of the account for which you want to get account information.

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

Type

Description

object

An object that contains the account information. Each account type has different attributes.

Example

// Get account with EOA
> caver.rpc.klay.getAccount('0x{address in hex}').then(console.log)
{
accType: 1,
account: {
nonce: 0,
balance: '0x',
humanReadable: false,
key: { keyType: 1, key: {} }
}
}
// Get account with SCA
> caver.rpc.klay.getAccount('0x{address in hex}').then(console.log)
{
accType: 2,
account: {
nonce: 1,
balance: '0x0',
humanReadable: false,
key: { keyType: 3, key: {} },
storageRoot: '0xd0ce6b9ba63cf727d48833bcaf69f398bb353e9a5b6235ac5bb3a8e95ff90ecf',
codeHash: '7pemrmP8fcguH/ut/SYHJoUSecfUIcUyeCpMf0sBYVI=',
codeFormat: 0
}
}

caver.rpc.klay.getAccountKey

caver.rpc.klay.getAccountKey(address [, blockNumber] [, callback])

Returns AccountKey of a given address. If the account has AccountKeyLegacy or the account of the given address is a Smart Contract Account, it will return an empty key value. Please refer to Account Key for more details.

NOTE caver.rpc.klay.getAccountKey returns an object that differs by each AccountKey type. If a Klaytn account matching the given address does not exist in the network, null is returned.

Parameters

Name

Type

Description

address

string

The address of Klaytn account from which you want to get an object of AccountKey information.

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

Type

Description

object

An object that contains AccountKey information. Each AccountKey type has different attributes.

Example

// AccountKey type: AccountKeyLegacy
> caver.rpc.klay.getAccountKey('0x{address in hex}').then(console.log)
{ keyType: 1, key: {} }
// AccountKey type: AccountKeyPublic
> caver.rpc.klay.getAccountKey('0x{address in hex}').then(console.log)
{
keyType: 2,
key: { x:'0xb9a4b...', y:'0x7a285...' }
}
// AccountKey type: AccountKeyFail
> caver.rpc.klay.getAccountKey('0x{address in hex}').then(console.log)
{ keyType: 3, key:{} }
// AccountKey type: AccountKeyWeightedMultiSig
> caver.rpc.klay.getAccountKey('0x{address in hex}').then(console.log)
{
keyType: 4,
key: {
threshold: 2,
keys: [
{
weight: 1,
key: { x: '0xae6b7...', y: '0x79ddf...' }
},
{
weight: 1,
key: { x: '0xd4256...', y: '0xfc5e7...' }
},
{
weight: 1,
key: { x: '0xd653e...', y: '0xe974e...' }
}
]
}
}
// AccountKey type: AccountKeyRoleBased
> caver.rpc.klay.getAccountKey('0x{address in hex}').then(console.log)
{
keyType: 5,
key: [
{
key: { x: '0x81965...', y: '0x18242...' },
keyType: 2
},
{
key: { x: '0x73363...', y: '0xfc3e3...' },
keyType: 2
},
{
key: { x: '0x95c92...', y: '0xef783...' },
keyType: 2
}
]
}

caver.rpc.klay.encodeAccountKey

caver.rpc.klay.encodeAccountKey(accountKey [, callback])

Encodes an object that contains AccountKey information using the Recursive Length Prefix (RLP) encoding scheme. Also you can use account.getRLPEncodingAccountKey to get RLP-encoded AccountKey.

Parameters

Name

Type

Description

accountKey

object

An object defines keyType and key inside or an instance of AccountKey (AccountKeyLegacy, AccountKeyPublic, AccountKeyFail, AccountKeyWeightedMultiSig or AccountKeyRoleBased).

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

Type

Description

string

A RLP-encoded AccountKey.

Example

// AccountKey type: AccountKeyLegacy
> caver.rpc.klay.encodeAccountKey({ keyType: 1, key: {} }).then(console.log)
0x01c0
// AccountKey type: AccountKeyPublic
> caver.rpc.klay.encodeAccountKey({
keyType: 2,
key: {
x: '0xdbac81e8486d68eac4e6ef9db617f7fbd79a04a3b323c982a09cdfc61f0ae0e8',
y: '0x906d7170ba349c86879fb8006134cbf57bda9db9214a90b607b6b4ab57fc026e',
},
}).then(console.log)
0x02a102dbac81e8486d68eac4e6ef9db617f7fbd79a04a3b323c982a09cdfc61f0ae0e8
// AccountKey type: AccountKeyFail
> caver.rpc.klay.encodeAccountKey({ keyType: 3, key: {} }).then(console.log)
0x03c0
// AccountKey type: AccountKeyWeightedMultiSig
> caver.rpc.klay.encodeAccountKey({
keyType: 4,
key: {
threshold: 2,
keys: [
{
weight: 1,
key: {
x: '0xc734b50ddb229be5e929fc4aa8080ae8240a802d23d3290e5e6156ce029b110e',
y: '0x61a443ac3ffff164d1fb3617875f07641014cf17af6b7dc38e429fe838763712',
},
},
{
weight: 1,
key: {
x: '0x12d45f1cc56fbd6cd8fc877ab63b5092ac77db907a8a42c41dad3e98d7c64dfb',
y: '0x8ef355a8d524eb444eba507f236309ce08370debaa136cb91b2f445774bff842',
},
},
],
},
}).then(console.log)
0x04f84b02f848e301a102c734b50ddb229be5e929fc4aa8080ae8240a802d23d3290e5e6156ce029b110ee301a10212d45f1cc56fbd6cd8fc877ab63b5092ac77db907a8a42c41dad3e98d7c64dfb
// AccountKey type: AccountKeyRoleBased
> caver.rpc.klay.encodeAccountKey({
keyType: 5,
key: [
{
keyType: 2,
key: {
x: '0xe4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512d',
y: '0xa5735a23ce1654b14680054a993441eae7c261983a56f8e0da61280758b5919',
},
},
{
keyType: 4,
key: {
threshold: 2,
keys: [
{
weight: 1,
key: {
x: '0xe4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512d',
y: '0xa5735a23ce1654b14680054a993441eae7c261983a56f8e0da61280758b5919',
},
},
{
weight: 1,
key: {
x: '0x36f6355f5b532c3c1606f18fa2be7a16ae200c5159c8031dd25bfa389a4c9c06',
y: '0x6fdf9fc87a16ac359e66d9761445d5ccbb417fb7757a3f5209d713824596a50d',
},
},
],
},
},
{
keyType: 2,
key: {
x: '0xc8785266510368d9372badd4c7f4a94b692e82ba74e0b5e26b34558b0f081447',
y: '0x94c27901465af0a703859ab47f8ae17e54aaba453b7cde5a6a9e4a32d45d72b2',
},
},
],
}).then(console.log)
0x05f898a302a103e4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512db84e04f84b02f848e301a103e4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512de301a10336f6355f5b532c3c160
// Use an AccountKey instance
> const accountKey = caver.account.create('0x{address in hex}', '0xf1d2e...').accountKey
> caver.rpc.klay.encodeAccountKey(accountKey).then(console.log)
0x02a102f1d2e558cfa07151534cd406b1ac5c25d99e9c1cf925328d14fd15c6fe50df27

caver.rpc.klay.decodeAccountKey

caver.rpc.klay.decodeAccountKey(encodedKey [, callback])

Decodes a RLP-encoded AccountKey. Also you can use caver.account.accountKey.decode to decode a RLP-encoded AccountKey.

Parameters

Name

Type

Description

encodedKey

string

A RLP-encoded AccountKey.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

Type

Description

object

An object defines keyType and key inside.

Example

// AccountKey type: AccountKeyLegacy
> caver.rpc.klay.decodeAccountKey('0x01c0').then(console.log)
{ keyType: 1, key: {} }
// AccountKey type: AccountKeyPublic
> caver.rpc.klay.decodeAccountKey('0x02a102dbac81e8486d68eac4e6ef9db617f7fbd79a04a3b323c982a09cdfc61f0ae0e8').then(console.log)
{
keyType: 2,
key: {
x: '0xdbac81e8486d68eac4e6ef9db617f7fbd79a04a3b323c982a09cdfc61f0ae0e8',
y: '0x906d7170ba349c86879fb8006134cbf57bda9db9214a90b607b6b4ab57fc026e',
},
}
// AccountKey type: AccountKeyFail
> caver.rpc.klay.decodeAccountKey('0x03c0').then(console.log)
{ keyType: 3, key: {} }
// AccountKey type: AccountKeyWeightedMultiSig
> caver.rpc.klay.decodeAccountKey('0x04f84b02f848e301a102c734b50ddb229be5e929fc4aa8080ae8240a802d23d3290e5e6156ce029b110ee301a10212d45f1cc56fbd6cd8fc877ab63b5092ac77db907a8a42c41dad3e98d7c64dfb').then(console.log)
{
keyType: 4,
key: {
threshold: 2,
keys: [
{
weight: 1,
key: {
x: '0xc734b50ddb229be5e929fc4aa8080ae8240a802d23d3290e5e6156ce029b110e',
y: '0x61a443ac3ffff164d1fb3617875f07641014cf17af6b7dc38e429fe838763712',
},
},
{
weight: 1,
key: {
x: '0x12d45f1cc56fbd6cd8fc877ab63b5092ac77db907a8a42c41dad3e98d7c64dfb',
y: '0x8ef355a8d524eb444eba507f236309ce08370debaa136cb91b2f445774bff842',
},
},
],
},
}
// AccountKey type: AccountKeyRoleBased
> caver.rpc.klay.decodeAccountKey('0x05f898a302a103e4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512db84e04f84b02f848e301a103e4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512de301a10336f6355f5b532c3c160').then(console.log)
{
keyType: 5,
key: [
{
keyType: 2,
key: {
x: '0xe4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512d',
y: '0xa5735a23ce1654b14680054a993441eae7c261983a56f8e0da61280758b5919',
},
},
{
keyType: 4,
key: {
threshold: 2,
keys: [
{
weight: 1,
key: {
x: '0xe4a01407460c1c03ac0c82fd84f303a699b210c0b054f4aff72ff7dcdf01512d',
y: '0xa5735a23ce1654b14680054a993441eae7c261983a56f8e0da61280758b5919',
},
},
{
weight: 1,
key: {
x: '0x36f6355f5b532c3c1606f18fa2be7a16ae200c5159c8031dd25bfa389a4c9c06',
y: '0x6fdf9fc87a16ac359e66d9761445d5ccbb417fb7757a3f5209d713824596a50d',
},
},
],
},
},
{
keyType: 2,
key: {
x: '0xc8785266510368d9372badd4c7f4a94b692e82ba74e0b5e26b34558b0f081447',
y: '0x94c27901465af0a703859ab47f8ae17e54aaba453b7cde5a6a9e4a32d45d72b2',
},
},
],
}

caver.rpc.klay.getBalance

caver.rpc.klay.getBalance(address [, blockNumber] [, callback])

Returns the balance of the account of the given address in Klaytn.

Parameters

Name

Type

Description

address

string

The address of the account for which you want to get balance.

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

Type

Description

string

The current balance for the given address in peb.

Example

> caver.rpc.klay.getBalance('0x{address in hex}').then(console.log)
0xde0b6b3a7640000

caver.rpc.klay.getCode

caver.rpc.klay.getCode(address [, blockNumber] [, callback])

Returns code at a given address.

Parameters

Name

Type

Description

address

string

The address to get the code from.

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

Type

Description

string

The code from the given address.

Example

> caver.rpc.klay.getCode('0x{address in hex}').then(console.log)
0x60806...

caver.rpc.klay.getTransactionCount

caver.rpc.klay.getTransactionCount(address [, blockNumber] [, callback])

Returns the total number of transactions sent from an address.

Parameters

Name

Type

Description

address

string

The address to get the number of transactions from.

blockNumber

number | string

(optional) A block number, the string pending for the pending nonce, or the string earliest or latest as in the default block parameter. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

[]

Return Value

Promise returns string

Type

Description

string

The number of transactions sent from the given address in hex.

Example

> caver.rpc.klay.getTransactionCount('0x{address in hex}').then(console.log)
0x5f

caver.rpc.klay.isContractAccount

caver.rpc.klay.isContractAccount(address [, blockNumber] [, callback])

Returns true if an input account has a non-empty codeHash at the time of a specific block number. It returns false if the account is an EOA or a smart contract account which doesn't have codeHash. Please refer to Smart Contract Account for more details.

Parameters

Name

Type

Description

address

string

The address you want to check for isContractAccount.

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns boolean

Type

Description

boolean

true means the input parameter is an existing smart contract address.

Example

> caver.rpc.klay.isContractAccount('0x{address in hex}').then(console.log)
false
> caver.rpc.klay.isContractAccount('0x{address in hex}').then(console.log)
true

caver.rpc.klay.sign

caver.rpc.klay.sign(address, message [, blockNumber] [, callback])

Generates signed data specific to the Klaytn. Refer to Klaytn Platform API - klay_sign to know how the signature is generated.

NOTE: This API provides the function to sign a message using an imported account in your Klaytn node. The imported account in your node must be unlocked to sign the message. To sign a transaction with imported account in your Klaytn node, use caver.rpc.klay.signTransaction.

Parameters

Name

Type

Description

address

String

The address of the imported account to sign the message.

message

String

Message to sign.

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

Type

Description

string

The signature made from an imported account.

Example

> caver.rpc.klay.sign('0x{address in hex}', '0xdeadbeaf').then(console.log)
0x1066e052c4be821daa4d0a0cd1e9e75ccb200bb4001c2e38853ba41b712a5a226da2acd67c86a13b266e0d75d0a6e7d1551c8924af413267615a5948617c746c1c

caver.rpc.klay.getAccounts

caver.rpc.klay.getAccounts([callback])

Returns a list of addresses owned by the Klaytn Node.

Parameters

Name

Type

Description

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns Array

Type

Description

Array

An array of addresses owned by the Klaytn Node.

Example

> caver.rpc.klay.getAccounts().then(console.log)
[
'0xe1531e916857d1b3a7db92f9187b96a7b43813bf',
'0x75331c25535052157ff5110ba7d0cf940d3a9ca6'
]

caver.rpc.klay.getBlockNumber

caver.rpc.klay.getBlockNumber([callback])

Returns the number of the most recent block.

Parameters

Name

Type

Description

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

Type

Description

string

The number of the most recent block in hex.

Example

> caver.rpc.klay.getBlockNumber().then(console.log)
0x5d39

caver.rpc.klay.getBlockByNumber

caver.rpc.klay.getBlockByNumber(blockNumber [, returnTransactionObjects] [, callback])

Returns information about a block by block number. This API works only on RPC call, not on Javascript console.

Parameters

Name

Type

Description

blockNumber

number | string

The block number or the block which is tagged with a string (genesis or latest).

returnTransactionObjects

boolean

(optional, default false) If true, the returned block will contain all transactions as objects, and if false, it will only contain the transaction hashes.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

Type

Description

string

A block object. For detailed description of return value, please refer to caver.rpc.klay.getBlockByHash.

Example

> caver.rpc.klay.getBlockByNumber(1).then(console.log)
{
blockscore: '0x1',
extraData: '0xd8830...',
gasUsed: '0x0',
governanceData: '0x',
hash: '0x58482921af951cf42a069436ac9338de50fd963bdbea40e396f416f9ac96a08b',
logsBloom: '0x00000...',
number: '0x1',
parentHash: '0x6b7c0a49f445d39b6d7dc9ba5b593b326f3a953e75ff1fcf64b9a5fa51c2725b',
receiptsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470',
reward: '0xddc2002b729676dfd906484d35bb02a8634d7040',
size: '0x285',
stateRoot: '0xb88b6110e6f73b732714bb346e6ff24beb480c0dc901a55be24e38ad1c6d5fa9',
timestamp: '0x5ee7fe9f',
timestampFoS: '0xd',
totalBlockScore: '0x2',
transactions: [],
transactionsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470',
voteData: '0x'
}

caver.rpc.klay.getBlockByHash

caver.rpc.klay.getBlockByHash(blockHash [, returnTransactionObjects] [, callback])

Returns the block number of the most recent block by using blockHash.

Parameters

Name

Type

Description

blockHash

string

The block hash.

returnTransactionObjects

boolean

(optional, default false) If true, the returned block will contain all transactions as objects, and if false, it will only contain the transaction hashes.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object - An object includes block:

Name

Type

Description

blockScore

string

The difficulty of mining in the blockchain network. The use of blockScore differs from the consensus of the network. Always 1 in the BFT consensus engine.

extraData

string

The "extra data" field of this block.

gasUsed

string

The gas in total that was used by all transactions in this block.

governanceData

string

RLP encoded governance configuration

hash

string

Hash of the block. null when it is a pending block.

logsBloom

string

The bloom filter for the logs of the block. null when it is a pending block.

number

string

The block number. null when it is a pending block.

parentHash

string

Hash of the parent block.

receiptsRoot

string

The root of the receipts trie of the block.

reward

string

The address of the beneficiary to whom the block rewards were given.

size

string

Integer the size of this block in bytes.

stateRoot

string

The root of the final state trie of the block.

timestamp

string

The unix timestamp for when the block was collated.

timestampFoS

string

The fraction of a second of the timestamp for when the block was collated.

totalBlockScore

string

Integer of the total blockScore of the chain until this block.

transactions

Array

Array of transaction objects, or 32-byte transaction hashes depending on the returnTransactionObjects parameter.

transactionsRoot

string

The root of the transaction trie of the block.

voteData

string

RLP encoded governance vote of the proposer.

Example

> caver.rpc.klay.getBlockByHash('0x58482921af951cf42a069436ac9338de50fd963bdbea40e396f416f9ac96a08b').then(console.log)
{
blockscore: '0x1',
extraData: '0xd8830...',
gasUsed: '0x0',
governanceData: '0x',
hash: '0x58482921af951cf42a069436ac9338de50fd963bdbea40e396f416f9ac96a08b',
logsBloom: '0x00000...',
number: '0x1',
parentHash: '0x6b7c0a49f445d39b6d7dc9ba5b593b326f3a953e75ff1fcf64b9a5fa51c2725b',
receiptsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470',
reward: '0xddc2002b729676dfd906484d35bb02a8634d7040',
size: '0x285',
stateRoot: '0xb88b6110e6f73b732714bb346e6ff24beb480c0dc901a55be24e38ad1c6d5fa9',
timestamp: '0x5ee7fe9f',
timestampFoS: '0xd',
totalBlockScore: '0x2',
transactions: [],
transactionsRoot: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470',
voteData: '0x'
}

caver.rpc.klay.getBlockReceipts

caver.rpc.klay.getBlockReceipts(blockHash [, callback])

Returns receipts included in a block identified by block hash.

Parameters

Name

Type

Description

blockHash

string

The block hash.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns Array

Type

Description

Array

The transaction receipts included in a block. If the target block contains no transaction, an empty array [] is returned. For detailed description of transaction receipt, please refer to caver.rpc.klay.getTransactionReceipt.

Example

> caver.rpc.klay.getBlockReceipts('0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0').then(console.log)
[
{
blockHash: '0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0',
blockNumber: '0x5301',
contractAddress: null,
from: '0xddc2002b729676dfd906484d35bb02a8634d7040',
gas: '0x61a8',
gasPrice: '0x5d21dba00',
gasUsed: '0x5208',
logs: [],
logsBloom: '0x00000...',
nonce: '0x5e',
senderTxHash: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c',
signatures: [
{
V: '0x4e44',
R: '0x98583ffa8d9a6d5f9e60e4daebb33f18e8ad4d32653c4a2fa7f12ce025af763d',
S: '0x9b9e5257293e3b986842b6a203dd16ce46f16ed42dd3e9592fcaab9ea2696cb'
}
],
status: '0x1',
to: '0xc0aabc441129991dd3a9363a9a43b745527ea4e7',
transactionHash: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c',
transactionIndex: '0x0',
type: 'TxTypeValueTransfer',
typeInt: 8,
value: '0xde0b6b3a7640000'
}
]

caver.rpc.klay.getBlockTransactionCountByNumber

caver.rpc.klay.getBlockTransactionCountByNumber(blockNumber [, callback])

Returns the number of transactions in a block matching the given block number.

Parameters

Name

Type

Description

blockNumber

number | string

The block number or the block tag string (genesis or latest).

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

Type

Description

string

The number of transactions in the given block in hex.

Example

> caver.rpc.klay.getBlockTransactionCountByNumber(21249).then(console.log)
0x1

caver.rpc.klay.getBlockTransactionCountByHash

caver.rpc.klay.getBlockTransactionCountByHash(blockHash [, callback])

Returns the number of transactions in a block matching the given block hash.

Parameters

Name

Type

Description

blockHash

string

The block hash.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

Type

Description

string

The number of transactions in the given block in hex.

Example

> caver.rpc.klay.getBlockTransactionCountByHash('0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0').then(console.log)
0x1

caver.rpc.klay.getBlockWithConsensusInfoByNumber

caver.rpc.klay.getBlockWithConsensusInfoByNumber(blockNumber [, callback])

Returns a block with consensus information matched by the given block number.

Parameters

Name

Type

Description

blockNumber

number | string

The block number or the block tag string (genesis or latest).

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

Type

Description

string

An object includes block with consensus information. For detailed description of return value, please refer to caver.rpc.klay.getBlockWithConsensusInfoByHash.

Example

> caver.rpc.klay.getBlockWithConsensusInfoByNumber(21249).then(console.log)
{
blockscore: '0x1',
committee: ['0xddc2002b729676dfd906484d35bb02a8634d7040', '0xa1d2665c4c9f77410844dd4c22ed11aabbd4033e'],
extraData: '0xd8830...',
gasUsed: '0x5208',
governanceData: '0x',
hash: '0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0',
logsBloom: '0x00000...',
number: '0x5301',
parentHash: '0x024f05c0e7428e33331104bedbfc453d481ce6a2f5e57f7fd68a4391ba6c2619',
proposer: '0xa1d2665c4c9f77410844dd4c22ed11aabbd4033e',
receiptsRoot: '0xe38e5532717f12f769b07ea016014bd39b74fb72def4de8442114cc2728609f2',
reward: '0xb74837f495060f3f794dcae8fa3e0c5d3cf99d9f',
size: '0x313',
stateRoot: '0x9964b2d8f23da7383a32ec33c9700a76ebf4a36315c9067c2fef7568d97e1d55',
timestamp: '0x5ee851dd',
timestampFoS: '0x0',
totalBlockScore: '0x5302',
transactions: [
{
blockHash: '0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0',
blockNumber: '0x5301',
contractAddress: null,
from: '0xddc2002b729676dfd906484d35bb02a8634d7040',
gas: '0x61a8',
gasPrice: '0x5d21dba00',
gasUsed: '0x5208',
logs: [],
logsBloom: '0x00000...',
nonce: '0x5e',
senderTxHash: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c',
signatures: {
V: '0x4e44',
R: '0x98583ffa8d9a6d5f9e60e4daebb33f18e8ad4d32653c4a2fa7f12ce025af763d',
S: '0x9b9e5257293e3b986842b6a203dd16ce46f16ed42dd3e9592fcaab9ea2696cb'
},
status: '0x1',
to: '0xc0aabc441129991dd3a9363a9a43b745527ea4e7',
transactionHash: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c',
transactionIndex: '0x0',
type: 'TxTypeValueTransfer',
typeInt: 8,
value: '0xde0b6b3a7640000',
},
],
transactionsRoot: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c',
voteData: '0x',
}

caver.rpc.klay.getBlockWithConsensusInfoByHash

caver.rpc.klay.getBlockWithConsensusInfoByHash(blockHash [, callback])

Returns a block with consensus information matched by the given hash.

Parameters

Name

Type

Description

blockHash

string

The block hash.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object - A block object with consensus information (a proposer and a list of committee members), or null when no block was found:

Name

Type

Description

blockScore

string

Former difficulty. Always 1 in the BFT consensus engine

committee

Array

Array of addresses of committee members of this block. The committee is a subset of validators who participated in the consensus protocol for this block.

extraData

string

The "extra data" field of this block.

gasUsed

string

The gas in total that was used by all transactions in this block.

governanceData

string

RLP encoded governance configuration

hash

string

Hash of the block. null when it is a pending block.

logsBloom

string

The bloom filter for the logs of the block. null when it is a pending block.

number

string

The block number. null when it is a pending block.

parentHash

string

Hash of the parent block.

proposer

string

The address of the block proposer.

receiptsRoot

string

The root of the receipts trie of the block.

reward

string

The address of the beneficiary to whom the block rewards were given.

size

string

Integer the size of this block in bytes.

stateRoot

string

The root of the final state trie of the block.

timestamp

string

The unix timestamp for when the block was collated.

timestampFoS

string

The fraction of a second of the timestamp for when the block was collated.

totalBlockScore

string

Integer of the total blockScore of the chain until this block.

transactions

Array

Array of transaction objects.

transactionsRoot

string

The root of the transaction trie of the block.

voteData

string

RLP encoded governance vote of the proposer

Example

> caver.rpc.klay.getBlockWithConsensusInfoByHash('0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0').then(console.log)
{
blockscore: '0x1',
committee: ['0xddc2002b729676dfd906484d35bb02a8634d7040', '0xa1d2665c4c9f77410844dd4c22ed11aabbd4033e'],
extraData: '0xd8830...',
gasUsed: '0x5208',
governanceData: '0x',
hash: '0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0',
logsBloom: '0x00000...',
number: '0x5301',
parentHash: '0x024f05c0e7428e33331104bedbfc453d481ce6a2f5e57f7fd68a4391ba6c2619',
proposer: '0xa1d2665c4c9f77410844dd4c22ed11aabbd4033e',
receiptsRoot: '0xe38e5532717f12f769b07ea016014bd39b74fb72def4de8442114cc2728609f2',
reward: '0xb74837f495060f3f794dcae8fa3e0c5d3cf99d9f',
size: '0x313',
stateRoot: '0x9964b2d8f23da7383a32ec33c9700a76ebf4a36315c9067c2fef7568d97e1d55',
timestamp: '0x5ee851dd',
timestampFoS: '0x0',
totalBlockScore: '0x5302',
transactions: [
{
blockHash: '0x4584bea6b8b2abe7f024d1e63dd0571cfd28cd5157b4f6cb2ac4160a7b0057e0',
blockNumber: '0x5301',
contractAddress: null,
from: '0xddc2002b729676dfd906484d35bb02a8634d7040',
gas: '0x61a8',
gasPrice: '0x5d21dba00',
gasUsed: '0x5208',
logs: [],
logsBloom: '0x00000...',
nonce: '0x5e',
senderTxHash: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c',
signatures: {
V: '0x4e44',
R: '0x98583ffa8d9a6d5f9e60e4daebb33f18e8ad4d32653c4a2fa7f12ce025af763d',
S: '0x9b9e5257293e3b986842b6a203dd16ce46f16ed42dd3e9592fcaab9ea2696cb'
},
status: '0x1',
to: '0xc0aabc441129991dd3a9363a9a43b745527ea4e7',
transactionHash: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c',
transactionIndex: '0x0',
type: 'TxTypeValueTransfer',
typeInt: 8,
value: '0xde0b6b3a7640000',
},
],
transactionsRoot: '0x413f080a498ae3973490c2f80e75e6a492cfcdac8be8051220bb7a964768d28c',
voteData: '0x',
}

caver.rpc.klay.getCommittee

caver.rpc.klay.getCommittee([blockNumber] [, callback])

Returns a list of all validators in the committee at the specified block.

Parameters

Name

Type

Description

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns Array

Type

Description

Array

Addresses of all validators in the committee at the given block.

Example

> caver.rpc.klay.getCommittee().then(console.log)
[
'0xddc2002b729676dfd906484d35bb02a8634d7040',
'0xa1d2665c4c9f77410844dd4c22ed11aabbd4033e'
]

caver.rpc.klay.getCommitteeSize

caver.rpc.klay.getCommitteeSize([blockNumber] [, callback])

Returns the size of the committee at the specified block.

Parameters

Name

Type

Description

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns number

Type

Description

number

The size of the committee at the given block.

Example

> caver.rpc.klay.getCommitteeSize().then(console.log)
2

caver.rpc.klay.getCouncil

caver.rpc.klay.getCouncil([blockNumber] [, callback])

Returns a list of all validators of the council at the specified block.

Parameters

Name

Type

Description

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns Array

Type

Description

Array

An array of validator addresses of the council at the given block, or null when no council was found.

Example

> caver.rpc.klay.getCouncil().then(console.log)
[
'0xa1d2665c4c9f77410844dd4c22ed11aabbd4033e',
'0xddc2002b729676dfd906484d35bb02a8634d7040'
]

caver.rpc.klay.getCouncilSize

caver.rpc.klay.getCouncilSize([blockNumber] [, callback])

Returns the size of the council at the specified block.

Parameters

Name

Type

Description

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns number

Type

Description

number

The size of the council at the given block.

Example

> caver.rpc.klay.getCouncilSize().then(console.log)
2

caver.rpc.klay.getStorageAt

caver.rpc.klay.getStorageAt(address, position [, blockNumber] [, callback])

Returns the value from a storage position at a given address.

Parameters

Name

Type

Description

address

string

The address to get the storage from.

position

number

The index position of the storage. For more information on calculating the position, refer to klay_getStorageAt.

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns string

Type

Description

string

The value at this storage position.

Example

> caver.rpc.klay.getStorageAt('0x407d73d8a49eeb85d32cf465507dd71d507100c1', 0).then(console.log)
0x033456732123ffff2342342dd12342434324234234fd234fd23fd4f23d4234

caver.rpc.klay.isSyncing

caver.rpc.klay.isSyncing([callback])

Returns an object with data about the sync status or false.

Parameters

Name

Type

Description

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object|boolean - false if the Klaytn Node is not syncing. Otherwise, a sync object is returned:

Name

Type

Description

startingBlock

string

The block number in hex where the sync started

currentBlock

string

The block number in hex where the node currently synced to.

highestBlock

string

The estimated block number in hex to sync to.

knownStates

string

The estimated states in hex to download.

pulledStates

string

The already downloaded states in hex.

Example

> caver.rpc.klay.isSyncing().then(console.log)
{
startingBlock: 100,
currentBlock: 312,
highestBlock: 512,
knownStates: 234566,
pulledStates: 123455
}
> caver.rpc.klay.isSyncing().then(console.log)
false

caver.rpc.klay.call

caver.rpc.klay.call(callObject [, blockNumber] [, callback])

Executes a new message call immediately without sending a transaction on the blockchain. It returns data or an error object of JSON RPC if an error occurs.

Parameters

Name

Type

Description

callObject

object

A transaction call object. See the next table for the object's properties.

blockNumber

number | string

(optional) A block number, or the string latest or earliest. If omitted, latest will be used.

s

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

callObject has the following properties:

Name

Type

Description

to

string

(optional when testing the deployment of a new contract) The address the transaction is directed to.

input

string

(optional) The hash of the method signature and encoded parameters. You can use caver.abi.encodeFunctionCall.

from

string

(optional) The address the transaction is sent from.

gas

string

(optional) The gas provided for the transaction execution. klay_call consumes zero gas, but this parameter may be needed by some executions.

gasPrice

string

(optional) The gasPrice used for each paid gas.

value

string

(optional) The value sent with this transaction in peb.

Return Value

Promise returns string

Type

Description

string

The returned data of the call. e.g., the return value of a smart contract function.

Example

> caver.rpc.klay.call({
to: '0x5481a10a47C74f800BDF4955BD77550881bde91C', // contract address
input: '0x70a08231000000000000000000000000ddc2002b729676dfd906484d35bb02a8634d7040'
}).then(console.log)
0x0000000000000000000000000000000000000000000000000de0b6b3a7640000

caver.rpc.klay.estimateGas

caver.rpc.klay.estimateGas(callObject [, blockNumber] [, callback])

Generates and returns an estimate of how much gas is necessary to allow a transaction to complete. The transaction from this method will not be added to the blockchain.

Parameters

See caver.rpc.klay.call parameters, expect that all properties are optional.

Return Value

Promise returns string

Type

Description

string

The returned data of the call. e.g., the return value of a smart contract function.

Example

> caver.rpc.klay.estimateGas({
to: '0x5481a10a47C74f800BDF4955BD77550881bde91C', // contract address
input: '0x095ea7b300000000000000000000000028e4e077686d1aeaf54a1313ff4841181056fe32000000000000000000000000000000000000000000000000000000000000000a'
}).then(console.log)
0xb2a0

caver.rpc.klay.estimateComputationCost

caver.rpc.klay.estimateComputationCost(callObject [, blockNumber] [, callback])

Generates and returns an estimate of how much computation cost will be spent to execute the transaction. Klaytn limits the computation cost of a transaction to 100000000 currently not to take too much time by a single transaction. The transaction will not be added to the blockchain like caver.rpc.klay.estimateGas.

Parameters

See caver.rpc.klay.call parameters, expect that all properties are optional.

Return Value

Promise returns string

Type

Description

string

The amount of computation cost used.

Example

> caver.rpc.klay.estimateComputationCost({
to: '0x5481a10a47C74f800BDF4955BD77550881bde91C', // contract address
input: '0x095ea7b300000000000000000000000028e4e077686d1aeaf54a1313ff4841181056fe32000000000000000000000000000000000000000000000000000000000000000a'
}).then(console.log)
0xd761

caver.rpc.klay.getTransactionByBlockHashAndIndex

caver.rpc.klay.getTransactionByBlockHashAndIndex(blockHash, index [, callback])

Returns information about a transaction by block hash and transaction index position.

Parameters

Name

Type

Description

blockHash

string

The block hash.

index

number

A transaction index position inside the block.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

Type

Description

object

A transaction object, see caver.rpc.klay.getTransactionByHash for more detail.

Example

> caver.rpc.klay.getTransactionByBlockHashAndIndex('0xc9f643c0ebe84932c10695cbc9eb75228af09516931b58952de3e12c21a50576', 0).then(console.log)
{
blockHash: '0xc9f643c0ebe84932c10695cbc9eb75228af09516931b58952de3e12c21a50576',
blockNumber: '0xb7',
from: '0x3af68ad73f45a1e7686e8fcd23e910625ef2186e',
gas: '0x61a8',
gasPrice: '0x5d21dba00',
hash: '0xdb63fb385e51fbfd84a98873c994aef622c5f1c72c5760a9ff95c55bbfd99898',
nonce: '0x0',
senderTxHash: '0xdb63fb385e51fbfd84a98873c994aef622c5f1c72c5760a9ff95c55bbfd99898',
signatures: [ { V: '0x4e44', R: '0xf1a9a...', S: '0x9116c...' } ],
to: '0x1637a2fc3ef9a391b2d8411854167ab3912a2fcc',
transactionIndex: '0x0',
type: 'TxTypeValueTransfer',
typeInt: 8,
value: '0x8ac7230489e80000'
}

caver.rpc.klay.getTransactionByBlockNumberAndIndex

caver.rpc.klay.getTransactionByBlockNumberAndIndex(blockNumber, index [, callback])

Returns information about a transaction by block number and transaction index position.

Parameters

Name

Type

Description

blockNumber

number | string

The block number or the block tag string (genesis or latest).

index

number

A transaction index position inside the block.

callback

function

(optional) Optional callback, returns an error object as the first parameter and the result as the second.

Return Value

Promise returns object

Type

Description

object

A transaction object, see caver.rpc.klay.getTransactionByHash for more detail.

Example

> caver.rpc.klay.getTransactionByBlockNumberAndIndex(183, 0).then(console.log)
{
blockHash