A brief description of Locked Token Delegated Key Order (LTDKO).

(LTDKO) makes it possible to set up a master node between two parties, who, for whatever reason, cannot set up a master node on their own.

In this guide we will refer to a party with m-tokens as a staker and a party with a server running Cellframe Node as a validator.

There are two options for LTDKO, and they differ in the order in which parties are creating orders and transactions. We will describe both of them.

  1. [[Certificate Delegation#Option 1|Option #1]]
  2. [[Certificate Delegation#Option 2|Option #2]]

Option #1

A validator creates a validator order Next, staker delegates this order by creating a transaction which will lock m-tokens.

Steps

First, a validator creates a validator order.

This order states how much m-tokens are required from the staker to purchase the order, a percentage of rewards that will be shared with a staker and specifies a master node certificate.

Command:

cellframe-node-cli srv_stake order create validator -net <name> -value_min <min_value> -value_max <max_value> -tax <value> -cert <masternode_cert_name>

Examples of correct values format:

-value_min 10.0e+18
-tax 50.0

Parameters description:

-net - network name 
-value_min - minimum acceptable amount of m-tokens
-value_max - maximum acceptable amount of m-tokens
-tax - percentage of master node earnings that staker will receive
-cert - name of the master node certificate

Command result:

status: success
order_hash: 0x889DADA18B5AFB8D7FE922E1A10BF5134330E97C9DFA715704B4BA62395ABD1A

A result of the srv_stake order create validator command is a hash of the created order. This hash needs to be shared with a staker.

Next, staker creates a transaction using a validator order hash that will lock his m-tokens.

Command:

cellframe-node-cli srv_stake delegate -order <order hash> -tax_addr <wallet address to receive rewards to> -net <name> -w <name of wallet with m-tokens> -fee <value> -value <value>

Examples of correct values format:

-fee 0.5e+18
-value 10.0e+18

Parameters description:

-order - hash of the validator order
-tax_addr - wallet address to receive specified percentage of masternode rewards
-net - network name
-w - name of the wallet from which m-tokens will be taken and locked
-fee - transaction fee value
-value - amount of m-tokens to lock. This value must be within the specified range of -value_min and -value_max.

Command result:

  status: success
  tx_hash: 0xD583B6F0558ABEAEB2A852F6D06A758874278706685D0A5F988D3DC377EF6812

Once staker creates a transaction, its hash will be displayed. This transaction hash needs to be sent to the Cellframe Support team for the master node approval.

Option #2

First, staker creates a staker order and a transaction which locks m-tokens.

Next, validator delegates this order by creating a transaction with specified master node certificate. 

Steps

First, a staker creates an order and a transaction specifying desired tax percent, wallet address for reward collecting and the amount of m-tokens that will be locked.

Command:

cellframe-node-cli srv_stake order create staker -net <name> -w <wallet name> -value <value> -tax <percent> -addr <wallet addr> -fee <value>

Examples of correct values format:

-value 10.0e+18
-tax 50.0
-fee 0.5e+18

Parameters description:

-net - network name
-w - name of the wallet from which m-tokens will be taken and locked
-value - amount of m-tokens that will be locked
-addr - wallet address for tax collecting
“-addr” parameter can be omitted. If not included, tax will be collected to the wallet specified with -w parameter. 

Command result:

status: success
order_hash: 0xAE311D49593014615291FC124F5F9CC270ECDE93B4E31654A1B47CC2ACC2279B
tx_hash: 0x52F8FA5EBBBE86F05553DD78EB8BA9FCC590DBFC4BCD3D8AB0CE0A290927EB7E

A result of the srv_stake order create staker command is a hash of the created order and a transaction hash. Order hash needs to be shared with a validator.

Next, a validator delegates a master node certificate using the staker order hash

Command:

cellframe-node-cli srv_stake delegate -cert <masternode_cert_name> -order <hash> -net <name> -w <wallet name> -fee <value>

Examples of correct values format:

-fee 0.5e+18

Parameters description:

-cert - masternode certificate name
-order - staker order hash  
-net - network name
-w - name of the wallet 
-fee - transaction fee value

Command result:

status: success
tx_hash: 0xDB4880B8E524D00201C902DE9BF0B7D2D0ABF65290004BE8C7F3D3ADA3D7C1B2

Once validator creates a transaction, its hash will be displayed. This transaction hash needs to be sent to the Cellframe Support team for master node approval.