Chain Connector plugin: Endpoint reference
This page summarizes all API endpoints specific to the Chain Connector Plugin.
All the aforementioned endpoints are invoked using the chainConnector prefix.
| Endpoints can be invoked as explained in the Connecting via endpoints guide. |
chainConnector_getSentCCUs
Whenever a CCU is successfully sent, it’s saved in the plugin store database. This endpoint returns all such sent CCUs.
No Parameters.
klayr-core endpoint:invoke chainConnector_getSentCCUs --pretty
curl --location 'http://127.0.0.1:7887/rpc' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"id": "1",
"method": "chainConnector_getSentCCUs",
"params": {}
}'
Response
{
"list": [
{
"module": "interoperability",
"command": "submitMainchainCrossChainUpdate",
"params": {
"activeValidatorsUpdate": {
"bftWeightsUpdate": [],
"bftWeightsUpdateBitmap": "",
"blsKeysUpdate": []
},
"certificate": {
"aggregationBits": "1f",
"blockID": "ba44da898916dee0f6a61ab6c19f92d4c6c2c3398dacffc9f3384028b79d5b45",
"height": 12,
"signature": "888e328ac1262b7e2a344738b0e55e6b881fcbacc47e9aa48c320146f1f2b1a6a442231d7de8aa684f36baa4fec7821d1883905721be982e0067934c5a57cdfb3055537b61fac2144763e111c9bab4c218c23c93e6c472ce08c63eaf1220e51a",
"stateRoot": "bf58c16f1c1eb9e845eeb81a0a07aaa32f1631897eda37fef2e075aaf780e7b4",
"timestamp": 1710934315,
"validatorsHash": "003fc70678d219f3d66c3054538801946ef2c0a4067136717a886ae57c7b0b34"
},
"inboxUpdate": {
"crossChainMessages": [],
"messageWitnessHashes": [],
"outboxRootWitness": {
"bitmap": "",
"siblingHashes": []
}
},
"certificateThreshold": "4",
"sendingChainID": "04000002"
},
"nonce": "2",
"fee": "500000",
"senderPublicKey": "46b160b7a24b8813318eb753ef5be4c0a31fe1a3a2789d9253df1617ed4ae829",
"signatures": [
"b9fa7f8a25540a084efddc3e547299bac38d28f67a18b496ff8bb1c1002b9149e7a0465508b0263af02885d95270cf78375c5c298f75b7f0aebc3dfb8bbe2f0e"
],
"id": "7660b9ee495890d89da7ba8db3e1484f74be3e271f58764bfd6ff31132b192d2"
},
{
"module": "interoperability",
"command": "submitMainchainCrossChainUpdate",
"params": {
"activeValidatorsUpdate": {
"bftWeightsUpdate": [],
"bftWeightsUpdateBitmap": "",
"blsKeysUpdate": []
},
"certificate": {
"aggregationBits": "1f",
"blockID": "d754843e8bbacba213de23b55cdb7acfd1648a00e846e1779df805b932dfeb53",
"height": 11,
"signature": "938331e82fa17963ce8a12d5152f34be6606e16afbc5a941bb2ad2309888382b140ffbe8544fa9348b823b80e4a1180008d58215131e7e677d3de1b59d95b899f9b25b4a41d04e13d4909c31a459e316c4096b849b24d36020270df023e0ffb4",
"stateRoot": "d6da18c593026a877fa1203686ec6c4440786bd45e82d6a81ed597ea09b85d42",
"timestamp": 1710934310,
"validatorsHash": "003fc70678d219f3d66c3054538801946ef2c0a4067136717a886ae57c7b0b34"
},
"inboxUpdate": {
"crossChainMessages": [],
"messageWitnessHashes": [],
"outboxRootWitness": {
"bitmap": "",
"siblingHashes": []
}
},
"certificateThreshold": "4",
"sendingChainID": "04000002"
},
"nonce": "1",
"fee": "500000",
"senderPublicKey": "46b160b7a24b8813318eb753ef5be4c0a31fe1a3a2789d9253df1617ed4ae829",
"signatures": [
"b8a522cd01830903ebcbf072b90cb2eec96a2bc3183d7f6123a466c7ef2d5fb5da8e91289cc01f89ded553f05070f00432ede9bfa43ce616d84776e89d58ca0f"
],
"id": "0315d6b8f30a2cb9afa1f7cb4fb952310fd072394cf41bddf59d12825598fe8b"
},
{
"module": "interoperability",
"command": "submitMainchainCrossChainUpdate",
"params": {
"activeValidatorsUpdate": {
"bftWeightsUpdate": [],
"bftWeightsUpdateBitmap": "",
"blsKeysUpdate": []
},
"certificate": {
"aggregationBits": "1f",
"blockID": "13f4ab0a0f39aefdaa98bbc403fb267126454a83727b40d5d70ccc83ae01b259",
"height": 10,
"signature": "a0f1db771bfd6ed46e3f25d85425eac0b4cec07762bb2c0b0d8fde423a776e998bbe238c1fceac33f8bd9e7858f8d6ce13cec2d44796583d0314819755d7c28b1d82a861bc9ae8fdd8b1a36daa394a3e4384b11ee93c9f31212696a64a1a3449",
"stateRoot": "e239c1114e42a63ae045faba15f641b2c1bc3f8c06fd8c1cbc3a5739f487ab06",
"timestamp": 1710934305,
"validatorsHash": "003fc70678d219f3d66c3054538801946ef2c0a4067136717a886ae57c7b0b34"
},
"inboxUpdate": {
"crossChainMessages": [],
"messageWitnessHashes": [],
"outboxRootWitness": {
"bitmap": "",
"siblingHashes": []
}
},
"certificateThreshold": "4",
"sendingChainID": "04000002"
},
"nonce": "0",
"fee": "500000",
"senderPublicKey": "46b160b7a24b8813318eb753ef5be4c0a31fe1a3a2789d9253df1617ed4ae829",
"signatures": [
"13926b70b7d140c534dbdf1de5f8f464c87167f9277841ec66d8a0b6a51d94f975611e04680eed6b50ddcb7e9af2097089bae992c0933ac8dadb03af2946e40f"
],
"id": "1f4deeffebc72e633c516f4ebb5c19a5e666b9024c13841c5d7ec3cfa9826a0f"
}
],
"total": 3
}
chainConnector_getAggregateCommits
Returns aggregate commits from the plugin’s database.
| Name | Type | Description | Sample |
|---|---|---|---|
|
number |
Lower limit of |
840 |
|
number |
Upper limit of |
1000 |
klayr-core endpoint:invoke chainConnector_getAggregateCommits --pretty
curl --location 'http://127.0.0.1:7887/rpc' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"id": "1",
"method": "chainConnector_getAggregateCommits",
"params": {
"from": 840,
"to": 1000
}
}'
Response
[
{
"height": 852,
"aggregationBits": "01",
"certificateSignature": "a84a1de5cad91b9c402999779644af51c768ff3767aefc92a491c77c4df8c403a4290b3148459a22fddb6bf3353af42d11b73ba8af467cf9d4abcb8529df085b91f7fbeb443c30985d8f84989a148116696dd8ee8f69b7ab47a89b6f77e21987"
},
{
"height": 851,
"aggregationBits": "01",
"certificateSignature": "8468631bed40686bda8157556229ae0f43c26d529f5385fb9e2df8fce14ef0f4c013ba04a6c520cfd7cb425f1840f38b0ca3b86fb64721f7c233730523151c204a03aeb5691dc0e94ea551da10c4fe5df6a2d13572e4840328b796391602e4ec"
}
]
chainConnector_getBlockHeaders
Returns block headers.
| Name | Type | Description | Sample |
|---|---|---|---|
|
number |
Lower limit of |
840 |
|
number |
Upper limit of |
1000 |
klayr-core endpoint:invoke chainConnector_getBlockHeaders --pretty
curl --location 'http://127.0.0.1:7887/rpc' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"id": "1",
"method": "chainConnector_getBlockHeaders",
"params": {
"from": 840,
"to": 1000
}
}'
Response
[
{
"version": 2,
"timestamp": 1710938780,
"height": 905,
"previousBlockID": "2ea85245f1fe5079ed9a8718ebcf4b650a68c9b8ffd0c87c1ab83bad2ca1f46c",
"stateRoot": "52dff6ee32117f9e091fd09b9d704094addddd7dc40e043de6ac19d930c34a82",
"assetRoot": "35c6fa642f6068b4a6fdc15452dcda94362be992d79a81871301dea04ec0cda2",
"eventRoot": "11ab2f40b42a4ed38c8a6a20f647d8b02c82131b8ddedb87ad1f1504667adcf9",
"transactionRoot": "d79c774a6b487e4313543835f36f371ac1313a6d1cb6ec58d9ed436f21f4e058",
"validatorsHash": "f626be7093592d81cde5bbae150a67db52619e0fd193ee61aebe847c45dd557e",
"aggregateCommit": {
"height": 903,
"aggregationBits": "01",
"certificateSignature": "90aaac7230c77fe5e27304c9e6a4c20054bbdd035751dd1842cd579acc3fd0a8ed5bbf77cd50d384b516673f654e852b0dc775222083178be34b7c16b7712f1e8e522bd9947a3bc9d514694cf4bc879bb6f9f16af341035f3cdf319f9b9f2b9b"
},
"generatorAddress": "klyz98oaohxaw6jcfvtgdxm9sprcqzstddoqusrns",
"maxHeightPrevoted": 904,
"maxHeightGenerated": 904,
"impliesMaxPrevotes": true,
"signature": "631dedcfcffe04ae4850107f1a1b8af76bed062259723ce82cb5a8921ec0f215b77b8ead7a89f2e5053119c78fa83f1dd825f4cb6c7d3ae98f25ef032da4480c",
"id": "8933a8bfea33eccb12c4ba5b79be656eda376d5402f430c89743a3b0e1cedceb"
},
{
"version": 2,
"timestamp": 1710938775,
"height": 904,
"previousBlockID": "93387fae3eb187ef3e0212bd1350e8211973865d50b343891c53f848240ebceb",
"stateRoot": "b80f27f36715a2c617bf362bdc3f259a37f3166c023d11275a3636c681a0b4e6",
"assetRoot": "d10fdb11000184449e64963d39ceef5d82a70ada1298929419a04424939fa8d0",
"eventRoot": "edd6e6231bcc0eafa931d534618a9660330142c90462d097ffcbdd584d656cfc",
"transactionRoot": "2d5bf0304150c7e4fe7056b3e1a4e272b5c268d4e8d23440c4dc39b0d8e35010",
"validatorsHash": "f626be7093592d81cde5bbae150a67db52619e0fd193ee61aebe847c45dd557e",
"aggregateCommit": {
"height": 902,
"aggregationBits": "01",
"certificateSignature": "8062f1ef0807f0bb1afa52b51f9cb105cf38627ba65f62a67895d734cda5f80e65d42d443b4b05f612afacfb2211612411d6770f807803c7addd87a203cc344ba9539aad604719dd192904ba69b367ed24c544c72adc33ebd662f5be21549d0d"
},
"generatorAddress": "klyz98oaohxaw6jcfvtgdxm9sprcqzstddoqusrns",
"maxHeightPrevoted": 903,
"maxHeightGenerated": 903,
"impliesMaxPrevotes": true,
"signature": "07c135ce623ed4a3dfe0aa2e07a45c7231136556d394bbf6255843fa8ed40e79388a5359d7f4d402b71cb60a5503a5be73ec356f29779a3cc1f05b6c8e82b80a",
"id": "2ea85245f1fe5079ed9a8718ebcf4b650a68c9b8ffd0c87c1ab83bad2ca1f46c"
},
{
"version": 2,
"timestamp": 1710938770,
"height": 903,
"previousBlockID": "dac53d7ce5299ffe31195af611fc23e24d772f6bfdb4abed525efab397795ed7",
"stateRoot": "8a262add795ad2da3d96fee2b761e9e5f5cb9d67d3058fc76c72fc308535ba4d",
"assetRoot": "3637ecda054f6fe318560338d42f3051506898346ab09e011a246e49d71fb191",
"eventRoot": "30a5b2cb9aa3c0b2d8801cd2efdd594cbc9d8096e10e2c2e5fb42f91613657db",
"transactionRoot": "6e56984a65d98f34836373aea6319093f8eb0d5edc0b776b5b0d27df96a68fe1",
"validatorsHash": "f626be7093592d81cde5bbae150a67db52619e0fd193ee61aebe847c45dd557e",
"aggregateCommit": {
"height": 901,
"aggregationBits": "01",
"certificateSignature": "a55cc53ba8bedc349b318f6af27a9cd6c1205b7179b74092f6bd2986c15dc0dbc09484fd71d0ee030d155e413e329d34118ee6fd584b3fe93d9423caaa6418486efaa9a87cd9996a52f0a3cfbef69b103bdd5a51c7b2c353224c6cff31c49102"
},
"generatorAddress": "klyz98oaohxaw6jcfvtgdxm9sprcqzstddoqusrns",
"maxHeightPrevoted": 902,
"maxHeightGenerated": 902,
"impliesMaxPrevotes": true,
"signature": "8b10787e06adc6c7efda99ba85dc853c6de54632067a6d83982fa2ba9b15b1f948fe8b57ecbca973045bbfb102a0e1bba3a6e37afa77aa0495b6eb68d2421207",
"id": "93387fae3eb187ef3e0212bd1350e8211973865d50b343891c53f848240ebceb"
},
{
"version": 2,
"timestamp": 1710938765,
"height": 902,
"previousBlockID": "c124d2f3c26ff8840a722cdd3ef6ef228be3c062c494c4f2f590a059351391fd",
"stateRoot": "33d84699ae73047b64ada93527a7095f195436ffa2ae2980ff702bbe2ac0b117",
"assetRoot": "aa3c5f41f5f4428a2d32e80a17a896bd6893815ce480ee3ab7e4fd5a5bfb517f",
"eventRoot": "90e0af8611aee0491cc4214c93605fc9050f7c54bcd9ffcc935d600dfddeeba0",
"transactionRoot": "b82f831f0f97d63819fed7ecb301af4bd645650826989ba2f991016ad1a793e5",
"validatorsHash": "f626be7093592d81cde5bbae150a67db52619e0fd193ee61aebe847c45dd557e",
"aggregateCommit": {
"height": 900,
"aggregationBits": "01",
"certificateSignature": "a8eaad357942e1c92567a9080e88c778737c9b1596f3cdc2d6fb35c9511f00c054513f89d05f23b5914c1520fa723def03678da0099684f4e23249243b6fd10aba1c16952a9a1c34f147d154a0db37d4a8d327fc2b3457fa8d0e9079ff38fbb9"
},
"generatorAddress": "klyz98oaohxaw6jcfvtgdxm9sprcqzstddoqusrns",
"maxHeightPrevoted": 901,
"maxHeightGenerated": 901,
"impliesMaxPrevotes": true,
"signature": "45b441ff6eae9bfa686a7a16b8406dab415d6998d28ff34864c66de7f1c29fadd4a178375c6ba7d3fb21f96313888a0380436bbc21644955c69e90469e483f02",
"id": "dac53d7ce5299ffe31195af611fc23e24d772f6bfdb4abed525efab397795ed7"
}
]
chainConnector_getCrossChainMessages
Returns the cross-chain messages sent across chains. This includes CCMs parsed from CrossChainMessageSentSuccess and CrossChainMessageProcessed events.
| Name | Type | Description | Sample |
|---|---|---|---|
|
number |
Lower limit of |
840 |
|
number |
Upper limit of |
1000 |
klayr-core endpoint:invoke chainConnector_getCrossChainMessages '{"from":840, "to":1000}' --pretty
curl --location 'http://127.0.0.1:7887/rpc' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"id": "1",
"method": "chainConnector_getCrossChainMessages",
"params": {
"from": 840,
"to": 1000
}
}'
Response
[
{
"module": "token",
"crossChainCommand": "transferCrossChain",
"nonce": "129",
"fee": "10000000",
"sendingChainID": "04000000",
"receivingChainID": "04000001",
"params": "0a0804000000000000001080c8afa0251a14d6a3789ad0ca09044cac3bead52f652d2d8fb4e62214081ebdc2588b318d146189ac86c05dc7beede2c02a136363207472616e736665722074657374696e67",
"status": 0,
"height": 949
}
]
chainConnector_getLastSentCCM
Returns the last sent cross-chain message, if any, otherwise, it throws an error: "No CCM was sent so far".
No Parameters.
klayr-core endpoint:invoke chainConnector_getLastSentCCM --pretty
curl --location 'http://127.0.0.1:7887/rpc' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"id": "1",
"method": "chainConnector_getLastSentCCM",
"params": {}
}'
Response
{
"module": "interoperability",
"crossChainCommand": "registration",
"nonce": "0",
"fee": "0",
"sendingChainID": "04000002",
"receivingChainID": "04000000",
"params": "0a0e6c69736b5f6d61696e636861696e1204040000001a08040000000000000020e807",
"status": 0,
"height": 13,
"outboxSize": 1
}
chainConnector_getAllValidatorsData
Returns validator info from validatorsHashPreimage key-value store.
No Parameters.
klayr-core endpoint:invoke chainConnector_getAllValidatorsData --pretty
curl --location 'http://127.0.0.1:7887/rpc' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"id": "1",
"method": "chainConnector_getAllValidatorsData",
"params": {}
}'
Response
[
{
"certificateThreshold": "1",
"validators": [
{
"address": "",
"bftWeight": "1",
"blsKey": "811e8df1a063f94ad7746350f50956f89397a60c070b80d8c12337c0fc4f40e34635ad55c552324911b0b14c9b07c725"
}
],
"validatorsHash": "f626be7093592d81cde5bbae150a67db52619e0fd193ee61aebe847c45dd557e",
"height": 994
},
{
"certificateThreshold": "3",
"validators": [
{
"address": "",
"bftWeight": "1",
"blsKey": "aeabe96e853e777a6c127c77d83606d1310ef6558ccd461652771c651696bb65248bf790f5a9143ad488affaf5d81345"
},
{
"address": "",
"bftWeight": "1",
"blsKey": "b0f0ea27a00cd7c193c7958fa72fcf04ce474807138006229f73b1ed3fa5ea1955e8b7e186ad00da8c79e3327c8dab9b"
},
{
"address": "",
"bftWeight": "1",
"blsKey": "811e8df1a063f94ad7746350f50956f89397a60c070b80d8c12337c0fc4f40e34635ad55c552324911b0b14c9b07c725"
}
],
"validatorsHash": "be25a0ce5a1f030bec7968cede5e8ea3ec57d3c28220d15860908838e95f9b0d",
"height": 63
},
{
"certificateThreshold": "2",
"validators": [
{
"address": "",
"bftWeight": "1",
"blsKey": "811e8df1a063f94ad7746350f50956f89397a60c070b80d8c12337c0fc4f40e34635ad55c552324911b0b14c9b07c725"
},
{
"address": "",
"bftWeight": "1",
"blsKey": "b0f0ea27a00cd7c193c7958fa72fcf04ce474807138006229f73b1ed3fa5ea1955e8b7e186ad00da8c79e3327c8dab9b"
}
],
"validatorsHash": "bc3e1665d3859a13322f0a534dac9ad700f95db6eb6b30ace5b3593a69a4e102",
"height": 72
},
{
"certificateThreshold": "3",
"validators": [
{
"address": "",
"bftWeight": "1",
"blsKey": "aeabe96e853e777a6c127c77d83606d1310ef6558ccd461652771c651696bb65248bf790f5a9143ad488affaf5d81345"
},
{
"address": "",
"bftWeight": "1",
"blsKey": "811e8df1a063f94ad7746350f50956f89397a60c070b80d8c12337c0fc4f40e34635ad55c552324911b0b14c9b07c725"
},
{
"address": "",
"bftWeight": "1",
"blsKey": "a1e9b454e298dc1994612e01114ceffb23c39ec6ef5fde19aa6b6f3ca71d02f776a82db86940f868d69f91918cf27dac"
},
{
"address": "",
"bftWeight": "1",
"blsKey": "b0f0ea27a00cd7c193c7958fa72fcf04ce474807138006229f73b1ed3fa5ea1955e8b7e186ad00da8c79e3327c8dab9b"
}
],
"validatorsHash": "1f58369c6b9c4995781002a5a1d85ba03e2fe4cf3e80857c62784764ada1c9e8",
"height": 54
},
{
"certificateThreshold": "4",
"validators": [
{
"address": "",
"bftWeight": "1",
"blsKey": "811e8df1a063f94ad7746350f50956f89397a60c070b80d8c12337c0fc4f40e34635ad55c552324911b0b14c9b07c725"
},
{
"address": "",
"bftWeight": "1",
"blsKey": "a1e9b454e298dc1994612e01114ceffb23c39ec6ef5fde19aa6b6f3ca71d02f776a82db86940f868d69f91918cf27dac"
},
{
"address": "",
"bftWeight": "1",
"blsKey": "888808e49bbef69b9dd3388611f3add320bf777674cd8478150ca1d5bacfdad5c1315fb982e9b8aa8c3c6ac51c7d8ea2"
},
{
"address": "",
"bftWeight": "1",
"blsKey": "aeabe96e853e777a6c127c77d83606d1310ef6558ccd461652771c651696bb65248bf790f5a9143ad488affaf5d81345"
},
{
"address": "",
"bftWeight": "1",
"blsKey": "b0f0ea27a00cd7c193c7958fa72fcf04ce474807138006229f73b1ed3fa5ea1955e8b7e186ad00da8c79e3327c8dab9b"
}
],
"validatorsHash": "003fc70678d219f3d66c3054538801946ef2c0a4067136717a886ae57c7b0b34",
"height": 45
}
]
chainConnector_authorize
Allows authorization of the Chain Connector plugin on a node.
| Name | Type | Description | Sample |
|---|---|---|---|
|
string |
Password used to create the |
klayr |
|
boolean |
A Boolean flag that indicates whether or not to authorize the Chain Connector plugin. |
true |
klayr-core endpoint:invoke chainConnector_authorize '{"password": "klayr", "enable":true}' --pretty
curl --location 'http://127.0.0.1:7887/rpc' \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"id": "1",
"method": "chainConnector_authorize",
"params": {
"password": "klayr",
"enable": true
}
}'
Response
{
"result": "Successfully enabled the chain connector plugin."
}