SentryNodes must run 24/7.
The chain tracks “Proof of Service” via a “PoSe score”, with the optimal score being “0”.
The chain bans a node with a poor score once it reaches the defined ban threshold.
If your SentryNode is in a PoSe_Banned state, there are several actions you can take to reactivate it and prevent it from happening again.
If you are using a SentryNodes service provider, please skip to SECOND SECTION.
– FIRST SECTION –
If you have your own server or a VPS:
- Ensure the VPS is hosted with a reliable provider and is always online.
- Ensure the VPS has dedicated resources and meets the required technical specifications.
- Ensure the node is synced with the blockchain and is at the correct block height.
- To check the block height of your SentryNode, you can use the command:
syscoin-cli getblockcount
- To check the block height of your SentryNode, you can use the command:
syscoin@nexus-sentrynode:~$ syscoin-cli getblockcount
1539044
If it’s not synced, stop, restart, and reindex the node using:
Note: To use these commands, you must be logged in as the
syscoinuser and have previously run the commandsource ~/.bashrc
- Stop:
syscoin-cli stop
- Wait 5 to 10 seconds for syscoin-cli to shut down completely. - Reindex:
syscoind -reindex
During the reindexing process, if you run syscoin-cli getblockcount again, you’ll see the block number increasing, which indicates reindexing is proceeding correctly.
syscoin@nexus-sentrynode:~$ syscoin-cli getblockcount
80524
syscoin@nexus-sentrynode:~$ syscoin-cli getblockcount
116292
If you run the command syscoin-cli masternode_status, you’ll get the current SentryNode status as Waiting for ProTx to appear on-chain, which means the process is not yet complete.
{
"state": "WAITING_FOR_PROTX",
"status": "Waiting for ProTx to appear on-chain"
}
Note: If for some reason the reindexing process gets stuck on a block and doesn’t complete, you can try running this command to fully delete the data and force a clean reindex.
- Keep in mind that everything in the
.syscoindirectory will be deleted except your SentryNode’ssyscoin.conffile.
syscoin-cli stop && find /home/syscoin/.syscoin -mindepth 1 ! -name 'syscoin.conf' -exec rm -rf {} + && reboot
Once the process completes, the status will change to Ready, and you can continue with the next step:
{
"state": "READY",
"status": "Ready"
}
– SECOND SECTION –
IMPORTANT NOTE: Read this carefully — we mean it.
- When we run the
protx_update_servicecommand, it performs an on-chain transaction, therefore, to avoid any accidental spending of your collateral funds “which would result in loss of Seniority”, it is essential to verify that the collateral transaction is locked in Syscoin QT by following the steps in this tutorial.
Before continuing, we will make sure that we have Syscoin QT fully synchronized.
We’ll use the QT console to run the protx_update_service command with several arguments.
protx_update_service "proTxHash" "ipAndPort" "operatorKey" "nevmAddress" "operatorPayoutAddress" "feeSourceAddress"
The required argument values can be obtained from the SentryNode and/or Syscoin QT.
Get arguments from the SentryNode:
Use the
syscoin-cli masternode_statuscommand
{
"outpoint": "8ebfc22759be8b0b232d451af23b0ce5f451c3e1216304e113c3b0c03413ce-0",
"service": "31.22.14.172:8369",
"proTxHash": "5515aa9d6ed1fd1a6cf2f36a95b4ad1fd1a729716a5a6a9da532b308f7c8f8d05f6791",
"collateralHash": "8eb59962543455b8b6ed10b2325a36ed1e12fc227163042113c3fc227b0c03413ce",
"collateralIndex": 0,
"dmnState": {
"version": 2,
"service": "31.22.14.172:8369",
"registeredHeight": 1518368,
"lastPaidHeight": 1538870,
"collateralHeight": 1516471,
"PoSePenalty": 692,
"PoSeRevivedHeight": -1,
"PoSeBanHeight": -1,
"revocationReason": 0,
"ownerAddress": "sys1q205mhjl8gmqjq6l32xc0gn9fn5kjzz0t9xzrpe",
"votingAddress": "sys1qfsgpjxrrhddrpr10vjdgjcc5zt02nqf2wqxevh",
"payoutAddress": "sys1qvp0s85s63zhx49xgjm7de7tcweenjdaypzlpyj",
"pubKeyOperator": "a4ba7b0e99fda656490144a921c351f3fdd36000c1ee4cf5794f19f40899b9af93517a54bc97ceb60b13bf3",
"nevmAddress": ""
},
"state": "READY",
"status": "Ready"
}
The values to use in each of the required arguments
protx_update_serviceargument are:
proTxHash= “proTxHash”ipAndPort= “service”nevmAddress= Read below- If you don’t have an associated EVM address use
""as the “nevmAddress” argument. - If you have an associated NEVM Wallet, use the same Wallet you have associated.
- More information about the argument
nevmAddress.
- If you don’t have an associated EVM address use
operatorPayoutAddress= Copy payoutAddress, or use""to set a current payoutAddress.feeSourceAddress= (Syscoin address from QT that will fund the ProTx transaction.)- If omitted, it defaults to the payout address.
- To change it, insert the new address.
- Important: The funding address must not have too many past transactions (a few hundred max); otherwise, the
protx_update_servicetransaction will be rejected for being too large (too many inputs).
operatorKey= BLS Key -secret- you obtained when generating the BLS Keys.
(You can check it again in your SentryNode server’s syscoin.conf using the command)
cat /home/syscoin/.syscoin/syscoin.conf | grep blsprivkey
Get arguments from Syscoin QT:
- Enable the Masternodes tab:
- On Windows and Linux, go to
Settings > Optionsfrom the top menu in QT. - On macOS, go to
Syscoin Core > Preferencesfrom the top menu bar.
- On Windows and Linux, go to
- Enable the option “Show Masternodes Tab”, click
OK, and restart Syscoin QT.
Once Syscoin QT restarts, you’ll see a new Masternodes tab.
- Check the option “My masternodes only” to filter.
- Right-click mouse button of your SentryNode and a context menu will appear with options to copy the required data.
The values to use in each of the required arguments
protx_update_serviceargument are:
proTxHash> “Copy ProTx Hash”ipAndPort= “Copy Service”nevmAddress= Read below- If you don’t have an EVM address associated with your SentryNode, using “Copy NEVM Address” will not copy anything, so manually add
""as the “nevmAddress” argument - If you have an associated NEVM Wallet, click on “Copy NEVM Address” to copy the same Wallet you have associated.
- More information about the argument
nevmAddress.
- If you don’t have an EVM address associated with your SentryNode, using “Copy NEVM Address” will not copy anything, so manually add
operatorPayoutAddress= Copy Payout Address or (""to use a current payout address)feeSourceAddress= (Syscoin address in QT that will fund the ProTx transaction).- If omitted, defaults to payout address.
- To change, enter the new funding address.
- Important: The funding address must not have too many past transactions (a few hundred max); otherwise, the
protx_update_servicetransaction will be rejected for being too large (too many inputs).
operatorKey= BLS Key -secret- you obtained when generating the BLS Keys, or must be provided by your SentryNode provider.
(If you have access to your VPS server, you can check it again in the syscoin.conf file using)
cat /home/syscoin/.syscoin/syscoin.conf | grep blsprivkey
Finally, from the QT console, run the command and you should receive a transaction hash as confirmation.
- Example:
protx_update_service "5515aa9d6ed1fd1a6cf2f36a95b4ad1fd1a729716a5a6a9da532b308f7c8f8d05f6791" "31.22.14.172:8369" "5686ad2508f2b42efd6dd34c096b5519f63a6e6516df8a550c3a10dd2e6f58b5" "" ""
![]()
Wait a few minutes for the transaction to confirm, then check the Masternodes tab in Syscoin QT to verify that your SentryNode shows as Status
ENABLED.
If you get any issues, please use our support channel on Discord and open a support ticket.

