A brief description of Locked Token Delegated Key Order [[Locked Token Delegated Key Order (LTDKO)|(LTDKO)]]. [[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 [[Token Delegated (m-token)|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 [[Node Command - SRV_STAKE ORDER CREATE VALIDATOR|validator order]] Next, staker delegates this order by creating a transaction which will lock m-tokens. ### Steps First, a **validator** creates a [[Node Command - SRV_STAKE ORDER CREATE VALIDATOR|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:` ```actionscript 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:` ```actionscript -value_min 10.0e+18 -tax 50.0 ``` `Parameters description:` ```actionscript -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:` ```actionscript 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 [[Node Command - SRV_STAKE DELEGATE|transaction]] using a **validator** `order hash` that will lock his m-tokens. `Command:` ```actionscript 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:` ```actionscript -fee 0.5e+18 -value 10.0e+18 ``` `Parameters description:` ```actionscript -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:` ```actionscript   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 [[Node Command - SRV_STAKE ORDER CREATE STAKER|staker order]] and a transaction which locks [[Token Delegated (m-token)|m-tokens]]. Next, **validator** delegates this order by creating a [[Node Command - SRV_STAKE DELEGATE|transaction]] with specified master node certificate.  ### Steps First, a **stake**r 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:` ```actionscript 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:` ```actionscript -value 10.0e+18 -tax 50.0 -fee 0.5e+18 ``` `Parameters description:` ```actionscript -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:` ```actionscript 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:` ```actionscript cellframe-node-cli srv_stake delegate -cert <masternode_cert_name> -order <hash> -net <name> -w <wallet name> -fee <value> ``` `Examples of correct values format:` ```actionscript -fee 0.5e+18 ``` `Parameters description:` ```actionscript -cert - masternode certificate name -order - staker order hash   -net - network name -w - name of the wallet  -fee - transaction fee value ``` `Command result:` ```actionscript 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.