Skip to content

Multisend

c44c edited this page Jan 16, 2019 · 2 revisions

What is multisend?

MultiSend allows a user to automatically send a percent of their stake reward to as many addresses as you would like The MultiSend transaction is sent when the staked coins mature (100 confirmations)


How to create or add multisend vector?

multisend This will add a new address to the MultiSend vector Percent is a whole number 1 to 100.


MULTISEND COMMANDS (usage: multisend )

  • print - displays the current MultiSend vector
  • clear - deletes the current MultiSend vector
  • enablestake/activatestake - activates the current MultiSend vector to be activated on stake rewards
  • enablemasternode/activatemasternode - activates the current MultiSend vector to be activated on masternode rewards
  • disable/deactivate - disables the current MultiSend vector
  • delete <Address #> - deletes an address from the MultiSend vector
  • disable - prevents a specific address from sending MultiSend transactions
  • enableall - enables all addresses to be eligible to send MultiSend transactions

How to check if multisend is active?

Open the Monetaryunit wallet console:

multisend print
[
   {
     "MultiSendStake Activated?": false,
     "MultiSendMasternode Activated?": false
   },
   "MultiSend Addresses to Send To:",
   {
   }
 ]

Example 1 - Single masternode holder wants to automate their payouts from their server

1. Create a multisend vector to send 100% of the masternode payouts to your collecting address

multisend 7XYEERCUMVuVCj8SFuVm39sYUNk9mcYAwd 100

The wallet output:

multisend 7XYEERCUMVuVCj8SFuVm39sYUNk9mcYAw 100
[
  {
    "MultiSendStake Activated?": false,
    "MultiSendMasternode Activated?": false
  },
  "MultiSend Addresses to Send To:",
  {
    "Address 0": "7XYEERCUMVuVCj8SFuVm39sYUNk9mcYAw",
    "Percent": 100
  }
]

2. Activate with command multisend enablemasternode, in your output you can find the line which says if it is active:

multisend enablemasternode

The output of our example looks like this:

multisend enablemasternode
[
  {
    "MultiSendStake Activated?": false,
    "MultiSendMasternode Activated?": true
  },
  "MultiSend Addresses to Send To:",
  {
    "Address 0": "7XYEERCUMVuVCj8SFuVm39sYUNk9mcYAw",
    "Percent": 100
  }
]

3. Send any received staking rewards to the same output address

multisend enablestake

[
  {
    "MultiSendStake Activated?": true,
    "MultiSendMasternode Activated?": true
  },
  "MultiSend Addresses to Send To:",
  {
    "Address 0": "7XYEERCUMVuVCj8SFuVm39sYUNk9mcYAw",
    "Percent": 100
  }
]

Example 2 - Three friends run a masternode together

Showcase for three friends to run a masternode, and split payouts between themselves. In this example the users Adam, Beatrice and Charlie submit collateral together for a masternode.

1. Calculate shares between the users

Adam has 125,125 MUE
Beatrice has 225,500 MUE
Charlie has 149,375 MUE
SUM: 125,125 + 225,500 + 149,375 = 500,000

According to the amount of coins, this is percentage overview:

  • Adam: 125,125÷500,000=0.2502 which is 25.02%
  • Beatrice: 225,500÷5000,000=0.451 which is 45.1%
  • Charlie: 149,375÷500,000=0.2988 which is 29.88%

Check: 0,2502+0,451+0,2988=1.00 OK!

We can use only full numbers which would mean that we need to round down (rounding up could potentially lead to more than 100% depending on the value used.):

Adam: 25.02%  => 25%
Beatrice: 45.1% => 45%
Charlie: 29.88% = 29%

If we check now, 25%+45%+29%=99%. Splitting the rewards like this only allows for 99% to be used (note: to be verified later)


2. Create a new multisend vector with three receiving addresses

A new multisend vector is needed to split the rewards among the addresses according to the friends shares:

  • Create vector for Adam: multisend 7TdqEQRvk3sN7qGcP1KCVUjcfiCBGhoRcS 25

  • For Beatrice: multisend 7TyPud5H2d9WpBgCyhb7mg239SY4eMjJzZ 45

  • For Charlie: multisend 7Uq1n5daCjma8BPfcKkTKPfyfeo6rrR3LK 29

The output looks like this:

multisend 7TdqEQRvk3sN7qGcP1KCVUjcfiCBGhoRcS 25
[
  {
    "MultiSendStake Activated?": false,
    "MultiSendMasternode Activated?": false
  },
  "MultiSend Addresses to Send To:",
  {
    "Address 0": "7TdqEQRvk3sN7qGcP1KCVUjcfiCBGhoRcS",
    "Percent": 25
  }
]

multisend 7TyPud5H2d9WpBgCyhb7mg239SY4eMjJzZ 45
[
  {
    "MultiSendStake Activated?": false,
    "MultiSendMasternode Activated?": false
  },
  "MultiSend Addresses to Send To:",
  {
    "Address 0": "7TdqEQRvk3sN7qGcP1KCVUjcfiCBGhoRcS",
    "Percent": 25,
    "Address 1": "7TyPud5H2d9WpBgCyhb7mg239SY4eMjJzZ",
    "Percent": 45
  }
]

multisend 7Uq1n5daCjma8BPfcKkTKPfyfeo6rrR3LK 29
[
  {
    "MultiSendStake Activated?": false,
    "MultiSendMasternode Activated?": false
  },
  "MultiSend Addresses to Send To:",
  {
    "Address 0": "7TdqEQRvk3sN7qGcP1KCVUjcfiCBGhoRcS",
    "Percent": 25,
    "Address 1": "7TyPud5H2d9WpBgCyhb7mg239SY4eMjJzZ",
    "Percent": 45,    
    "Address 2": "7Uq1n5daCjma8BPfcKkTKPfyfeo6rrR3LK",
    "Percent": 29
  }
]

3. Activate the new multisend vector

Activate the multisend vector and new incoming masternode rewards will start to be split among the addresses above.

multisend enablemasternode

Verify the output with multisend print and check for the line

"MultiSendMasternode Activated?": true


4. Activate staking payouts

Additionally to the masternode payouts, any staking rewards can be setup to be split between the users as well. Using the same multisend vector, any additional staking rewards get divided with the same portions as per the masternode outputs. This is typically used with a wallet that contains more MUE then just the masternode collateral.

multisend enablestake

The output shows that staking rewards are also now actively split, should they happen:

multisend enablestake
[
  {
    "MultiSendStake Activated?": true,
    "MultiSendMasternode Activated?": true
  },
  {
    "Address 0": "7TdqEQRvk3sN7qGcP1KCVUjcfiCBGhoRcS",
    "Percent": 25,
    "Address 1": "7TyPud5H2d9WpBgCyhb7mg239SY4eMjJzZ",
    "Percent": 45,    
    "Address 2": "7Uq1n5daCjma8BPfcKkTKPfyfeo6rrR3LK",
    "Percent": 29
  }
]

Stop payments being split

To edit the payment addresses from the multisend vector, use the command:

multisend delete <address_number>

or to clear the whole multisend vector:

multisend clear

Page taken and modified from https://github.com/cevap/ion/wiki/Multisend