Geem RPC Wallet API

By December 9, 2018 Documentation, Geem No Comments

In this article you will find description of every method in Geem RPC Wallet API. Geem RPC Wallet is an HTTP server which provides JSON 2.0 RPC interface for the Geem payment operations and address management.
To make a JSON PRC request to your Geem RPC Wallet you should use POST request that looks like this:

http://service address:service port/json_rpc

Where:
service address is the IP of Geem RPC Wallet, if RPC Wallet is located on local machine it is either 127.0.0.1 or localhost and service port is the Geem RPC Wallet port, by default, the port is to 8070, but it can be manually defined to be any port you want.

Reset

reset() method allows you to re-sync your wallet.

Input.

Argument Mandatory Description Format Example
viewSecretKey No Private view key string 4a2583e42d010e8aabfed22743789569714196246bf01b5f2fec35af9232d907

No output in case of success.

Important: If the view_secret_key was not pointed out reset() methods resets the wallet and re-syncs it. If the view_secret_key argument was pointed out reset() method substitutes the existing wallet with a new one with a specified view_secret_key and creates an address for it.

Input value example:

 {  
   'params':{  
      'viewSecretKey':'4a2583e42d010e8aabfed22743789569714196246bf01b5f2fec35af9232d907'
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'reset'
 }

Output value example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
   }
 }

Get status

getStatus() method returns information about the current RPC Wallet state: block_count, known_block_count, last_block_hash, peer_count an minimal_fee.

No input.

Output:

Argument Description Format Example
blockCount Node’s known number of blocks uint32 123456
knownBlockCount Maximum known number of blocks of all seeds that are connected to the node uint32 123123
lastBlockHash Hash of the last known block string 8a6f1cb7ed7a9db4751d7b283a0482baff20567173dbfae136c9bceb188e51c4
peerCount Connected peers number uint32 5
minimalFee Current minimum transaction fee in atomic units. Do not use received value ‘as is’, but to round it up to one of two first digits after leading zeroes or double it to make sure tx will pass in case of minimalFee fluctuations. uint64 15573245551

Input example:

 {  
   'params':{  
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'getStatus'
 }

Output example:

{
  "id": "test",
  "jsonrpc": "2.0",
  "result": {
    "blockCount": 256739,
    "knownBlockCount": 256739,
    "lastBlockHash": "1ae2b3fd7351a84c775e3088869efcc8afe6424cc2bc0ba9bd448c542061099b",
    "minimalFee": 15645551732,
    "peerCount": 7
  }
}

Save

save() method allows you to save your wallet by request.

No input.

No output in case of success.

Input value example:

 {  
   'params':{  
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'save'
 }

Output value example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
   }
 }

Get view key

getViewKey() method returns your view key.

No input.

Output:

Argument Description Format Example
viewSecretKey Private view key string 4a2583e42d010e8aabfed22743789569714196246bf01b5f2fec35af9232d907

Input Example:

 {  
   'params':{  
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'getViewKey'
 }

Return value example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'viewSecretKey':'4a2583e42d010e8aabfed22743789569714196246bf01b5f2fec35af9232d907'
   }
 }

Get spend keys

getSpendKeys() method returns your spend keys.

Argument Mandatory Description Format Example
address Yes Valid and existing in this container address string G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE

Output:

Argument Description Format Example
spendSecretKey Private spend key string 4a2583e42d010e8aabfed22743789569714196246bf01b5f2fec35af9232d907
spendPublicKey Public spend key string 4a2583e42d010e8aabfed22743789569714196246bf01b5f2fec35af9232d907

Input Example:

 {  
   'params':{  
      'address':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE'
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'getSpendKeys'
 }

Return value example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'spendSecretKey':'4a2583e42d010e8aabfed22743789569714196246bf01b5f2fec35af9232d907'
      'spendPublicKey':'4a2583e42d010e8aabfed22743789569714196246bf01b5f2fec35af9232d907'
   }
 }

Get addresses

getAddresses() method returns an array of your RPC Wallet’s addresses.

No input.

Output:

Argument Description Format Example
addresses Array of strings, where each strings is an address array See below

Input example:

 {  
   'params':{  
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'getAddresses'
 }

Output example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'addresses':[  
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE',
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE'
      ]
   }
 }

Create address

createAddress() method creates an additional address in your wallet.

Input:

Argument Mandatory Description Format Example
secretSpendKey No Private spend key. If secretSpendKey was specified, RPC Wallet creates spend address string
publicSpendKey No Public spend key. If publicSpendKey was specified, RPC Wallet creates view address string
reset No Determines whether reset wallet or not on address creation with spendKey. By default is true – do reset (old behavior) boolean

Note: If none of the above mentioned parameters were specified, RPC Wallet creates spend address with generated spend key.

Note: both above mentioned keys in parameters can’t be present in a single request

Output:

Argument Description Format Example
address Created address string G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE

Input value example:

 {  
   'params':{  
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'createAddress'
 }

Output value example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'address':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE'
   }
 }

Delete address

deleteAddress() method deletes a specified address.

Input:

Argument Mandatory Description Format Example
address Yes An address to be deleted. string G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE

Output:

In case of success returns an empty JSON object.

Input example:

 {  
   'params':{  
      'address':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE'
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'deleteAddress'
 }

Output example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
   }
 }

Get balance

getBalance() method returns a balance for a specified address.

Please note: If address is not specified, returns a cumulative balance of all RPC Wallet’s addresses.

Input:

Argument Mandatory Description Format Example
address No Valid and existing address in this particular wallet string G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE

Output:

Argument Description Format Example
availableBalance Available balance of the specified address uint64 123123
lockedAmount Locked amount of the specified address uint64 123123

Input example:

 {  
   'params':{  
      'address':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE'
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'getBalance'
 }

Output example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'lockedAmount':210,
      'availableBalance':110
   }
 }

Get block hashes

getBlockHashes() method returns an array of block hashes for a specified block range.

Input:

Argument Mandatory Description Format Example
firstBlockIndex Yes Starting height uint32 123123
blockCount Yes Number of blocks to process uint32 20

Output:

Argument Description Format Example
blockHashes Array of strings, where each element is a block hash array example

Input example:

 {  
   'params':{  
      'blockCount':11,
      'firstBlockIndex':0
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'getBlockHashes'
 }

Output example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'blockHashes':[  
         '8a6f1cb7ed7a9db4751d7b283a0482baff20567173dbfae136c9bceb188e51c4',
         '657cd1c33df7f4250d581c97db665cb4a1856ebfadd6efabaeab745c2c76b1be',
         '21047174f74576b6722e72646d7bd553e17d7c9f07fef05151bb1f9df7ed9dd8',
         '504b9bfb2cd34531551cb2d68ea3e34e030d991164589ba7ed24e16fed3ea374',
         'd9d36b5226d11b2cf60e3cf2038b21032c4ac753eabc32fbdd506158f95a69ca',
         '171be105f8e39729838144c78ced336d0ebc29a4bd2c7a22901c0e8c0eaabb42',
         '5f7933bd0257649a44e571d59a9f4083297acbdd338c1c0094a7226ade8d0f0f',
         '967fd52a57e8193f56329bb37abdddce717098429f62c00776342c605a28e19b',
         '6b1a21634a3d72821c43a244af16098eba7c0a59a2e409efa38bd420702f7594',
         '7bb5ca944c5f916f80d50246f48789cc4605efd166efc2308553fe0d208fbe12',
         '83dfef7c288121d87e60f52c74d3da6b422d4b8581ce732ef8b54273bd6c4f45'
      ]
   }
 }

Get transaction hashes

*getTransactionHashes()* method returns an array of block and transaction hashes.

Transaction consists of transfers. Transfer is an amount-address pair. There could be several transfers in a single transaction.

Input:

Argument Mandatory Description Format Example
addresses No Array of strings, where each string is an address array G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE
blockHash Only one of these parameters (blockHash or firstBlockIndex) is allowed. Hash of the starting block string f8f07ace392474bfbdc0fc30749a45f779a8aea10c489a103270f63ed88178ad
firstBlockIndex Only one of these parameters (blockHash or firstBlockIndex) is allowed. Starting height uint32 123123
blockCount Yes Number of blocks to return transaction hashes from uint32 20
paymentId No Valid payment_id string somePaymentId

*Note:* if paymentId parameter is set, getTransactionHashes() method returns transaction hashes of transactions that contain specified payment_id. (in the set block range)

Note: if addresses parameter is set, getTransactionHashes() method returns transaction hashes of transactions that contain transfer from at least one of specified addresses.

Note: if both above mentioned parameters are set, getTransactionHashes() method returns transaction hashes of transactions that contain both specified payment_id and transfer from at least one of specified addresses.

Output:

Argument Description Format Example
items Array that contains:

  • blockHash – string – hash of the block which contains transaction hashes
  • transactionHashes – array – array of strings, where each string is a transaction hash
array See below

Input example:

 {  
   'params':{  
      'blockCount':100,
      'firstBlockIndex':0,
      'addresses':[  
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE'
      ]
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'getTransactionHashes'
 }

Output example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'items':[  
         {  
            'transactionHashes':[  
                957dcbf54f327846ea0c7a16b2ae8c24ba3fa8305cc3bbc6424e85e7d358b44b
                25bb751814dd39bf46c972bd760e7516e34200f5e5dd02fda696671e11201f78
            ],
            'blockHash':'8a6f1cb7ed7a9db4751d7b283a0482baff20567173dbfae136c9bceb188e51c4'
         }
      ]
   }
}

Get transactions

getTransactions() method returns an array of block and transaction hashes.

Transaction consists of transfers. Transfer is an amount-address pair. There could be several transfers in a single transaction.

Input:

Argument Mandatory Description Format Example
addresses No Array of strings, where each string is an address array See below
blockHash Only one of these parameters (blockHash or firstBlockIndex) is allowed. Hash of the starting block string 8fa07712cbf22c263834c0ac9a3f05058856a1fa7fa3d3eda332f63519b23bd1
firstBlockIndex Only one of these parameters (blockHash or firstBlockIndex) is allowed. Starting height uint32 123123
blockCount Yes Number of blocks to return transaction hashes from uint32 20
paymentId No Valid payment_id string somePaymentId

Note: if paymentId parameter is set, getTransactions() method returns transactions that contain specified payment_id. (in the set block range)

Note: if addresses parameter is set, getTransactions() method returns transactions that contain transfer from at least one of specified addresses.

Note: if both above mentioned parameters are set, getTransactions() method returns transactions that contain both specified payment_id and transfer from at least one of specified addresses.

Output:

Argument Description Format Example
items Array that contains:

  • block_hash – string – hash of the block which contains a transaction
  • transactions – array – contains

transactionHash – string – hash of the transaction blockIndex – uint32 – number of the block that contains a transaction timestamp – uint64 – timestamp of the transaction isBase – boolean – shows if the transaction is a coinbase transaction or not unlockTime – uint64 – height of the block when transaction is going to be available for spending amount – int64 – amount of the transaction fee – uint64- transaction fee extra – string paymentId – string – payment_id of the transaction (optional) transfers – array – contains * address – string * amount – int64

array See below

Input example:

 {  
   'params':{  
      'blockCount':1000,
      'firstBlockIndex':1,
      'addresses':[  
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE',
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGF',
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGG'
      ],
      paymentId:'somePaymentId'
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'getTransactions'
 }

Output example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'items':[  
         {  
            'blockHash':'01bd06ca731914f27e143bbb902ce0bc05bff13d76faa027ea817e68f217488c',
            'transactions':[  
               {  
                  'fee':-70368475742208,
                  'extra':'0127cea59bfadc49aa02ed4a225936671e55607b5241621abca2a5e14405906dbb',
                  'timestamp':1446029698,
                  'blockIndex':1,
                  'state':0,
                  'transactionHash':'06ec210a8359f253f8b2160a0d6040cf89f2a05a553aaa577b7f508ee5d831f9',
                  'amount':70368475742208,
                  'unlockTime':11,
                  'transfers':[  
                     {  
                        'amount':70368475742208,
                        'type':0,
                        'address':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE'
                     }
                  ],
                  'paymentId':'',
                  'isBase':True
               }
            ]
         },
         {  
            'blockHash':'28aa7d32f4274f6387969d7671bd4db98fd871bf0dd510a1df5e2ef4b1d41a35',
            'transactions':[  
               {  
                  'fee':-70368207307776,
                  'extra':'01a8e6e408282b2ddf343e20d5e9aab283723ba10ab7ab7b3131f6981b02a84431',
                  'timestamp':1446029698,
                  'blockIndex':2,
                  'state':0,
                  'transactionHash':'922d00d2e6eaed63f62d8e3b968cb08b6ea5c555fe0e6af948ab06efe6eb213a',
                  'amount':70368207307776,
                  'unlockTime':12,
                  'transfers':[  
                     {  
                        'amount':70368207307776,
                        'type':0,
                        'address':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE'
                     }
                  ],
                  'paymentId':'',
                  'isBase':True
               }
            ]
         }
      ]
   }
 }

Get unconfirmed transaction hashes

getUnconfirmedTransactionHashes() method returns information about the current unconfirmed transaction pool or for a specified addresses.

Transaction consists of transfers. Transfer is an amount-address pair. There could be several transfers in a single transaction.

Input:

Argument Mandatory Description Format Example
addresses No Array of strings, where each string is a valid address array See below

Note: if addresses parameter is set, getUnconfirmedTransactionHashes() method returns transactions that contain transfer from at least one of specified addresses.

Output:

Argument Description Format Example
transactionHashes Array of strings, where each string is a hash of an unconfirmed transaction array See below

Input example:

 {  
   'params':{  
      'addresses':[  
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE',
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGF',
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGG'
      ]
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'getUnconfirmedTransactionHashes'
 }

Output example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'transactionHashes':[  
         ...,
         ...,
         ...
      ]
   }
 }

Get transaction

getTransaction() method returns information about a particular transaction.

Transaction consists of transfers. Transfer is an amount-address pair. There could be several transfers in a single transaction.

Input:

Argument Mandatory Description Format Example
transactionHash Yes Hash of the requested transaction string example

Output:

Argument Description Format Example
transaction Contains:

  • transactionHash – string – hash of the transaction
  • blockIndex – uint32 – number of the block that contains a transaction (optional)
  • timestamp – uint64 – timestamp of the transaction (optional)
  • isBase – boolean – shows if the transaction is a coinbase transaction or not
  • unlockTime – uint64 – height of the block when transaction is going to be available for spending
  • amount – int64 – amount of the transaction
  • fee – uint64- transaction fee
  • extra – string – ?
  • paymentId – string – payment_id of the transaction (optional)
  • transfers – array – contains

address – string amount – int64

array See below

Input example:

 {  
   'params':{  
      'transactionHash':'92423b0857d36bd172b3f2effbd47ea477bfe0618a50c29d475542c6d5d1b835'
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'getTransaction'
 }

Output example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'transaction':{  
         'fee':1000000,
         'extra':'0130b4472974f2deb9fae7d8fd6602b26396379f3fa05cca2430e10e9e60179f42',
         'timestamp':0,
         'blockIndex':4294967295,
         'state':0,
         'transactionHash':'92423b0857d36bd172b3f2effbd47ea477bfe0618a50c29d475542c6d5d1b835',
         'amount':-1703701,
         'unlockTime':0,
         'transfers':[  
            {  
               'amount':123456,
               'type':0,
               'address':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE'
            },
            {  
               'amount':234567,
               'type':0,
               'address':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGF'
            },
            {  
               'amount':345678,
               'type':0,
               'address':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGG'
            }
         ],
         'paymentId':'',
         'isBase':False
      }
   }
 }

Send transaction

sendTransaction() method allows you to send transaction to one or several addresses. Also, it allows you to use a payment_id for a transaction to a single address.

Input:

Argument Mandatory Description Format Example
addresses No Array of strings, where each string is an address to take the funds from array See below
transfers Yes Array that contains:

  • address – string
  • amount – int64
array “amount”: 10000000, “address”: “G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE”
fee Yes Transaction fee. Minimal fee in Geem network is .001 GEEM. This parameter should be specified in minimal available GEEM units. For example, if your fee is .01 GEEM, you should pass it as 1000000 uint64 1000000
unlockTime No Height of the block until which transaction is going to be locked for spending. uint64 0
anonymity Yes Privacy level (a discrete number from 1 to infinity). Level 6 and higher is recommended. uint64 6
extra No String of variable length. Can contain A-Z, 0-9 characters. string
paymentId No payment_id string somePaymentId
changeAddress No Valid and existing in this container address. string G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE

Note: if container contains only 1 address, changeAddress field can be left empty and the change is going to be sent to this address

Note: if addresses field contains only 1 address, changeAddress can be left empty and the change is going to be sent to this address

Note: in the rest of the cases, changeAddress field is mandatory and must contain an address.

Output:

Argument Description Format Example
transactionHash Hash of the sent transaction. string 93faedc8b8a80a084a02dfeffd163934746c2163f23a1b6022b32423ec9ae08f

Input Example:

 {  
   'params':{  
      'anonymity':0,
      'fee':1000000,
      'unlockTime':0,
      'paymentId':'somePaymentId',
      'addresses':[  
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE',
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGF',
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGG'
      ],
      'transfers':[  
         {  
            'amount':123456,
            'address':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE'
         },
         {  
            'amount':234567,
            'address':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGF'
         },
         {  
            'amount':345678,
            'address':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGG'
         }
      ],
      'changeAddress':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGH'
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'sendTransaction'
 }

Return value example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'transactionHash':'93faedc8b8a80a084a02dfeffd163934746c2163f23a1b6022b32423ec9ae08f'
   }
 }

Get status

getStatus() method returns information about the current RPC Wallet state: block_count, known_block_count, last_block_hash, peer_count an minimal_fee.

No input.

Output:

Argument Description Format Example
blockCount Node’s known number of blocks uint32 123456
knownBlockCount Maximum known number of blocks of all seeds that are connected to the node uint32 123123
lastBlockHash Hash of the last known block string 8a6f1cb7ed7a9db4751d7b283a0482baff20567173dbfae136c9bceb188e51c4
peerCount Connected peers number uint32 5
minimalFee Current minimum transaction fee in atomic units. Should be rounded up or doubled to make sure tx will pass in case of minimalFee fluctuations. uint64 15573245551

Input example:

 {  
   'params':{  
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'getStatus'
 }

Output example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'peerCount':2,
      'blockCount':1,
      'lastBlockHash':'8a6f1cb7ed7a9db4751d7b283a0482baff20567173dbfae136c9bceb188e51c4',
      'knownBlockCount':0
   }
 }

Estimate fusion

estimateFusion() method counts the number of unspent outputs of the specified addresses and returns how many of those outputs can be optimized.

This method is used to understand if a fusion transaction can be created. If fusionReadyCount returns a value = 0, then a fusion transaction cannot be created.

Input:

Argument Mandatory Description Format Example
threshold Yes Value that determines which outputs will be optimized. Only the outputs, lesser than the threshold value, will be included into a fusion transaction. uint64 1000000
addresses No Array of strings, where each string is an address to take the funds from. array See below

Output:

Argument Description Format Example
totalOutputCount Total number of unspent outputs of the specified addresses. uint64 1000
fusionReadyCount Number of outputs that can be optimized. uint64 50

Input example:

 {  
   'params':{  
      'threshold':1000000,
      'addresses':[  
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE',
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGF',
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGG'
      ]
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'estimateFusion'
 }

Output example:

 {
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'totalOutputCount':1000,
      'fusionReadyCount':50
   }
 }

Send fusion transaction

sendFusionTransaction() method allows you to send a fusion transaction, by taking funds from selected addresses and transferring them to the destination address.

If there aren’t any outputs that can be optimized, sendFusionTransaction() will return an error. You can use estimateFusion to check the outputs, available for the optimization.

Input:

Argument Mandatory Description Format Example
threshold Yes Value that determines which outputs will be optimized. Only the outputs, lesser than the threshold value, will be included into a fusion transaction. uint64 1000000
anonymity Yes Privacy level (a discrete number from 1 to infinity). Level 6 and higher is recommended. uint64 6
addresses No Array of strings, where each string is an address to take the funds from. array See below
destinationAddress No An address that the optimized funds will be sent to. Valid and existing in this container address. string G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE

Note: if container contains only 1 address, destinationAddress field can be left empty and the funds are going to be sent to this address.

Note: if addresses field contains only 1 address, destinationAddress can be left empty and the funds are going to be sent to this address.

Note: in the rest of the cases, destinationAddress field is mandatory and must contain an address.

Output:

Argument Description Format Example
transactionHash Hash of the sent transaction. string 93faedc8b8a80a084a02dfeffd163934746c2163f23a1b6022b32423ec9ae08f

Input Example:

 {  
   'params':{  
      'anonymity':6,
      'threshold':1000000,
      'addresses':[  
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE',
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGF',
         'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGG'
      ],
      'destinationAddress':'G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE'
   },
   'jsonrpc':'2.0',
   'id':'test',
   'method':'sendFusionTransaction'
 }

Return value example:

 {  
   'jsonrpc':'2.0',
   'id':'test',
   'result':{  
      'transactionHash':'93faedc8b8a80a084a02dfeffd163934746c2163f23a1b6022b32423ec9ae08f'
   }
 }

Validate address

validateAddress() method allows you to check if provided address is valid.

Input:

Argument Mandatory Description Format Example
Address Yes Address to validate string G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE

Output:

Argument Description Format Example
address Parsed address. string G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE
isvalid whether the address is valid or invalid boolean true
spendPublicKey Public spend key string 17d068a5d62767661597779af63b7938f1e723052a2d0b8ed8fc6680cde3f88b
viewPublicKey Public view key string 32c547698847b6f9b04bc9035a8d97074d2c09bd8ef63f67b0941f30c8f39e9a

Input Example:

 {
 	"jsonrpc":"2.0",
	"method":"validateAddress",
  	"params":{
 		"address":"G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE"
 	}
 }

Return value example:

{
    "jsonrpc": "2.0",
    "result": {
        "address": "G95DwiVGzrbPBAYZRaebH2Y5T5nwDvL4wRJo1xcrHynHAv7zqp39WGNaFCX6JeRyKk823aaF6bkN21MR62888rywVatVMGE",
        "isvalid": true,
        "spendPublicKey": "17d068a5d62767661597779af63b7938f1e723052a2d0b8ed8fc6680cde3f88b",
        "viewPublicKey": "32c547698847b6f9b04bc9035a8d97074d2c09bd8ef63f67b0941f30c8f39e9a"
    }
}
SEE WHAT'S NEXT... START TRADING NOW!