Invokes the contract method Verify


This method is used to test your VM script as if they ran on the blockchain at that point in time. This RPC call does not affect the blockchain in any way.

Unlike the method invokefunction which executes the contract by the Application trigger, invokecontractverify executes the contract by the Verification trigger and can pass parameters as params and signers . Specific parameter type and number depend on the smart contract to invoke.


Object NameRequiredTypeDetail
SCRIPT HASHβœ…StringThe smart contract scripthash.
PARAMSβœ…ArrayThe parameters to be passed into the smart contract operation.
SIGNERS❌ArrayList of objects containing contract signature accounts.

SIGNERS has the following fields:

accountβœ…StringThe signature account.
scopesβœ…StringThe signature's valid scopes, allowed values: FeeOnly, CalledByEntry, CustomContracts, CustomGroups, Global
allowedcontracts❌ArrayThe contracts of the signature that can take effect if scopes is CustomContracts
allowedgroups❌ArrayThe pubkeys of the signature that can take effect if scopes is CustomGroups


You need to use the proper byte order of the address passed according to its data type. If the data type is Hash160, use the big endian script hash; if the data type is ByteArray, use the little endian scripthash.

  "type": "String", 
  "value": "Hello" 

  "type": "Hash160", 
  "value": "0xf621168b1fce3a89c33a5f6bcf7e774b4657031c" 

  "type": "ByteArray", 
  "value": "7472616e73666572" 
"params": [
        "account": "NSk8xEBm3FNAFDueUf21cMugkWidJn5N1n",
        "scopes": "CalledByEntry"


The invocation contract result.

Result Fields

scriptStringThe invocation script of the contract.
stateStringHALT means the vm executed successfully, and FAULT means the vm exited due to an exception.
gasconsumedStringThe system fee consumed for invocation.
stackStringThe contract execution result. If the value is String or ByteArray, it is encoded by Base64.



curl <your-endpoint> \
   -X POST \
   -H "Content-Type: application/json" \
   -d '{"jsonrpc": "2.0", "method": "invokecontractverify", "params": ["0x2b6ab054615c2386c9c0e4f35dc5f2d5e35768fa", [ ], [{"account": "NSk8xEBm3FNAFDueUf21cMugkWidJn5N1n","scopes": "CalledByEntry"}]],  "id": 1}'


    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "script": "",
        "state": "HALT",
        "gasconsumed": "4692",
        "exception": null,
        "stack": [{
            "type": "Boolean",
            "value": true
Click Try It! to start a request and see the response here!