SUI JSON-RPC read API for system and Move module data

Authentication, rate limits, and error handling

See our JSON-RPC API overview doc.

Reading Move Data

sui_getMoveFunctionArgTypes

Description
Return the argument types of a Move function based on normalized type.

Params

  • package : <ObjectID> - the Move package ID, e.g. '0x2'
  • module : <string> - the Move module name, e.g. 'nft_minter'
  • function : <string> - the Move function name, e.g. 'mint'
curl https://api.shinami.com/node/v1/<<apiKey>> \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "jsonrpc":"2.0", 
      "method":"sui_getMoveFunctionArgTypes",
      "params":["{{package}}",
      			"{{module}}",          
                "{{function}}"],
      "id":1}'

Result
Vec<MoveFunctionArgType> : <[MoveFunctionArgType]>


sui_getNormalizedMoveFunction

Description
Return a structured representation of a Move function. Remember that the API key you use determines the network you query.

Params

  • package : <ObjectID> - the Move package ID, e.g. "0x64254dd3675459aae82e063ed6276f99fe23616f75fdb0b683f5d2c6024a0bd7"
  • module_name : <string> - the Move module name, e.g. "bird_entries"
  • function_name: <string> - the Move function name, e.g. "mineBird"
curl https://api.shinami.com/node/v1 \
-X POST \
-H 'X-API-Key: NODE_SERVICE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ 
        "jsonrpc":"2.0", 
        "method":"sui_getNormalizedMoveFunction",
        "params":[
            "0x64254dd3675459aae82e063ed6276f99fe23616f75fdb0b683f5d2c6024a0bd7",
            "bird_entries",
            "mineBird"
        ],
        "id":1
    }' | json_pp
import { createSuiClient } from "@shinami/clients/sui";

const nodeClient = createSuiClient(NODE_SERVICE_API_KEY);

const resp = await nodeClient.getNormalizedMoveFunction({
    package: "0x64254dd3675459aae82e063ed6276f99fe23616f75fdb0b683f5d2c6024a0bd7",
    module: "bird_entries",
    function: "mineBird"
});

console.log(resp);

Example Response

{
   "id" : 1,
   "jsonrpc" : "2.0",
   "result" : {
      "isEntry" : true,
      "parameters" : [
         {
            "Vector" : "U8"
         },
         {
            "Vector" : "U8"
         },
         {
            "MutableReference" : {
               "Struct" : {
                  "address" : "0x64254dd3675459aae82e063ed6276f99fe23616f75fdb0b683f5d2c6024a0bd7",
                  "module" : "bird",
                  "name" : "BirdStore",
                  "typeArguments" : []
               }
            }
         },
         {
            "MutableReference" : {
               "Struct" : {
                  "address" : "0x64254dd3675459aae82e063ed6276f99fe23616f75fdb0b683f5d2c6024a0bd7",
                  "module" : "bird",
                  "name" : "BirdArchieve",
                  "typeArguments" : []
               }
            }
         },
         {
            "Reference" : {
               "Struct" : {
                  "address" : "0x2",
                  "module" : "clock",
                  "name" : "Clock",
                  "typeArguments" : []
               }
            }
         },
         {
            "Reference" : {
               "Struct" : {
                  "address" : "0x64254dd3675459aae82e063ed6276f99fe23616f75fdb0b683f5d2c6024a0bd7",
                  "module" : "version",
                  "name" : "Version",
                  "typeArguments" : []
               }
            }
         },
         {
            "MutableReference" : {
               "Struct" : {
                  "address" : "0x2",
                  "module" : "tx_context",
                  "name" : "TxContext",
                  "typeArguments" : []
               }
            }
         }
      ],
      "return" : [],
      "typeParameters" : [],
      "visibility" : "Public"
   }
}
{
  visibility: 'Public',
  isEntry: true,
  typeParameters: [],
  parameters: [
    { Vector: 'U8' },
    { Vector: 'U8' },
    { MutableReference: [Object] },
    { MutableReference: [Object] },
    { Reference: [Object] },
    { Reference: [Object] },
    { MutableReference: [Object] }
  ],
  return: []
}

Response fields

Response is of type SuiMoveNormalizedFunction with fields:

NameTypeDescription
isEntrybooleanWhether or not the function is an entry function
parametersSuiMoveNormalizedType[]The function's parameters.
returnSuiMoveNormalizedType[]The function's return values.
typeParametersSuiMoveAbilitySet[]The function's type parameters.
visibilitySuiMoveVisibilityThe function's visibility, e.g. "Private", "Public", or "Friend"
  • <SuiMoveNormalizedFunction> : <[SuiMoveNormalizedFunction]>
  • is_entry : <boolean>
  • parameters : <[SuiMoveNormalizedType]>
  • return : <[SuiMoveNormalizedType]>
  • type_parameters : <[SuiMoveAbilitySet]>
  • visibility : <SuiMoveVisibility>

sui_getNormalizedMoveModule

Description
Return a structured representation of a Move module.

Params

  • package : <ObjectID> - the Move package ID, e.g. '0x2'
  • module_name : <string> - the Move module name, e.g. 'nft_minter'
curl https://api.shinami.com/node/v1/<<apiKey>> \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "jsonrpc":"2.0", 
      "method":"sui_getNormalizedMoveModule",
      "params":["{{package}}",
      			"{{module_name}}",          
      "id":1}'

Result

  • <SuiMoveNormalizedModule> : <[SuiMoveNormalizedModule]>
  • address : <string>
  • exposed_functions : <object>
  • file_format_version : <uint32>
  • friends : <[SuiMoveModuleId]>
  • name : <string>
  • structs : <object>

sui_getNormalizedMoveModulesByPackage

Description
Return the structured representations of all modules in the given package.

Params

  • package : <ObjectID> - the Move package ID, e.g. '0x2'
curl https://api.shinami.com/node/v1/<<apiKey>> \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "jsonrpc":"2.0", "method":"sui_getNormalizedMoveModulesByPackage", "params":["{{package}}"], "id":1}'

Result
BTreeMap<String,SuiMoveNormalizedModule> : <object>


sui_getNormalizedMoveStruct

Description
Return a structured representation of a Move struct.

Params

  • package : <ObjectID> - the Move package ID, e.g. '0x2'
  • module_name : <string> - the Move module name, e.g. 'nft_minter'
  • struct_name: <string> - the struct name
curl https://api.shinami.com/node/v1/<<apiKey>> \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "jsonrpc":"2.0", 
      "method":"sui_getNormalizedMoveStruct",
      "params":["{{package}}",
      			"{{module_name}}",           
                "{{struct_name}}"],
      "id":1}'

Result

  • <SuiMoveNormalizedStruct> : <[SuiMoveNormalizedStruct]>
  • abilities : <SuiMoveAbilitySet>
  • fields : <[SuiMoveNormalizedField]>
  • type_parameters : <[SuiMoveStructTypeParameter]>

Reading Name Service Data

suix_resolveNameServiceAddress

Description
Return the address the given name resolves to on the network, if any. Note that there is a different name registry for Testnet and Mainnet, so a name that resolves on one network may not on another.

Request Parameters

NameTypeDescription
namestringThe name you want resolved into an address.

Example Request Template

The TypeScript example uses the Shinami Clients SDK.

curl https://api.shinami.com/node/v1 \
-X POST \
-H 'X-API-Key: YOUR_NODE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{   
        "jsonrpc":"2.0", 
        "method":"suix_resolveNameServiceAddress",
        "params":["a-a-ron.sui"],
        "id":1
    }'
import { createSuiClient } from "@shinami/clients/sui";

const nodeClient = createSuiClient(YOUR_NODE_API_KEY);

await nodeClient.resolveNameServiceAddress({name: "a-a-ron.sui"});

Example Response

{
   "id" : 1,
   "jsonrpc" : "2.0",
   "result" : "0x9b1c32507cbb2dd34dc46fc02550e61434c36d3d1f3830c9903bb61c06d237da"
}
"0x9b1c32507cbb2dd34dc46fc02550e61434c36d3d1f3830c9903bb61c06d237da"

Result value

TypeDescription
string || nullThe address the name resolves to on the network, if found.

suix_resolveNameServiceNames

Description
Return the names the given address resolves to on the network, if any. If multiple names are resolved, the first one is the primary name. Note that there is a different name registry for Testnet and Mainnet, so an address that resolves on one network may not on another.

Request Parameters

NameTypeDescription
addressstringThe Sui address you want resolved into a list of associated names.
cursorstring(Optional) The object id to start the results from. Used for paging through the results when multiple requests are needed to get all the associated names.
limitinteger(_Optional) _Maximum number of results returned per request.
(SDK-only)
format
string(Optional) 'at' | 'dot': the representation you wish to receive. For 'sam', 'at' = '@sam' and 'dot' = 'sam.sui'

Example Request Template

The TypeScript example uses the Shinami Clients SDK.

curl https://api.shinami.com/node/v1 \
-X POST \
-H 'X-API-Key: YOUR_NODE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ 
      "jsonrpc":"2.0", 
      "method":"suix_resolveNameServiceNames",
      "params":[
                 "SUI_ADDRESS",
      			     "OPTIONAL_CURSOR",          
                 OPTIONAL_LIMIT,
                 "OPTIONAL_FORMAT"
               ],
      "id":1
    }'
import { createSuiClient } from "@shinami/clients/sui";

const nodeClient = createSuiClient(YOUR_NODE_API_KEY);

await nodeClient.resolveNameServiceNames({
    address: "0x9b1c32507cbb2dd34dc46fc02550e61434c36d3d1f3830c9903bb61c06d237da",
    cursor: undefined,
    limit: undefined,
    format: 'at'
});

Example Response

{
   "id" : 1,
   "jsonrpc" : "2.0",
   "result" : {
      "data" : [
         "a-a-ron.sui"
      ],
      "hasNextPage" : false,
      "nextCursor" : null
   }
}
{ 
  hasNextPage: false, 
  nextCursor: null, 
  data: [ '@a-a-ron' ] 
}

Response Fields

Response is of type ResolvedNameServiceNames with fields:

NameTypeDescription
datastring[ ]The name(s) the address resolves to on the network, if found.
hasNextPagebooleanWhether or not there is at least one more page of results.
nextCursorstring | nullThe value to use as the cursor parameter for the next request to get additional results. To be used if hasNextPage == true.

Reading Sui Network Data

sui_getChainIdentifier

Description
Return the chain's identifier

Params


curl https://api.shinami.com/node/v1/<<apiKey>> \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "jsonrpc":"2.0", "method":"sui_getChainIdentifier", "params":[], "id":1}'

Result

  • String : <string>

sui_getCheckpoint

Description
Return a checkpoint's transaction digests and other information.

Request Parameters

NameTypeDescription
idstringThe identifier of the checkpoint you want data for. Can use either checkpoint digest, or checkpoint sequence number (without commas) as input.

Example Request

The TypeScript example uses the Shinami Clients SDK.

curl https://api.shinami.com/node/v1 \
-X POST \
-H 'X-API-Key: YOUR_NODE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{   
        "jsonrpc":"2.0", 
        "method":"sui_getCheckpoint",
        "params":["86884878"],
        "id":1
    }'
import { createSuiClient } from "@shinami/clients/sui";

const nodeClient = createSuiClient(YOUR_NODE_API_KEY);

await nodeClient.getCheckpoint({
    id: "CD9Z9kMntQm8EPyaMzoFQgTdTdG4SsmyXFNBQvhzjtgv"
});

Example Response

{
   "id" : 1,
   "jsonrpc" : "2.0",
   "result" : {
      "checkpointCommitments" : [],
      "digest" : "CD9Z9kMntQm8EPyaMzoFQgTdTdG4SsmyXFNBQvhzjtgv",
      "epoch" : "601",
      "epochRollingGasCostSummary" : {
         "computationCost" : "9172043437591",
         "nonRefundableStorageFee" : "1293217708556",
         "storageCost" : "130256974544800",
         "storageRebate" : "128028553147044"
      },
      "networkTotalTransactions" : "2743265116",
      "previousDigest" : "9UNUjSEWZyLqkVGSdu4RpgnqkvqZ2zm1Fe7MkLjvz8yM",
      "sequenceNumber" : "86884878",
      "timestampMs" : "1733332731510",
      "transactions" : [
         "8Xm7Gu5s7MHFbvD95pyNrEFCV7pxCjv641ESJQNY9UFu",
         "2Wmc2qMqoNWpKpSWdHGHXtcaQsGj6ovEQRMuHwcz2CYQ",
         "ESo81dVEpUXNnCxeEx4D5GADy48843YtExMLg1Ymc72X",
         "GMeegZqHMWo3qKVp6TNTtBJC6xjbgNU2qNbcm4fRijXz",
         "Dh42UiV8rKFiDZ4c2v8HBvaKexNxGqvyjUuV2CLTyiuP",
         "BKuqKyyUnC86k4EZWMVZiA26HdyuPc1M7goyapgzmooS",
         "DV9WBwUfNPFP6deXkrThJ8U1NASpGunNkrjVrq2L4ZX5",
         "H8sW4B9wNSVcQCn5xGpBrF5ots73DByq4fFaTCaaH99J",
         "8KBuKc2ywhBHVrUcw4u4CuUxxkQ8groD8hhmGUYBBsJs",
         "8UmxXmvdeCDazRw9qDn27CdEwBBdAL1fZba8tjYjDB3p"
      ],
      "validatorSignature" : "psbYoNGUNzLsmZrlQaJSb8bKUQ1N+vem9sbCgCe9wYzMfk7+7KNEdIP8njGHW/8I"
   }
}
{
  epoch: '601',
  sequenceNumber: '86884878',
  digest: 'CD9Z9kMntQm8EPyaMzoFQgTdTdG4SsmyXFNBQvhzjtgv',
  networkTotalTransactions: '2743265116',
  previousDigest: '9UNUjSEWZyLqkVGSdu4RpgnqkvqZ2zm1Fe7MkLjvz8yM',
  epochRollingGasCostSummary: {
    computationCost: '9172043437591',
    storageCost: '130256974544800',
    storageRebate: '128028553147044',
    nonRefundableStorageFee: '1293217708556'
  },
  timestampMs: '1733332731510',
  transactions: [
    '8Xm7Gu5s7MHFbvD95pyNrEFCV7pxCjv641ESJQNY9UFu',
    '2Wmc2qMqoNWpKpSWdHGHXtcaQsGj6ovEQRMuHwcz2CYQ',
    'ESo81dVEpUXNnCxeEx4D5GADy48843YtExMLg1Ymc72X',
    'GMeegZqHMWo3qKVp6TNTtBJC6xjbgNU2qNbcm4fRijXz',
    'Dh42UiV8rKFiDZ4c2v8HBvaKexNxGqvyjUuV2CLTyiuP',
    'BKuqKyyUnC86k4EZWMVZiA26HdyuPc1M7goyapgzmooS',
    'DV9WBwUfNPFP6deXkrThJ8U1NASpGunNkrjVrq2L4ZX5',
    'H8sW4B9wNSVcQCn5xGpBrF5ots73DByq4fFaTCaaH99J',
    '8KBuKc2ywhBHVrUcw4u4CuUxxkQ8groD8hhmGUYBBsJs',
    '8UmxXmvdeCDazRw9qDn27CdEwBBdAL1fZba8tjYjDB3p'
  ],
  checkpointCommitments: [],
  validatorSignature: 'psbYoNGUNzLsmZrlQaJSb8bKUQ1N+vem9sbCgCe9wYzMfk7+7KNEdIP8njGHW/8I'
}

Result value

Type Checkpoint with fields:

NameTypeDescription
checkpointCommitmentsCheckpointCommitment[]Commitments to checkpoint state
digeststringCheckpoint digest
epochstringCheckpoint's epoch ID
endOfEpochData?EndOfEpochData | null(optional) Presented only on the final checkpoint of the epoch.
epochRollingGasCostSummaryGasCostSummaryThe running total gas costs of all transactions included in the current epoch so far until this checkpoint.
networkTotalTransactionsstringTotal number of transactions committed since genesis, including those in this checkpoint.
previousDigest?string | null(optional) Digest of the previous checkpoint
sequenceNumberstringCheckpoint sequence number.
timestampMsstringTimestamp of the checkpoint - number of milliseconds from the Unix epoch Checkpoint timestamps are monotonic, but not strongly monotonic - subsequent checkpoints can have same timestamp if they originate from the same underlining consensus commit
transactionsstring[]Digests of the transactions in the checkpoint.
validatorSignaturestringValidator Signature

sui_getCheckpoints

Description
Return contents of a checkpoint based on checkpoint content digest

Params

  • cursor : <BigInt_for_uint64> - an optional paging cursor. If provided, the query will start from the next item after the specified cursor. Default to start from the first item if not specified
  • limit : <uint> - maximum items returned per page, default to maximum limit if not specified
  • descending_order : <boolean> - query result ordering, default to false (ascending order), oldest record first
curl https://api.shinami.com/node/v1/<<apiKey>> \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "jsonrpc":"2.0", 
      "method":"sui_getCheckpoints",
      "params":[{{cursor}},
      			{{limit}},          
                {{descending_order}}],
      "id":1}'

Result

  • CheckpointPage : <Page_for_Checkpoint_and_BigInt_for_uint64>

sui_getLatestCheckpointSequenceNumber

Description
Return the sequence number of the latest checkpoint of transactions that has been executed by the Fullnode.

Example request

curl https://api.shinami.com/node/v1 \
-X POST \
-H 'X-API-Key: NODE_SERVICE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ 
        "jsonrpc":"2.0", 
        "method":"sui_getLatestCheckpointSequenceNumber", 
        "params":[], 
        "id":1
    }' | json_pp
import { createSuiClient } from "@shinami/clients/sui";

const nodeClient = createSuiClient(NODE_SERVICE_API_KEY);

const resp = await nodeClient.getLatestCheckpointSequenceNumber();
console.log(resp);

Example response

{
  "jsonrpc":"2.0",
  "result":"82251747",
  "id":1
}
82251895

Response

  • BigInt<u64> : The sequence number of the latest checkpoint that has been executed by the Fullnode.

sui_getProtocolConfig

Description
Return the protocol config table for the given version number. If the version number is not specified, If none is specified, the node uses the version of the latest epoch it has processed.

Params

NameTypeDescription
versionstring(Optional) Protocol version specifier. If omitted, the latest protocol config table for the node will be returned.

Example Request

curl https://api.shinami.com/node/v1 \
-X POST \
-H 'X-API-Key: sui_mainnet_78823fb4fde42954c8ec8925fb1f7614' \
-H 'Content-Type: application/json' \
-d '{ 
        "jsonrpc":"2.0", 
        "method":"sui_getProtocolConfig", 
        "params":["68"], 
        "id":1
    }' | json_pp

import { createSuiClient } from "@shinami/clients/sui";

const nodeClient = createSuiClient(NODE_SERVICE_API_KEY);

const resp = await nodeClient.getProtocolConfig({
    version: "68"
});

console.log(resp);

Example Response

{
   "id" : 1,
   "jsonrpc" : "2.0",
   "result" : {
      "attributes" : {
         "address_from_bytes_cost_base" : {
            "u64" : "52"
         },
         "address_from_u256_cost_base" : {
            "u64" : "52"
         },
         "address_to_u256_cost_base" : {
            "u64" : "52"
         },
         "base_tx_cost_fixed" : {
            "u64" : "1000"
         },
         "base_tx_cost_per_byte" : {
            "u64" : "0"
         },
         "bcs_failure_cost" : {
            "u64" : "52"
         },
         "bcs_legacy_min_output_size_cost" : {
            "u64" : "1"
         },
         "bcs_per_byte_serialized_cost" : {
            "u64" : "2"
         },
         "binary_address_identifiers" : {
            "u16" : "100"
         },
         "binary_constant_pool" : {
            "u16" : "4000"
         },
         "binary_enum_def_instantiations" : null,
         "binary_enum_defs" : null,
         "binary_field_handles" : {
            "u16" : "500"
         },
         "binary_field_instantiations" : {
            "u16" : "250"
         },
         "binary_friend_decls" : {
            "u16" : "100"
         },
         "binary_function_defs" : {
            "u16" : "1000"
         },
         "binary_function_handles" : {
            "u16" : "1500"
         },
         "binary_function_instantiations" : {
            "u16" : "750"
         },
         "binary_identifiers" : {
            "u16" : "10000"
         },
         "binary_module_handles" : {
            "u16" : "100"
         },
         "binary_signatures" : {
            "u16" : "1000"
         },
         "binary_struct_def_instantiations" : {
            "u16" : "100"
         },
         "binary_struct_defs" : {
            "u16" : "200"
         },
         "binary_struct_handles" : {
            "u16" : "300"
         },
         "binary_variant_handles" : null,
         "binary_variant_instantiation_handles" : null,
         "bls12381_bls12381_min_pk_verify_cost_base" : {
            "u64" : "52"
         },
         "bls12381_bls12381_min_pk_verify_msg_cost_per_block" : {
            "u64" : "2"
         },
         "bls12381_bls12381_min_pk_verify_msg_cost_per_byte" : {
            "u64" : "2"
         },
         "bls12381_bls12381_min_sig_verify_cost_base" : {
            "u64" : "52"
         },
         "bls12381_bls12381_min_sig_verify_msg_cost_per_block" : {
            "u64" : "2"
         },
         "bls12381_bls12381_min_sig_verify_msg_cost_per_byte" : {
            "u64" : "2"
         },
         "bridge_should_try_to_finalize_committee" : {
            "bool" : "true"
         },
         "buffer_stake_for_protocol_upgrade_bps" : {
            "u64" : "5000"
         },
         "check_zklogin_id_cost_base" : {
            "u64" : "200"
         },
         "check_zklogin_issuer_cost_base" : {
            "u64" : "200"
         },
         "checkpoint_summary_version_specific_data" : {
            "u64" : "1"
         },
         "config_read_setting_impl_cost_base" : {
            "u64" : "100"
         },
         "config_read_setting_impl_cost_per_byte" : {
            "u64" : "40"
         },
         "consensus_bad_nodes_stake_threshold" : {
            "u64" : "20"
         },
         "consensus_gc_depth" : null,
         "consensus_max_num_transactions_in_block" : {
            "u64" : "512"
         },
         "consensus_max_transaction_size_bytes" : {
            "u64" : "262144"
         },
         "consensus_max_transactions_in_block_bytes" : {
            "u64" : "524288"
         },
         "crypto_invalid_arguments_cost" : {
            "u64" : "100"
         },
         "debug_print_base_cost" : {
            "u64" : "52"
         },
         "debug_print_stack_trace_base_cost" : {
            "u64" : "52"
         },
         "dynamic_field_add_child_object_cost_base" : {
            "u64" : "100"
         },
         "dynamic_field_add_child_object_struct_tag_cost_per_byte" : {
            "u64" : "10"
         },
         "dynamic_field_add_child_object_type_cost_per_byte" : {
            "u64" : "10"
         },
         "dynamic_field_add_child_object_value_cost_per_byte" : {
            "u64" : "10"
         },
         "dynamic_field_borrow_child_object_child_ref_cost_per_byte" : {
            "u64" : "10"
         },
         "dynamic_field_borrow_child_object_cost_base" : {
            "u64" : "100"
         },
         "dynamic_field_borrow_child_object_type_cost_per_byte" : {
            "u64" : "10"
         },
         "dynamic_field_has_child_object_cost_base" : {
            "u64" : "100"
         },
         "dynamic_field_has_child_object_with_ty_cost_base" : {
            "u64" : "100"
         },
         "dynamic_field_has_child_object_with_ty_type_cost_per_byte" : {
            "u64" : "2"
         },
         "dynamic_field_has_child_object_with_ty_type_tag_cost_per_byte" : {
            "u64" : "2"
         },
         "dynamic_field_hash_type_and_key_cost_base" : {
            "u64" : "100"
         },
         "dynamic_field_hash_type_and_key_type_cost_per_byte" : {
            "u64" : "2"
         },
         "dynamic_field_hash_type_and_key_type_tag_cost_per_byte" : {
            "u64" : "2"
         },
         "dynamic_field_hash_type_and_key_value_cost_per_byte" : {
            "u64" : "2"
         },
         "dynamic_field_remove_child_object_child_cost_per_byte" : {
            "u64" : "2"
         },
         "dynamic_field_remove_child_object_cost_base" : {
            "u64" : "100"
         },
         "dynamic_field_remove_child_object_type_cost_per_byte" : {
            "u64" : "2"
         },
         "ecdsa_k1_decompress_pubkey_cost_base" : {
            "u64" : "52"
         },
         "ecdsa_k1_ecrecover_keccak256_cost_base" : {
            "u64" : "52"
         },
         "ecdsa_k1_ecrecover_keccak256_msg_cost_per_block" : {
            "u64" : "2"
         },
         "ecdsa_k1_ecrecover_keccak256_msg_cost_per_byte" : {
            "u64" : "2"
         },
         "ecdsa_k1_ecrecover_sha256_cost_base" : {
            "u64" : "52"
         },
         "ecdsa_k1_ecrecover_sha256_msg_cost_per_block" : {
            "u64" : "2"
         },
         "ecdsa_k1_ecrecover_sha256_msg_cost_per_byte" : {
            "u64" : "2"
         },
         "ecdsa_k1_secp256k1_verify_keccak256_cost_base" : {
            "u64" : "52"
         },
         "ecdsa_k1_secp256k1_verify_keccak256_msg_cost_per_block" : {
            "u64" : "2"
         },
         "ecdsa_k1_secp256k1_verify_keccak256_msg_cost_per_byte" : {
            "u64" : "2"
         },
         "ecdsa_k1_secp256k1_verify_sha256_cost_base" : {
            "u64" : "52"
         },
         "ecdsa_k1_secp256k1_verify_sha256_msg_cost_per_block" : {
            "u64" : "2"
         },
         "ecdsa_k1_secp256k1_verify_sha256_msg_cost_per_byte" : {
            "u64" : "2"
         },
         "ecdsa_r1_ecrecover_keccak256_cost_base" : {
            "u64" : "52"
         },
         "ecdsa_r1_ecrecover_keccak256_msg_cost_per_block" : {
            "u64" : "2"
         },
         "ecdsa_r1_ecrecover_keccak256_msg_cost_per_byte" : {
            "u64" : "2"
         },
         "ecdsa_r1_ecrecover_sha256_cost_base" : {
            "u64" : "52"
         },
         "ecdsa_r1_ecrecover_sha256_msg_cost_per_block" : {
            "u64" : "2"
         },
         "ecdsa_r1_ecrecover_sha256_msg_cost_per_byte" : {
            "u64" : "2"
         },
         "ecdsa_r1_secp256r1_verify_keccak256_cost_base" : {
            "u64" : "52"
         },
         "ecdsa_r1_secp256r1_verify_keccak256_msg_cost_per_block" : {
            "u64" : "2"
         },
         "ecdsa_r1_secp256r1_verify_keccak256_msg_cost_per_byte" : {
            "u64" : "2"
         },
         "ecdsa_r1_secp256r1_verify_sha256_cost_base" : {
            "u64" : "52"
         },
         "ecdsa_r1_secp256r1_verify_sha256_msg_cost_per_block" : {
            "u64" : "2"
         },
         "ecdsa_r1_secp256r1_verify_sha256_msg_cost_per_byte" : {
            "u64" : "2"
         },
         "ecvrf_ecvrf_verify_alpha_string_cost_per_block" : {
            "u64" : "2"
         },
         "ecvrf_ecvrf_verify_alpha_string_cost_per_byte" : {
            "u64" : "2"
         },
         "ecvrf_ecvrf_verify_cost_base" : {
            "u64" : "52"
         },
         "ed25519_ed25519_verify_cost_base" : {
            "u64" : "52"
         },
         "ed25519_ed25519_verify_msg_cost_per_block" : {
            "u64" : "2"
         },
         "ed25519_ed25519_verify_msg_cost_per_byte" : {
            "u64" : "2"
         },
         "event_emit_cost_base" : {
            "u64" : "52"
         },
         "event_emit_output_cost_per_byte" : {
            "u64" : "10"
         },
         "event_emit_tag_size_derivation_cost_per_byte" : {
            "u64" : "5"
         },
         "event_emit_value_size_derivation_cost_per_byte" : {
            "u64" : "2"
         },
         "execution_version" : {
            "u64" : "3"
         },
         "gas_budget_based_txn_cost_absolute_cap_commit_count" : {
            "u64" : "50"
         },
         "gas_budget_based_txn_cost_cap_factor" : {
            "u64" : "400000"
         },
         "gas_model_version" : {
            "u64" : "8"
         },
         "gas_rounding_step" : {
            "u64" : "1000"
         },
         "groth16_prepare_verifying_key_bls12381_cost_base" : {
            "u64" : "52"
         },
         "groth16_prepare_verifying_key_bn254_cost_base" : {
            "u64" : "52"
         },
         "groth16_verify_groth16_proof_internal_bls12381_cost_base" : {
            "u64" : "52"
         },
         "groth16_verify_groth16_proof_internal_bls12381_cost_per_public_input" : {
            "u64" : "2"
         },
         "groth16_verify_groth16_proof_internal_bn254_cost_base" : {
            "u64" : "52"
         },
         "groth16_verify_groth16_proof_internal_bn254_cost_per_public_input" : {
            "u64" : "2"
         },
         "groth16_verify_groth16_proof_internal_public_input_cost_per_byte" : {
            "u64" : "2"
         },
         "group_ops_bls12381_decode_g1_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_decode_g2_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_decode_gt_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_decode_scalar_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g1_add_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g1_div_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g1_hash_to_base_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g1_hash_to_cost_per_byte" : {
            "u64" : "2"
         },
         "group_ops_bls12381_g1_msm_base_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g1_msm_base_cost_per_input" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g1_mul_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g1_sub_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g1_to_uncompressed_g1_cost" : {
            "u64" : "26"
         },
         "group_ops_bls12381_g2_add_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g2_div_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g2_hash_to_base_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g2_hash_to_cost_per_byte" : {
            "u64" : "2"
         },
         "group_ops_bls12381_g2_msm_base_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g2_msm_base_cost_per_input" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g2_mul_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_g2_sub_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_gt_add_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_gt_div_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_gt_mul_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_gt_sub_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_msm_max_len" : {
            "u32" : "32"
         },
         "group_ops_bls12381_pairing_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_scalar_add_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_scalar_div_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_scalar_mul_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_scalar_sub_cost" : {
            "u64" : "52"
         },
         "group_ops_bls12381_uncompressed_g1_sum_base_cost" : {
            "u64" : "26"
         },
         "group_ops_bls12381_uncompressed_g1_sum_cost_per_term" : {
            "u64" : "13"
         },
         "group_ops_bls12381_uncompressed_g1_sum_max_terms" : {
            "u64" : "2000"
         },
         "group_ops_bls12381_uncompressed_g1_to_g1_cost" : {
            "u64" : "52"
         },
         "hash_blake2b256_cost_base" : {
            "u64" : "52"
         },
         "hash_blake2b256_data_cost_per_block" : {
            "u64" : "2"
         },
         "hash_blake2b256_data_cost_per_byte" : {
            "u64" : "2"
         },
         "hash_keccak256_cost_base" : {
            "u64" : "52"
         },
         "hash_keccak256_data_cost_per_block" : {
            "u64" : "2"
         },
         "hash_keccak256_data_cost_per_byte" : {
            "u64" : "2"
         },
         "hash_sha2_256_base_cost" : {
            "u64" : "52"
         },
         "hash_sha2_256_legacy_min_input_len_cost" : {
            "u64" : "1"
         },
         "hash_sha2_256_per_byte_cost" : {
            "u64" : "2"
         },
         "hash_sha3_256_base_cost" : {
            "u64" : "52"
         },
         "hash_sha3_256_legacy_min_input_len_cost" : {
            "u64" : "1"
         },
         "hash_sha3_256_per_byte_cost" : {
            "u64" : "2"
         },
         "hmac_hmac_sha3_256_cost_base" : {
            "u64" : "52"
         },
         "hmac_hmac_sha3_256_input_cost_per_block" : {
            "u64" : "2"
         },
         "hmac_hmac_sha3_256_input_cost_per_byte" : {
            "u64" : "2"
         },
         "max_accumulated_randomness_txn_cost_per_object_in_mysticeti_commit" : {
            "u64" : "3700000"
         },
         "max_accumulated_txn_cost_per_object_in_mysticeti_commit" : {
            "u64" : "18500000"
         },
         "max_accumulated_txn_cost_per_object_in_narwhal_commit" : {
            "u64" : "40"
         },
         "max_age_of_jwk_in_epochs" : {
            "u64" : "1"
         },
         "max_arguments" : {
            "u32" : "512"
         },
         "max_back_edges_per_function" : {
            "u64" : "10000"
         },
         "max_back_edges_per_module" : {
            "u64" : "10000"
         },
         "max_basic_blocks" : {
            "u64" : "1024"
         },
         "max_checkpoint_size_bytes" : {
            "u64" : "31457280"
         },
         "max_deferral_rounds_for_congestion_control" : {
            "u64" : "10"
         },
         "max_dependency_depth" : {
            "u64" : "100"
         },
         "max_event_emit_size" : {
            "u64" : "256000"
         },
         "max_event_emit_size_total" : {
            "u64" : "65536000"
         },
         "max_fields_in_struct" : {
            "u64" : "32"
         },
         "max_function_definitions" : {
            "u64" : "1000"
         },
         "max_function_parameters" : {
            "u64" : "128"
         },
         "max_gas_computation_bucket" : {
            "u64" : "5000000"
         },
         "max_gas_payment_objects" : {
            "u32" : "256"
         },
         "max_gas_price" : {
            "u64" : "100000"
         },
         "max_generic_instantiation_length" : {
            "u64" : "32"
         },
         "max_input_objects" : {
            "u64" : "2048"
         },
         "max_jwk_votes_per_validator_per_epoch" : {
            "u64" : "240"
         },
         "max_loop_depth" : {
            "u64" : "5"
         },
         "max_meter_ticks_per_module" : {
            "u64" : "16000000"
         },
         "max_meter_ticks_per_package" : {
            "u64" : "16000000"
         },
         "max_modules_in_publish" : {
            "u32" : "64"
         },
         "max_move_enum_variants" : null,
         "max_move_identifier_len" : {
            "u64" : "128"
         },
         "max_move_object_size" : {
            "u64" : "256000"
         },
         "max_move_package_size" : {
            "u64" : "102400"
         },
         "max_move_value_depth" : {
            "u64" : "128"
         },
         "max_move_vector_len" : {
            "u64" : "262144"
         },
         "max_num_deleted_move_object_ids" : {
            "u64" : "2048"
         },
         "max_num_deleted_move_object_ids_system_tx" : {
            "u64" : "32768"
         },
         "max_num_event_emit" : {
            "u64" : "1024"
         },
         "max_num_new_move_object_ids" : {
            "u64" : "2048"
         },
         "max_num_new_move_object_ids_system_tx" : {
            "u64" : "32768"
         },
         "max_num_transferred_move_object_ids" : {
            "u64" : "2048"
         },
         "max_num_transferred_move_object_ids_system_tx" : {
            "u64" : "32768"
         },
         "max_package_dependencies" : {
            "u32" : "32"
         },
         "max_programmable_tx_commands" : {
            "u32" : "1024"
         },
         "max_publish_or_upgrade_per_ptb" : {
            "u64" : "5"
         },
         "max_pure_argument_size" : {
            "u32" : "16384"
         },
         "max_push_size" : {
            "u64" : "10000"
         },
         "max_serialized_tx_effects_size_bytes" : {
            "u64" : "524288"
         },
         "max_serialized_tx_effects_size_bytes_system_tx" : {
            "u64" : "8388608"
         },
         "max_size_written_objects" : {
            "u64" : "5000000"
         },
         "max_size_written_objects_system_tx" : {
            "u64" : "50000000"
         },
         "max_soft_bundle_size" : {
            "u64" : "5"
         },
         "max_struct_definitions" : {
            "u64" : "200"
         },
         "max_transactions_per_checkpoint" : {
            "u64" : "10000"
         },
         "max_tx_gas" : {
            "u64" : "50000000000"
         },
         "max_tx_size_bytes" : {
            "u64" : "131072"
         },
         "max_txn_cost_overage_per_object_in_commit" : {
            "u64" : "18446744073709551615"
         },
         "max_type_argument_depth" : {
            "u32" : "16"
         },
         "max_type_arguments" : {
            "u32" : "16"
         },
         "max_type_nodes" : {
            "u64" : "256"
         },
         "max_type_to_layout_nodes" : {
            "u64" : "512"
         },
         "max_value_stack_size" : {
            "u64" : "1024"
         },
         "max_verifier_meter_ticks_per_function" : {
            "u64" : "16000000"
         },
         "min_checkpoint_interval_ms" : {
            "u64" : "200"
         },
         "min_move_binary_format_version" : {
            "u32" : "6"
         },
         "move_binary_format_version" : {
            "u32" : "7"
         },
         "obj_access_cost_delete_per_byte" : {
            "u64" : "40"
         },
         "obj_access_cost_mutate_per_byte" : {
            "u64" : "40"
         },
         "obj_access_cost_read_per_byte" : {
            "u64" : "15"
         },
         "obj_access_cost_verify_per_byte" : {
            "u64" : "200"
         },
         "obj_data_cost_refundable" : {
            "u64" : "100"
         },
         "obj_metadata_cost_non_refundable" : {
            "u64" : "50"
         },
         "object_borrow_uid_cost_base" : {
            "u64" : "52"
         },
         "object_delete_impl_cost_base" : {
            "u64" : "52"
         },
         "object_record_new_uid_cost_base" : {
            "u64" : "52"
         },
         "object_runtime_max_num_cached_objects" : {
            "u64" : "1000"
         },
         "object_runtime_max_num_cached_objects_system_tx" : {
            "u64" : "16000"
         },
         "object_runtime_max_num_store_entries" : {
            "u64" : "1000"
         },
         "object_runtime_max_num_store_entries_system_tx" : {
            "u64" : "16000"
         },
         "package_publish_cost_fixed" : {
            "u64" : "1000"
         },
         "package_publish_cost_per_byte" : {
            "u64" : "80"
         },
         "poseidon_bn254_cost_base" : null,
         "poseidon_bn254_cost_per_block" : null,
         "random_beacon_dkg_timeout_round" : {
            "u32" : "3000"
         },
         "random_beacon_dkg_version" : {
            "u64" : "1"
         },
         "random_beacon_min_round_interval_ms" : {
            "u64" : "500"
         },
         "random_beacon_reduction_allowed_delta" : {
            "u16" : "800"
         },
         "random_beacon_reduction_lower_bound" : {
            "u32" : "500"
         },
         "reward_slashing_rate" : {
            "u64" : "10000"
         },
         "storage_fund_reinvest_rate" : {
            "u64" : "500"
         },
         "storage_gas_price" : {
            "u64" : "76"
         },
         "storage_rebate_rate" : {
            "u64" : "9900"
         },
         "string_check_utf8_base_cost" : {
            "u64" : "52"
         },
         "string_check_utf8_per_byte_cost" : {
            "u64" : "2"
         },
         "string_index_of_base_cost" : {
            "u64" : "52"
         },
         "string_index_of_per_byte_pattern_cost" : {
            "u64" : "2"
         },
         "string_index_of_per_byte_searched_cost" : {
            "u64" : "2"
         },
         "string_is_char_boundary_base_cost" : {
            "u64" : "52"
         },
         "string_sub_string_base_cost" : {
            "u64" : "52"
         },
         "string_sub_string_per_byte_cost" : {
            "u64" : "2"
         },
         "transfer_freeze_object_cost_base" : {
            "u64" : "52"
         },
         "transfer_receive_object_cost_base" : {
            "u64" : "52"
         },
         "transfer_share_object_cost_base" : {
            "u64" : "52"
         },
         "transfer_transfer_internal_cost_base" : {
            "u64" : "52"
         },
         "tx_context_derive_id_cost_base" : {
            "u64" : "52"
         },
         "type_name_get_base_cost" : {
            "u64" : "52"
         },
         "type_name_get_per_byte_cost" : {
            "u64" : "2"
         },
         "types_is_one_time_witness_cost_base" : {
            "u64" : "52"
         },
         "types_is_one_time_witness_type_cost_per_byte" : {
            "u64" : "2"
         },
         "types_is_one_time_witness_type_tag_cost_per_byte" : {
            "u64" : "2"
         },
         "validator_validate_metadata_cost_base" : {
            "u64" : "52"
         },
         "validator_validate_metadata_data_cost_per_byte" : {
            "u64" : "2"
         },
         "vdf_hash_to_input_cost" : null,
         "vdf_verify_vdf_cost" : null,
         "vector_borrow_base_cost" : {
            "u64" : "52"
         },
         "vector_destroy_empty_base_cost" : {
            "u64" : "52"
         },
         "vector_empty_base_cost" : {
            "u64" : "52"
         },
         "vector_length_base_cost" : {
            "u64" : "52"
         },
         "vector_pop_back_base_cost" : {
            "u64" : "52"
         },
         "vector_push_back_base_cost" : {
            "u64" : "52"
         },
         "vector_push_back_legacy_per_abstract_memory_unit_cost" : {
            "u64" : "2"
         },
         "vector_swap_base_cost" : {
            "u64" : "52"
         }
      },
      "featureFlags" : {
         "accept_zklogin_in_multisig" : true,
         "advance_epoch_start_time_in_safe_mode" : true,
         "advance_to_highest_supported_protocol_version" : true,
         "allow_receiving_object_id" : true,
         "authority_capabilities_v2" : false,
         "ban_entry_init" : true,
         "bridge" : true,
         "commit_root_state_digest" : true,
         "consensus_distributed_vote_scoring_strategy" : true,
         "consensus_order_end_of_epoch_last" : true,
         "consensus_round_prober" : true,
         "disable_invariant_violation_check_in_swap_loc" : true,
         "disallow_adding_abilities_on_upgrade" : true,
         "disallow_change_struct_type_params_on_upgrade" : true,
         "disallow_new_modules_in_deps_only_packages" : true,
         "enable_coin_deny_list" : true,
         "enable_coin_deny_list_v2" : true,
         "enable_effects_v2" : true,
         "enable_group_ops_native_function_msm" : false,
         "enable_group_ops_native_functions" : true,
         "enable_jwk_consensus_updates" : true,
         "enable_poseidon" : false,
         "enable_vdf" : false,
         "end_of_epoch_transaction_supported" : true,
         "fresh_vm_on_framework_upgrade" : true,
         "hardened_otw_check" : true,
         "include_consensus_digest_in_prologue" : true,
         "loaded_child_object_format" : true,
         "loaded_child_object_format_type" : true,
         "loaded_child_objects_fixed" : true,
         "missing_type_is_compatibility_error" : true,
         "mysticeti_fastpath" : false,
         "mysticeti_leader_scoring_and_schedule" : true,
         "mysticeti_use_committed_subdag_digest" : true,
         "narwhal_certificate_v2" : true,
         "narwhal_new_leader_election_schedule" : true,
         "narwhal_versioned_metadata" : true,
         "no_extraneous_module_bytes" : true,
         "package_digest_hash_module" : true,
         "package_upgrades" : true,
         "passkey_auth" : false,
         "prepend_prologue_tx_in_consensus_commit_in_checkpoints" : true,
         "random_beacon" : true,
         "receive_objects" : true,
         "recompute_has_public_transfer_in_execution" : true,
         "record_consensus_determined_version_assignments_in_prologue" : true,
         "reject_mutable_random_on_entry_functions" : true,
         "relocate_event_module" : true,
         "reshare_at_same_initial_version" : true,
         "resolve_abort_locations_to_package_id" : true,
         "rethrow_serialization_type_layout_errors" : true,
         "scoring_decision_with_validity_cutoff" : true,
         "shared_object_deletion" : true,
         "simple_conservation_checks" : true,
         "simplified_unwrap_then_delete" : true,
         "soft_bundle" : true,
         "throughput_aware_consensus_submission" : false,
         "txn_base_cost_as_multiplier" : true,
         "uncompressed_g1_group_elements" : false,
         "upgraded_multisig_supported" : true,
         "validate_identifier_inputs" : true,
         "verify_legacy_zklogin_address" : true,
         "zklogin_auth" : true
      },
      "maxSupportedProtocolVersion" : "68",
      "minSupportedProtocolVersion" : "1",
      "protocolVersion" : "68"
   }
}

{
  minSupportedProtocolVersion: '1',
  maxSupportedProtocolVersion: '68',
  protocolVersion: '68',
  featureFlags: {
    accept_zklogin_in_multisig: true,
    advance_epoch_start_time_in_safe_mode: true,
    advance_to_highest_supported_protocol_version: true,
    allow_receiving_object_id: true,
    authority_capabilities_v2: false,
    ban_entry_init: true,
    bridge: true,
    commit_root_state_digest: true,
    consensus_distributed_vote_scoring_strategy: true,
    consensus_order_end_of_epoch_last: true,
    consensus_round_prober: true,
    disable_invariant_violation_check_in_swap_loc: true,
    disallow_adding_abilities_on_upgrade: true,
    disallow_change_struct_type_params_on_upgrade: true,
    disallow_new_modules_in_deps_only_packages: true,
    enable_coin_deny_list: true,
    enable_coin_deny_list_v2: true,
    enable_effects_v2: true,
    enable_group_ops_native_function_msm: false,
    enable_group_ops_native_functions: true,
    enable_jwk_consensus_updates: true,
    enable_poseidon: false,
    enable_vdf: false,
    end_of_epoch_transaction_supported: true,
    fresh_vm_on_framework_upgrade: true,
    hardened_otw_check: true,
    include_consensus_digest_in_prologue: true,
    loaded_child_object_format: true,
    loaded_child_object_format_type: true,
    loaded_child_objects_fixed: true,
    missing_type_is_compatibility_error: true,
    mysticeti_fastpath: false,
    mysticeti_leader_scoring_and_schedule: true,
    mysticeti_use_committed_subdag_digest: true,
    narwhal_certificate_v2: true,
    narwhal_new_leader_election_schedule: true,
    narwhal_versioned_metadata: true,
    no_extraneous_module_bytes: true,
    package_digest_hash_module: true,
    package_upgrades: true,
    passkey_auth: false,
    prepend_prologue_tx_in_consensus_commit_in_checkpoints: true,
    random_beacon: true,
    receive_objects: true,
    recompute_has_public_transfer_in_execution: true,
    record_consensus_determined_version_assignments_in_prologue: true,
    reject_mutable_random_on_entry_functions: true,
    relocate_event_module: true,
    reshare_at_same_initial_version: true,
    resolve_abort_locations_to_package_id: true,
    rethrow_serialization_type_layout_errors: true,
    scoring_decision_with_validity_cutoff: true,
    shared_object_deletion: true,
    simple_conservation_checks: true,
    simplified_unwrap_then_delete: true,
    soft_bundle: true,
    throughput_aware_consensus_submission: false,
    txn_base_cost_as_multiplier: true,
    uncompressed_g1_group_elements: false,
    upgraded_multisig_supported: true,
    validate_identifier_inputs: true,
    verify_legacy_zklogin_address: true,
    zklogin_auth: true
  },
  attributes: {
    address_from_bytes_cost_base: { u64: '52' },
    address_from_u256_cost_base: { u64: '52' },
    address_to_u256_cost_base: { u64: '52' },
    base_tx_cost_fixed: { u64: '1000' },
    base_tx_cost_per_byte: { u64: '0' },
    bcs_failure_cost: { u64: '52' },
    bcs_legacy_min_output_size_cost: { u64: '1' },
    bcs_per_byte_serialized_cost: { u64: '2' },
    binary_address_identifiers: { u16: '100' },
    binary_constant_pool: { u16: '4000' },
    binary_enum_def_instantiations: null,
    binary_enum_defs: null,
    binary_field_handles: { u16: '500' },
    binary_field_instantiations: { u16: '250' },
    binary_friend_decls: { u16: '100' },
    binary_function_defs: { u16: '1000' },
    binary_function_handles: { u16: '1500' },
    binary_function_instantiations: { u16: '750' },
    binary_identifiers: { u16: '10000' },
    binary_module_handles: { u16: '100' },
    binary_signatures: { u16: '1000' },
    binary_struct_def_instantiations: { u16: '100' },
    binary_struct_defs: { u16: '200' },
    binary_struct_handles: { u16: '300' },
    binary_variant_handles: null,
    binary_variant_instantiation_handles: null,
    bls12381_bls12381_min_pk_verify_cost_base: { u64: '52' },
    bls12381_bls12381_min_pk_verify_msg_cost_per_block: { u64: '2' },
    bls12381_bls12381_min_pk_verify_msg_cost_per_byte: { u64: '2' },
    bls12381_bls12381_min_sig_verify_cost_base: { u64: '52' },
    bls12381_bls12381_min_sig_verify_msg_cost_per_block: { u64: '2' },
    bls12381_bls12381_min_sig_verify_msg_cost_per_byte: { u64: '2' },
    bridge_should_try_to_finalize_committee: { bool: 'true' },
    buffer_stake_for_protocol_upgrade_bps: { u64: '5000' },
    check_zklogin_id_cost_base: { u64: '200' },
    check_zklogin_issuer_cost_base: { u64: '200' },
    checkpoint_summary_version_specific_data: { u64: '1' },
    config_read_setting_impl_cost_base: { u64: '100' },
    config_read_setting_impl_cost_per_byte: { u64: '40' },
    consensus_bad_nodes_stake_threshold: { u64: '20' },
    consensus_gc_depth: null,
    consensus_max_num_transactions_in_block: { u64: '512' },
    consensus_max_transaction_size_bytes: { u64: '262144' },
    consensus_max_transactions_in_block_bytes: { u64: '524288' },
    crypto_invalid_arguments_cost: { u64: '100' },
    debug_print_base_cost: { u64: '52' },
    debug_print_stack_trace_base_cost: { u64: '52' },
    dynamic_field_add_child_object_cost_base: { u64: '100' },
    dynamic_field_add_child_object_struct_tag_cost_per_byte: { u64: '10' },
    dynamic_field_add_child_object_type_cost_per_byte: { u64: '10' },
    dynamic_field_add_child_object_value_cost_per_byte: { u64: '10' },
    dynamic_field_borrow_child_object_child_ref_cost_per_byte: { u64: '10' },
    dynamic_field_borrow_child_object_cost_base: { u64: '100' },
    dynamic_field_borrow_child_object_type_cost_per_byte: { u64: '10' },
    dynamic_field_has_child_object_cost_base: { u64: '100' },
    dynamic_field_has_child_object_with_ty_cost_base: { u64: '100' },
    dynamic_field_has_child_object_with_ty_type_cost_per_byte: { u64: '2' },
    dynamic_field_has_child_object_with_ty_type_tag_cost_per_byte: { u64: '2' },
    dynamic_field_hash_type_and_key_cost_base: { u64: '100' },
    dynamic_field_hash_type_and_key_type_cost_per_byte: { u64: '2' },
    dynamic_field_hash_type_and_key_type_tag_cost_per_byte: { u64: '2' },
    dynamic_field_hash_type_and_key_value_cost_per_byte: { u64: '2' },
    dynamic_field_remove_child_object_child_cost_per_byte: { u64: '2' },
    dynamic_field_remove_child_object_cost_base: { u64: '100' },
    dynamic_field_remove_child_object_type_cost_per_byte: { u64: '2' },
    ecdsa_k1_decompress_pubkey_cost_base: { u64: '52' },
    ecdsa_k1_ecrecover_keccak256_cost_base: { u64: '52' },
    ecdsa_k1_ecrecover_keccak256_msg_cost_per_block: { u64: '2' },
    ecdsa_k1_ecrecover_keccak256_msg_cost_per_byte: { u64: '2' },
    ecdsa_k1_ecrecover_sha256_cost_base: { u64: '52' },
    ecdsa_k1_ecrecover_sha256_msg_cost_per_block: { u64: '2' },
    ecdsa_k1_ecrecover_sha256_msg_cost_per_byte: { u64: '2' },
    ecdsa_k1_secp256k1_verify_keccak256_cost_base: { u64: '52' },
    ecdsa_k1_secp256k1_verify_keccak256_msg_cost_per_block: { u64: '2' },
    ecdsa_k1_secp256k1_verify_keccak256_msg_cost_per_byte: { u64: '2' },
    ecdsa_k1_secp256k1_verify_sha256_cost_base: { u64: '52' },
    ecdsa_k1_secp256k1_verify_sha256_msg_cost_per_block: { u64: '2' },
    ecdsa_k1_secp256k1_verify_sha256_msg_cost_per_byte: { u64: '2' },
    ecdsa_r1_ecrecover_keccak256_cost_base: { u64: '52' },
    ecdsa_r1_ecrecover_keccak256_msg_cost_per_block: { u64: '2' },
    ecdsa_r1_ecrecover_keccak256_msg_cost_per_byte: { u64: '2' },
    ecdsa_r1_ecrecover_sha256_cost_base: { u64: '52' },
    ecdsa_r1_ecrecover_sha256_msg_cost_per_block: { u64: '2' },
    ecdsa_r1_ecrecover_sha256_msg_cost_per_byte: { u64: '2' },
    ecdsa_r1_secp256r1_verify_keccak256_cost_base: { u64: '52' },
    ecdsa_r1_secp256r1_verify_keccak256_msg_cost_per_block: { u64: '2' },
    ecdsa_r1_secp256r1_verify_keccak256_msg_cost_per_byte: { u64: '2' },
    ecdsa_r1_secp256r1_verify_sha256_cost_base: { u64: '52' },
    ecdsa_r1_secp256r1_verify_sha256_msg_cost_per_block: { u64: '2' },
    ecdsa_r1_secp256r1_verify_sha256_msg_cost_per_byte: { u64: '2' },
    ecvrf_ecvrf_verify_alpha_string_cost_per_block: { u64: '2' },
    ecvrf_ecvrf_verify_alpha_string_cost_per_byte: { u64: '2' },
    ecvrf_ecvrf_verify_cost_base: { u64: '52' },
    ed25519_ed25519_verify_cost_base: { u64: '52' },
    ed25519_ed25519_verify_msg_cost_per_block: { u64: '2' },
    ed25519_ed25519_verify_msg_cost_per_byte: { u64: '2' },
    event_emit_cost_base: { u64: '52' },
    event_emit_output_cost_per_byte: { u64: '10' },
    event_emit_tag_size_derivation_cost_per_byte: { u64: '5' },
    event_emit_value_size_derivation_cost_per_byte: { u64: '2' },
    execution_version: { u64: '3' },
    gas_budget_based_txn_cost_absolute_cap_commit_count: { u64: '50' },
    gas_budget_based_txn_cost_cap_factor: { u64: '400000' },
    gas_model_version: { u64: '8' },
    gas_rounding_step: { u64: '1000' },
    groth16_prepare_verifying_key_bls12381_cost_base: { u64: '52' },
    groth16_prepare_verifying_key_bn254_cost_base: { u64: '52' },
    groth16_verify_groth16_proof_internal_bls12381_cost_base: { u64: '52' },
    groth16_verify_groth16_proof_internal_bls12381_cost_per_public_input: { u64: '2' },
    groth16_verify_groth16_proof_internal_bn254_cost_base: { u64: '52' },
    groth16_verify_groth16_proof_internal_bn254_cost_per_public_input: { u64: '2' },
    groth16_verify_groth16_proof_internal_public_input_cost_per_byte: { u64: '2' },
    group_ops_bls12381_decode_g1_cost: { u64: '52' },
    group_ops_bls12381_decode_g2_cost: { u64: '52' },
    group_ops_bls12381_decode_gt_cost: { u64: '52' },
    group_ops_bls12381_decode_scalar_cost: { u64: '52' },
    group_ops_bls12381_g1_add_cost: { u64: '52' },
    group_ops_bls12381_g1_div_cost: { u64: '52' },
    group_ops_bls12381_g1_hash_to_base_cost: { u64: '52' },
    group_ops_bls12381_g1_hash_to_cost_per_byte: { u64: '2' },
    group_ops_bls12381_g1_msm_base_cost: { u64: '52' },
    group_ops_bls12381_g1_msm_base_cost_per_input: { u64: '52' },
    group_ops_bls12381_g1_mul_cost: { u64: '52' },
    group_ops_bls12381_g1_sub_cost: { u64: '52' },
    group_ops_bls12381_g1_to_uncompressed_g1_cost: { u64: '26' },
    group_ops_bls12381_g2_add_cost: { u64: '52' },
    group_ops_bls12381_g2_div_cost: { u64: '52' },
    group_ops_bls12381_g2_hash_to_base_cost: { u64: '52' },
    group_ops_bls12381_g2_hash_to_cost_per_byte: { u64: '2' },
    group_ops_bls12381_g2_msm_base_cost: { u64: '52' },
    group_ops_bls12381_g2_msm_base_cost_per_input: { u64: '52' },
    group_ops_bls12381_g2_mul_cost: { u64: '52' },
    group_ops_bls12381_g2_sub_cost: { u64: '52' },
    group_ops_bls12381_gt_add_cost: { u64: '52' },
    group_ops_bls12381_gt_div_cost: { u64: '52' },
    group_ops_bls12381_gt_mul_cost: { u64: '52' },
    group_ops_bls12381_gt_sub_cost: { u64: '52' },
    group_ops_bls12381_msm_max_len: { u32: '32' },
    group_ops_bls12381_pairing_cost: { u64: '52' },
    group_ops_bls12381_scalar_add_cost: { u64: '52' },
    group_ops_bls12381_scalar_div_cost: { u64: '52' },
    group_ops_bls12381_scalar_mul_cost: { u64: '52' },
    group_ops_bls12381_scalar_sub_cost: { u64: '52' },
    group_ops_bls12381_uncompressed_g1_sum_base_cost: { u64: '26' },
    group_ops_bls12381_uncompressed_g1_sum_cost_per_term: { u64: '13' },
    group_ops_bls12381_uncompressed_g1_sum_max_terms: { u64: '2000' },
    group_ops_bls12381_uncompressed_g1_to_g1_cost: { u64: '52' },
    hash_blake2b256_cost_base: { u64: '52' },
    hash_blake2b256_data_cost_per_block: { u64: '2' },
    hash_blake2b256_data_cost_per_byte: { u64: '2' },
    hash_keccak256_cost_base: { u64: '52' },
    hash_keccak256_data_cost_per_block: { u64: '2' },
    hash_keccak256_data_cost_per_byte: { u64: '2' },
    hash_sha2_256_base_cost: { u64: '52' },
    hash_sha2_256_legacy_min_input_len_cost: { u64: '1' },
    hash_sha2_256_per_byte_cost: { u64: '2' },
    hash_sha3_256_base_cost: { u64: '52' },
    hash_sha3_256_legacy_min_input_len_cost: { u64: '1' },
    hash_sha3_256_per_byte_cost: { u64: '2' },
    hmac_hmac_sha3_256_cost_base: { u64: '52' },
    hmac_hmac_sha3_256_input_cost_per_block: { u64: '2' },
    hmac_hmac_sha3_256_input_cost_per_byte: { u64: '2' },
    max_accumulated_randomness_txn_cost_per_object_in_mysticeti_commit: { u64: '3700000' },
    max_accumulated_txn_cost_per_object_in_mysticeti_commit: { u64: '18500000' },
    max_accumulated_txn_cost_per_object_in_narwhal_commit: { u64: '40' },
    max_age_of_jwk_in_epochs: { u64: '1' },
    max_arguments: { u32: '512' },
    max_back_edges_per_function: { u64: '10000' },
    max_back_edges_per_module: { u64: '10000' },
    max_basic_blocks: { u64: '1024' },
    max_checkpoint_size_bytes: { u64: '31457280' },
    max_deferral_rounds_for_congestion_control: { u64: '10' },
    max_dependency_depth: { u64: '100' },
    max_event_emit_size: { u64: '256000' },
    max_event_emit_size_total: { u64: '65536000' },
    max_fields_in_struct: { u64: '32' },
    max_function_definitions: { u64: '1000' },
    max_function_parameters: { u64: '128' },
    max_gas_computation_bucket: { u64: '5000000' },
    max_gas_payment_objects: { u32: '256' },
    max_gas_price: { u64: '100000' },
    max_generic_instantiation_length: { u64: '32' },
    max_input_objects: { u64: '2048' },
    max_jwk_votes_per_validator_per_epoch: { u64: '240' },
    max_loop_depth: { u64: '5' },
    max_meter_ticks_per_module: { u64: '16000000' },
    max_meter_ticks_per_package: { u64: '16000000' },
    max_modules_in_publish: { u32: '64' },
    max_move_enum_variants: null,
    max_move_identifier_len: { u64: '128' },
    max_move_object_size: { u64: '256000' },
    max_move_package_size: { u64: '102400' },
    max_move_value_depth: { u64: '128' },
    max_move_vector_len: { u64: '262144' },
    max_num_deleted_move_object_ids: { u64: '2048' },
    max_num_deleted_move_object_ids_system_tx: { u64: '32768' },
    max_num_event_emit: { u64: '1024' },
    max_num_new_move_object_ids: { u64: '2048' },
    max_num_new_move_object_ids_system_tx: { u64: '32768' },
    max_num_transferred_move_object_ids: { u64: '2048' },
    max_num_transferred_move_object_ids_system_tx: { u64: '32768' },
    max_package_dependencies: { u32: '32' },
    max_programmable_tx_commands: { u32: '1024' },
    max_publish_or_upgrade_per_ptb: { u64: '5' },
    max_pure_argument_size: { u32: '16384' },
    max_push_size: { u64: '10000' },
    max_serialized_tx_effects_size_bytes: { u64: '524288' },
    max_serialized_tx_effects_size_bytes_system_tx: { u64: '8388608' },
    max_size_written_objects: { u64: '5000000' },
    max_size_written_objects_system_tx: { u64: '50000000' },
    max_soft_bundle_size: { u64: '5' },
    max_struct_definitions: { u64: '200' },
    max_transactions_per_checkpoint: { u64: '10000' },
    max_tx_gas: { u64: '50000000000' },
    max_tx_size_bytes: { u64: '131072' },
    max_txn_cost_overage_per_object_in_commit: { u64: '18446744073709551615' },
    max_type_argument_depth: { u32: '16' },
    max_type_arguments: { u32: '16' },
    max_type_nodes: { u64: '256' },
    max_type_to_layout_nodes: { u64: '512' },
    max_value_stack_size: { u64: '1024' },
    max_verifier_meter_ticks_per_function: { u64: '16000000' },
    min_checkpoint_interval_ms: { u64: '200' },
    min_move_binary_format_version: { u32: '6' },
    move_binary_format_version: { u32: '7' },
    obj_access_cost_delete_per_byte: { u64: '40' },
    obj_access_cost_mutate_per_byte: { u64: '40' },
    obj_access_cost_read_per_byte: { u64: '15' },
    obj_access_cost_verify_per_byte: { u64: '200' },
    obj_data_cost_refundable: { u64: '100' },
    obj_metadata_cost_non_refundable: { u64: '50' },
    object_borrow_uid_cost_base: { u64: '52' },
    object_delete_impl_cost_base: { u64: '52' },
    object_record_new_uid_cost_base: { u64: '52' },
    object_runtime_max_num_cached_objects: { u64: '1000' },
    object_runtime_max_num_cached_objects_system_tx: { u64: '16000' },
    object_runtime_max_num_store_entries: { u64: '1000' },
    object_runtime_max_num_store_entries_system_tx: { u64: '16000' },
    package_publish_cost_fixed: { u64: '1000' },
    package_publish_cost_per_byte: { u64: '80' },
    poseidon_bn254_cost_base: null,
    poseidon_bn254_cost_per_block: null,
    random_beacon_dkg_timeout_round: { u32: '3000' },
    random_beacon_dkg_version: { u64: '1' },
    random_beacon_min_round_interval_ms: { u64: '500' },
    random_beacon_reduction_allowed_delta: { u16: '800' },
    random_beacon_reduction_lower_bound: { u32: '500' },
    reward_slashing_rate: { u64: '10000' },
    storage_fund_reinvest_rate: { u64: '500' },
    storage_gas_price: { u64: '76' },
    storage_rebate_rate: { u64: '9900' },
    string_check_utf8_base_cost: { u64: '52' },
    string_check_utf8_per_byte_cost: { u64: '2' },
    string_index_of_base_cost: { u64: '52' },
    string_index_of_per_byte_pattern_cost: { u64: '2' },
    string_index_of_per_byte_searched_cost: { u64: '2' },
    string_is_char_boundary_base_cost: { u64: '52' },
    string_sub_string_base_cost: { u64: '52' },
    string_sub_string_per_byte_cost: { u64: '2' },
    transfer_freeze_object_cost_base: { u64: '52' },
    transfer_receive_object_cost_base: { u64: '52' },
    transfer_share_object_cost_base: { u64: '52' },
    transfer_transfer_internal_cost_base: { u64: '52' },
    tx_context_derive_id_cost_base: { u64: '52' },
    type_name_get_base_cost: { u64: '52' },
    type_name_get_per_byte_cost: { u64: '2' },
    types_is_one_time_witness_cost_base: { u64: '52' },
    types_is_one_time_witness_type_cost_per_byte: { u64: '2' },
    types_is_one_time_witness_type_tag_cost_per_byte: { u64: '2' },
    validator_validate_metadata_cost_base: { u64: '52' },
    validator_validate_metadata_data_cost_per_byte: { u64: '2' },
    vdf_hash_to_input_cost: null,
    vdf_verify_vdf_cost: null,
    vector_borrow_base_cost: { u64: '52' },
    vector_destroy_empty_base_cost: { u64: '52' },
    vector_empty_base_cost: { u64: '52' },
    vector_length_base_cost: { u64: '52' },
    vector_pop_back_base_cost: { u64: '52' },
    vector_push_back_base_cost: { u64: '52' },
    vector_push_back_legacy_per_abstract_memory_unit_cost: { u64: '2' },
    vector_swap_base_cost: { u64: '52' }
  }
}

Response fields

The response is of typeProtocolConfig with fields

NameTypeDescription
attributes[key: string]: ProtocolConfigValue | nullAn map of the attributes of the current protocol version if present.
featureFlags[key: string]: booleanA map of the feature flags and whether or not they are enabled for the current protocol version.
maxSupportedProtocolVersionstringThe maximum supported protocol version.
minSupportedProtocolVersionstringThe minimum supported protocol version.
protocolVersionstringThe current protocol version.

suix_getCommitteeInfo

Description
Return the committee information for the epoch of interest.

Params

  • epoch : <BigInt_for_uint64> - the epoch of interest. If None, default to the latest epoch
curl https://api.shinami.com/node/v1/<<apiKey>> \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "jsonrpc":"2.0", "method":"suix_getCommitteeInfo", "params":[{{epoch}}], "id":1}'

Result

  • SuiCommittee : <CommitteeInfo>

suix_getLatestSuiSystemState

Return the latest SUI system state object on-chain.

Params


curl https://api.shinami.com/node/v1/<<apiKey>> \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "jsonrpc":"2.0", "method":"suix_getLatestSuiSystemState", "params":[], "id":1}'

Result

  • SuiSystemStateSummary : <SuiSystemStateSummary>
  • activeValidators : <[SuiValidatorSummary]> - The list of active validators in the current epoch.
  • atRiskValidators : <[SuiAddress]> - Map storing the number of epochs for which each validator has been below the low stake threshold.
  • epoch : <BigInt_for_uint64> - The current epoch ID, starting from 0.
  • epochDurationMs : <BigInt_for_uint64> - The duration of an epoch, in milliseconds.
  • epochStartTimestampMs : <BigInt_for_uint64> - Unix timestamp of the current epoch start
  • inactivePoolsId : <[ObjectID]> - ID of the object that maps from a staking pool ID to the inactive validator that has that pool as its staking pool.
  • inactivePoolsSize : <BigInt_for_uint64> - Number of inactive staking pools.
    maxValidatorCount : <BigInt_for_uint64> - Maximum number of active validators at any moment. We do not allow the number of validators in any epoch to go above this.
  • minValidatorJoiningStake : <BigInt_for_uint64> - Lower-bound on the amount of stake required to become a validator.
  • pendingActiveValidatorsId : <[ObjectID]> - ID of the object that contains the list of new validators that will join at the end of the epoch.
  • pendingActiveValidatorsSize : <BigInt_for_uint64> - Number of new validators that will join at the end of the epoch.
  • pendingRemovals : <[]> - Removal requests from the validators. Each element is an index pointing to active_validators.
  • protocolVersion : <BigInt_for_uint64> - The current protocol version, starting from 1.
  • referenceGasPrice : <BigInt_for_uint64> - The reference gas price for the current epoch.
  • safeMode : <boolean> - Whether the system is running in a downgraded safe mode due to a non-recoverable bug. This is set whenever we failed to execute advance_epoch, and ended up executing advance_epoch_safe_mode. It can be reset once we are able to successfully execute advance_epoch.
  • safeModeComputationRewards : <BigInt_for_uint64> - Amount of computation rewards accumulated (and not yet distributed) during safe mode.
  • safeModeNonRefundableStorageFee : <BigInt_for_uint64> - Amount of non-refundable storage fee accumulated during safe mode.
  • safeModeStorageRebates : <BigInt_for_uint64> - Amount of storage rebates accumulated (and not yet burned) during safe mode.
  • safeModeStorageRewards : <BigInt_for_uint64> - Amount of storage rewards accumulated (and not yet distributed) during safe mode.
  • stakeSubsidyBalance : <BigInt_for_uint64> - Balance of SUI set aside for stake subsidies that will be drawn down over time.
  • stakeSubsidyCurrentDistributionAmount : <BigInt_for_uint64> - The amount of stake subsidy to be drawn down per epoch. This amount decays and decreases over time.
  • stakeSubsidyDecreaseRate : <uint16> - The rate at which the distribution amount decays at the end of each period. Expressed in basis points.
  • stakeSubsidyDistributionCounter : <BigInt_for_uint64> - This counter may be different from the current epoch number if in some epochs we decide to skip the subsidy.
  • stakeSubsidyPeriodLength : <BigInt_for_uint64> - Number of distributions to occur before the distribution amount decays.
  • stakeSubsidyStartEpoch : <BigInt_for_uint64> - The starting epoch in which stake subsidies start being paid out
  • stakingPoolMappingsId : <[ObjectID]> - ID of the object that maps from staking pool's ID to the sui address of a validator.
  • stakingPoolMappingsSize : <BigInt_for_uint64> - Number of staking pool mappings.
  • storageFundNonRefundableBalance : <BigInt_for_uint64> - The non-refundable portion of the storage fund coming from storage reinvestment, non-refundable storage rebates and any leftover staking rewards.
  • storageFundTotalObjectStorageRebates : <BigInt_for_uint64> - The storage rebates of all the objects on-chain stored in the storage fund.
  • systemStateVersion : <BigInt_for_uint64> - The current version of the system state data structure type.
  • totalStake : <BigInt_for_uint64> - Total amount of stake from all active validators at the beginning of the epoch.
  • validatorCandidatesId : <[ObjectID]> - ID of the object that stores preactive validators, mapping their addresses to their Validator structs.
  • validatorCandidatesSize : <BigInt_for_uint64> - Number of preactive validators.
  • validatorLowStakeGracePeriod : <BigInt_for_uint64> - A validator can have stake below the validator_low_stake_threshold for this many epochs before being kicked out.
  • validatorLowStakeThreshold : <BigInt_for_uint64> - Validators with stake amount below validator_low_stake_threshold are considered to have low stake and will be escorted out of the validator set after being below this threshold for more than validator_low_stake_grace_period number of epochs.
  • validatorReportRecords : <[SuiAddress]> - A map storing the records of validator reporting each other.
  • validatorVeryLowStakeThreshold : <BigInt_for_uint64> - Validators with stake below validator_very_low_stake_threshold will be removed immediately at epoch change, no grace period.

suix_getReferenceGasPrice

Description
Return the reference gas price for the network for the current epoch, in MIST.

Example Request Template

curl https://api.shinami.com/node/v1 \
-X POST \
-H 'X-API-Key: NODE_SERVICE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ 
        "jsonrpc":"2.0", 
        "method":"suix_getReferenceGasPrice", 
        "params":[], 
        "id":1
    }'
import { createSuiClient } from "@shinami/clients/sui";

const nodeClient = createSuiClient("NODE_SERVICE_API_KEY");

await nodeClient.getReferenceGasPrice();

Example Response

{
    "jsonrpc":"2.0",
    "result":"750",
    "id":1
}

// The reference gas price is 750 MIST, which is 0.00000075 SUI
750n // BigInt<u64>

// The reference gas price is 750 MIST, which is 0.00000075 SUI

Result

  • BigInt<u64> : The reference gas price in MIST.

suix_getStakes

Description
Return all delegated stake.

Params

  • owner : <SuiAddress> - the owner's Sui address
curl https://api.shinami.com/node/v1/<<apiKey>> \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "jsonrpc":"2.0", "method":"suix_getStakes", "params":["{{owner}}"], "id":1}'

Result

  • Vec<DelegatedStake> : <[DelegatedStake]>

suix_getStakesByIds

Description
Return one or more delegated stake. If a Stake was withdrawn, its status will be Unstaked.

Params

  • staked_sui_ids : <[ObjectID]>
curl https://api.shinami.com/node/v1/<<apiKey>> \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "jsonrpc":"2.0", "method":"suix_getStakesByIds", "params":["{{staked_sui_ids}}"], "id":1}'

Result

  • Vec<DelegatedStake> : <[DelegatedStake]>

suix_getValidatorsApy

Return the validator APY

Params


curl https://api.shinami.com/node/v1/<<apiKey>> \
-X POST \
-H 'Content-Type: application/json' \
-d '{ "jsonrpc":"2.0", "method":"suix_getValidatorsApy", "params":[], "id":1}'

Result

  • ValidatorApys : <ValidatorApys>
  • apys : <[ValidatorApy]>
  • epoch : <BigInt_for_uint64>