Crypto Academy / Season 3 / Week 3 - Homework Post for [@sapwood] Multiple Transfers/Batch Send at one click

in SteemitCryptoAcademy3 months ago (edited)

Hey steemians
In this post i will be submitting my homework task for professor @sapwood.

IMG_20210715_140228.jpg

(1) What do multiple transactions in a single click mean? How does it save transaction fees? What are the other benefits?

Multiple transactions in a single click


"Multiple transactions in a single click" is a feature that helps in executing multiple transactions at the same time and simultaneously just by clicking a send button. To put it in another way, it helps the sender by executing multiple transactions at the same time simultaneously instead of performing one transaction at a time.

In Ethereum, Multisender and Multisend DApps are used to execute multiple transactions in a single click.

In Steemit, we can use Steemyy to execute multiple transactions in a single click.

This feature of executing multiple transactions can come in handy while distributing rewards in a contest, distributing salaries in a company and distributing crypto assets in the airdrop.

How does the feature "Multiple transactions in a single click" save transaction fees?

First of all, some blockchains don't cost you any transaction fee and these blockchains include Steem, Tron, etc. But there are some blockchains too that cost you a hefty transaction fee and these blockchains include Ethereum, Bitcoin, etc.

To counter the hefty transaction fee on the Ethereum blockchain, Dapps like Multisender and Multisend was developed.

For instance, let us take that it costs you 500 INR to execute a single transfer and the same 500 INR will be the cost of executing 100 transfers(because the fee is charged by a platform or blockchain based on the transactions, not on the number of addresses that transaction contain), so it is simple maths:

  • Cost of 1 transaction: 500 INR

  • Cost of 100 transactions(made individually): 50000 INR

  • Cost of 100 transactions via Multisender: 500 INR + 0.09ETH(13,000 INR approx): 13,500 INR

  • Fees saved by the sender: 50,000 INR - 13,500 INR = 36500 INR

With the amount that I saved I can even buy 1/4th of ETH, isn't it ironic?

So I have shown you an example of how one can save a lot of transaction fees while executing multiple transactions.

Benefits of executing multiple transactions in a single click

(1) Scalability: As this feature increases the ability of the Ethereum blockchain to handle a large number of transactions so we can say this feature makes a blockchain a scalable one.

(2) Saves time and effort: As we can send hundreds or thousands of transactions in just one click, we don't have to repeat the process of transaction every time for an individual transaction and we also don't have to wait for a transaction to complete and then follow up to the other transaction.

(3) Cost-effective: As we saw in the above example that we can save a lot of transaction fees using Multisender to execute multiple transactions.

(4) Efficient in terms of timely transactions and identifying invalid addresses: it is easy to spot an invalid address in Multisender and Steemyy because the sender will get notified of the specific invalid address and in use-case 3 where we can set the interval between two successive transactions, you will see the transactions are executing at the same interval we set.

(2) How do you connect your Etherum Wallet(Metamask) to Multisend or Multisender(dApps) & perform multiple transactions(ETH/ERC20) in one click? Using Steemyy how do you perform multiple transactions(STEEM or SBD) in one click? Explain the detailed steps in both the apps(One from Etherum & the other from Steem Blockchain)? (Screenshot needed, real transactions in Multisender or Multisend may not require, however, a real transaction in Steem Blockchain using Steemyy a must for this Task). Further, using Steemyy demonstrate how to send the different amounts to different users with different memo and how to send repetitive/recurring amount at the pre-defined interval?

Connecting Ethereum wallet(Metamask) to Multisender.

Multisender Dapp is used to executing multiple transactions at the same time and simultaneously in the Ethereum blockchain and that is the reason why it pops up a notification of "connect Ethereum wallet(Web3 wallet) with Multisender".

Steps for connecting Ethereum wallet(Metamask) to Multisender are as follow:

(1) Go to the website of Multisender.

(2) When you reach the homepage of Multisender, a notification will pop up asking you to connect your Ethereum wallet(Web3 wallet). You can either choose " Metamask" or "Wallet connect(Ex: Trust wallet)".

(3) To connect metamask, choose Metamask wallet and then select the account you want to connect with Multisender and then click on connect.

IMG_20210713_162438.jpg

Fig1: Click on connect

IMG_20210713_162414.jpg

Fig2: Choose Wallet

IMG_20210713_162845.jpg

Fig3: Choose account

IMG_20210713_163400.jpg

Fig4: Allow it to view address of permitted account and click on connect

IMG_20210713_163858.jpg

Fig5: Metamask connected

Performing or executing multiple transactions in one click

We can batch send ETH and ERC20 tokens via Multisender so one can choose any of them to send.

Steps for performing or executing multiple transactions in one click are as follow:

(1) To choose any token you have to click on the "Token address box" which shows the list and amount of the tokens in your wallet or account. I don't have any tokens in my wallet whether it's ETH or ERC20 tokens but it was showing "Ethereum Mainnet Native Currency" so I chose ETH to execute multiple transactions.

(2) In the box below which goes by "List of addresses in CSV(Comma-separated values), you have to put the addresses of the receivers along with the amount you want to send, this amount could be the same or different.

Show Example CSV

By clicking on "Show Example CSV" you can see an example of how you can write the addresses and the amounts.

Way to write a list of addresses along with amounts

  1. Address1,amount1
  2. Address2,amount2
  3. Address3,amount3
  4. Address4,amount4
  5. Address5,amount5

Note: we usually give a space after a comma but while writing an address and amount, there will not be a space after comma, instead of comma there will be an amount directly.

(3) And finally you can click the send button to execute multiple transactions, after pressing send, another page will appear asking to "approve" or "proceed" you can click on proceed to execute multiple transactions in one click.

Note: If by mistake you put an invalid address, it will notify you and the send command will not get fulfilled until or unless you correct or remove that invalid address.

IMG_20210713_172427.jpg

Fig1: Choose token

IMG_20210713_172731.jpg

Fig2: Example CSV

IMG_20210713_173533.jpg

Fig3: Click send button

IMG_20210713_173716.jpg

Fig4: Approve transactions

For carrying out or executing multiple transactions in Multisender, the minimum fee it costs you is 0.09 ETH, it is just a fee for transacting on the ethereum blockchain(gas fee or computational cost), other than this fee DApps might cost you some additional fee, fee can vary with the congestion or traffic on the Ethereum blockchain, So it would be unwise to use Multisender for executing transactions less than 100 or 1000.

Using "Steemyy" to execute multiple transactions in a single click

As we used Multisender DApp to execute multiple transactions in a single click in the Ethereum blockchain, we can also execute multiple transactions in a single click in the Steem blockchain with the help of Steemyy.

Steps to open the STEEM/HIVE wallet tool to send STEEM or SBD to multiple accounts are as follow:

(1) Go to Steemyy.

(2) Click on the "Tools" section and then a new interface will open containing features called "Steem essentials", in Steem essentials there is a tool named "Steem Wallet Tool - Send SBD or STEEM to Multiple Accounts", click on that tool.

(3) After clicking on "Steem Wallet Tool - Send SBD or STEEM to Multiple Accounts" a new page will appear asking for details relevant to transferring Steem and SBD.


IMG_20210714_004414.jpg

Fig1: Tools section of Steemyy


IMG_20210714_004858.jpg

Fig2: Details to fill to execute multiple transactions

Now there can be 3 use-cases and we can opt for any of the use-cases according to our need or requirement, these use-cases are:

(1) 1st use-case: Executing multiple transactions by sending the same amount of STEEM or SBD to different users.

(2) 2nd use-case: Executing multiple transactions by sending the different amounts of STEEM or SBD to different users with different MEMOs too.

(3) 3rd use-case: Executing multiple transactions by sending a fixed amount to a user or more than one user repetitively at a predefined interval.

Use-case 1: Sending the same amount of Steem or SBD to different users

Steps to sense the same amount of Steem or SBD to different users are as follow:

(1) Fill in your username(without @) if you are the sender, if not then fill in the sender's username. (username: sarveshnegi2811)

(2) Put your private active key that is related to all the monetary actions of an account, as this column comes with a note that goes like "The key will not be uploaded and will not be stored anywhere", so it makes it a reliable tool that can ensure safety.

(3) Fill in the amount you want to send or transfer to the different users simultaneously. I filled the 0.001 amount to send or transfer.

(4) Choose the unit you want to send, either Steem or SBD. I chose Steem as a unit to send.

(5) Options like " Send X times" and "interval" will remain empty as this use case doesn't focus on sending repetitive or recurring amounts.

(6) Fill in the MEMO as per your convenience, I left it as it was.

(7) And finally put usernames of receivers(with or without @), only one username can be filled in one line.

Like I filled

dharamps
ashucypher
utsavsaxena11
nobby9b
sapwood

(8) Click on the Send button, confirm the transactions and verify the transactions in the console below.

IMG_20210714_132955.jpg

Fig1: Fill the details required to execute multiple transactions

IMG_20210714_133136.jpg

Fig2: Give approval or confirmation

IMG_20210714_133324.jpg

Fig3: Verify the transactions in the console

Details of my transactions:

Amount: 0.001
Unit: STEEM

Accounts:

dharamps
ashucypher
utsavsaxena11
nobby9b
sapwood

I chose to send the same amount of steem to 5 different users

1st transaction took place in BLOCK 55451411. (Time: 17:38:08)

2nd transaction took place in BLOCK 55451412. (Time: 17:38:08)

3rd transaction took place in BLOCK 55451412. (Time: 17:38:08)

4th transaction took place in BLOCK 55451413. (Time: 17:38:11)

5th transaction took place in BLOCK 55451413. (Time: 17:38:11)

You can see the change in the block with the completion of every 3 seconds as the new block generates every 3 seconds in the steem blockchain.

Application of use-case 1 via real-life example:

In use-case 1, we send the same amount of an asset to different multiple users, so it can come in handy while distributing wages of workers having a fixed amount wages, we just have to write the username of all the workers and can easily send the funds or assets by a single click.

Use-case 2: Sending the different amount of Steem or SBD to different users

Steps to send the different amount of Steem or SBD to different users are as follow:

(1) Fill in your username(without @) if you are the sender, if not then fill in the sender's username. (username: sarveshnegi2811)

(2) Put your private active key that is related to all the monetary actions of an account, as this column comes with a note that goes like "The key will not be uploaded and will not be stored anywhere", so it makes it a reliable tool that can ensure safety.

(3) This amount section is for sending the same amount to the different users but in this use case, we have to send different amounts to different users, so you can just leave it as it was.

(4) Choose the unit you want to send, either Steem or SBD. I chose Steem as a unit to send.

(5) Options like " Send X times" and "interval" will remain empty as this use case doesn't focus on sending repetitive or recurring amounts at a pre-defined interval.

(6) Fill in the MEMO as per your convenience but in the question, I was asked to put different MEMOs for different amounts so I left it as it was.

(7) And finally put usernames of receivers(with or without @), only one username can be filled in one line along with the amount, unit and MEMO.

Way to write an account along with amount, unit and MEMO:

Username Amount Unit MEMO


IMG_20210714_130002.jpg

Fig1: How to write username along with amount, unit and MEMO

All these details must be separated by space.

IMG_20210714_133740.jpg

Fig1: Fill the required details
only along with different amounts and MEMOs

IMG_20210714_133917.jpg

Fig2: Give approval or confirmation

IMG_20210714_134037.jpg

Fig3: Verify the transactions in the console

IMG_20210714_172158.jpg

Fig4: Verifying the transactions in the Steemworld due to glitch in console of steemyy

Details of my transactions:

Unit: STEEM

Accounts:

dharamps 0.001 STEEM RECEIVER-1
ashucypher 0.002 STEEM RECEIVER-2
utsavsaxena11 0.003 STEEM RECEIVER-3
sapwood 0.004 STEEM RECEIVER-4

I chose to send different amounts of steem to 5 different users

1st transaction took place in BLOCK 55451815. (Time: 17:58:04)

2nd transaction took place in BLOCK 55451816. (Time: 17:58:04)

3rd transaction took place in BLOCK 55451816. (Time: 17:58:05)

4th transaction took place in BLOCK 55451817. (Time: 17:58:08)

You can see the change in the block with the completion of every 3 seconds as the new block generates every 3 seconds in the steem blockchain.

Application of Use-case 2 via a real-life example:

In use-case, 2 we send the different amounts of an asset to different multiple users, so it can come in handy while distributing salaries of employees in a multinational company where everyone has a different pay scale, we just have to write the username of the employee along with the amount and can easily send the funds or assets by a single click.

Use-case 3: Sending the different amounts of Steem or SBD to different users repetitively at a predefined interval.

Steps to send the different amounts of Steem or SBD to different users repetitively at a pre-defined interval are as follow:

(1) Fill in your username(without @) if you are the sender, if not then fill in the sender's username. (username: sarveshnegi2811)

(2) Put your private active key that is related to all the monetary actions of an account, as this column comes with a note that goes like "The key will not be uploaded and will not be stored anywhere", so it makes it a reliable tool that can ensure safety.

(3) This amount section is for sending the same amount to the different users but in this use case, we have to send different amounts to different users, so you can just leave it as it was.

(4) Choose the unit you want to send, either Steem or SBD. I chose Steem as a unit to send.

(5) Send X times: You can choose the number of times you want to send STEEM via this option. If you want to send STEEM to your friend 5 times you can set it to 5.

Interval: it refers to the period between two successive transactions, you can set it accordingly.

(6) Fill in the MEMO as per your convenience but in the question, I was asked to put different MEMOs for different amounts so I left it as it was.

(7) And finally put usernames of receivers(with or without @), only one username can be filled in one line along with the amount, unit and MEMO.

Way to write an account along with amount, unit and MEMO:

Username Amount Unit MEMO

All these details must be separated by space.

IMG_20210714_134330.jpg

Fig1: Fill the required details
only along with "Send X times" and " interval"

IMG_20210714_134427.jpg

Fig2: Give approval or confirmation

IMG_20210714_171619.jpg

Fig3: Verify the transactions in the console

IMG_20210714_171803.jpg

Fig4: Verify the transactions in the console

Details of my transactions:

Send X times= 3 times
Interval= 30 seconds

Accounts:

dharamps 0.001 STEEM RECURRING-RECEIVER-1

ashucypher 0.002 STEEM RECURRING-RECEIVER-2

I chose to send 3 transactions and the interval between the 2 successive transactions must be 30 seconds.

1st transaction:

Both of my first transactions took place in BLOCK 55451608.
(Time: 17:48:01)

2nd transaction:

Both of my second transactions took place in BLOCK 55451618.
(Time: 17:48:32)

3rd transaction:

Both of my third transactions took place in BLOCK 55451628.
(Time: 17:49:01)

By looking at the details above we can conclude that all my transactions took place at an interval of 30 seconds. One interesting point too, as we all know that it took 3 seconds to generate a block in the steem blockchain and it got proved as you can see the difference of 10 blocks after every 30-second interval.

Application of Use-case 3 via a real-life example:

In use case 3, we can set the number of transactions and intervals between two successive transactions, so it can come in handy while distributing salaries in a multinational company, we all know that salaries are credited monthly so we can just set the time interval of 1 month and no of transactions to twelve, by doing this we can send the salaries of all the employees of a whole year without any delay and putting efforts every month.

(3) What if you enter a wrong/invalid address in Multisender or Multisend(dApps) and Steemyy(dApp)? Does the application(Steemyy in Steem Blockchain or Multisender in Etherum) allow the transaction to go through if you have entered a wrong/invalid address? Showcase with the screenshot(what does the application says when you enter a wrong address)?

To be honest, when I read this question I thought that it is easy because I just have to alter some of the alphanumerics and the Multisender will show an invalid address, so I just did the same, I changed the last word of the address and proceeded the transactions and shockingly the address I altered got accepted by Multisender and then I came to a realisation that I have to write an address that is not registered in the Ethereum blockchain yet, so I chose to write my address of TronLink pro wallet but to be sure I checked it on Etherscan(block explorer of Ethereum) whether the address of my TronLink wallet is invalid or not.

Invalid address for Multisender could be the address that has not been registered on the Ethereum blockchain yet.

My address of TronLink pro: TQQe4nL3KzPPNqCAZXzmEuMKpnak3THzQX

IMG_20210714_181453.jpg

Fig1: Verifying address whether it is invalid or not

IMG_20210714_181558.jpg

Fig2: Invalid address or string for Etherscan(Ethereum blockchain)

IMG_20210714_181656.jpg

Fig3: Verifying address whether it is invalid or not

IMG_20210714_181746.jpg

Fig4: Valid address for TronScan(Tron blockchain)

The screenshots above regarding valid or invalid address shows that a valid address on a particular blockchain can be the invalid address or string for another blockchain.

Now I can put my address of TronLink pro wallet which is invalid for the Ethereum blockchain and will see the result in Multisender.

I put my address of the TronLink pro wallet along with the other addresses that I took from "Example CSV" in the "list of addresses in CSV" and clicked on send.

Multisender notified me of the invalid address and stated that "Line 1: wrong address."


IMG_20210715_004908.jpg

Fig1: Putting my TronLink pro wallet address and clicking on send

IMG_20210715_005145.jpg

Fig2: Wrong address

Multisender in Ethereum blockchain doesn't allow transactions to go through if I enter an invalid address that couldn't be found anywhere on the Ethereum blockchain or an invalid address that hasn't been registered on the Ethereum blockchain yet.

We must verify the address before sending an asset to avoid the loss of sending assets to the wrong address/addresses. The feature to notify the sender about the wrong or invalid address/addresses in Multisender and pointing out the specific invalid address is a way to rectify the mistakes while executing multiple transactions and in my opinion, it is a very good feature that will come in handy when dealing with a lot of transactions.

Invalid address in Steemyy

In Steemyy, we use the usernames(sender and receivers) to send multiple transactions unlike in Multisender where we used addresses(receivers).

So here in Steemyy 2 types of error can occur while executing multiple transactions:

(1) invalid or unknown sender(key)

(2) Invalid or unknown receiver/receivers(key)

As we use the usernames of sender and receivers to execute multiple transactions, I couldn't think of any other way to verify the username except searching on Steemit. It is very simple you just have to search for the user, if the user exists, it will show you the user's profile and you can send assets to that username without any doubt and vice versa.

First case: when sender's username is invalid.

I put my username(altered one) in the sender's section of Steemyy but before doing that I verified it on the steemit whether the username(altered one) was valid or not. If it was invalid then I would proceed but if it was valid I would have to think of another invalid username.

Invalid username i used: sarveshnegi

Note: my real username has 2811 at the end.

IMG_20210714_203337.jpg

Fig1: Invalid username couldn't be found on steemit platform

Fortunately, the username I chose was not matching with any other usernames of the steemit platform.

Then I filled in all the details required to execute multiple transactions and clicked on the send button. It worked, the sender's username I used to execute multiple transactions was invalid and it was reflecting unknown key for all the transactions.


IMG_20210714_202902.jpg

Fig2: Using invalid sender's username

IMG_20210714_203203.jpg

Fig3: Console showing unknown key for all transactions

Second case: when receiver's username is invalid.

I put one of the receiver's usernames which was altered in the account section of Steemyy but before doing that I verified it on the steemit whether the username(altered one) was valid or not. If it was invalid then I would proceed but if it was valid I would have to think of another invalid username.

Invalid username I used: dharmaps

Note: real username is dharamps


IMG_20210714_203434.jpg

Fig1: Invalid username couldn't be found

Fortunately, the username I chose was not matching with any other usernames of the steemit platform.

Then I filled in all the details required to execute multiple transactions and clicked on the send button. It worked, only the invalid receiver's username transaction couldn't take place and was showing unknown key and all the other usernames were valid and transactions took place.


IMG_20210714_205441.jpg

Fig2: Using invalid receiver's username

IMG_20210714_205701.jpg

Fig3: Console showing unknown key for transaction related to invalid username

Steemyy in steem blockchain doesn't allow transactions to go through if I enter an invalid username that couldn't be found anywhere on the steem blockchain. The same is the case when the sender's username is filled wrong or the sender's username is invalid, Steemyy doesn't allow the transactions to go through.

We must verify the username before sending an asset to avoid the loss of sending assets to the wrong username. The feature to notify the sender about the invalid username/usernames in steemyy is a way to rectify the mistakes while executing multiple transactions and in my opinion, it is a very good feature that will come in handy when dealing with a lot of transactions.

If you want to verify my transactions you can verify it here. This is the link for the steem block explorer where you can write the block height and you will find all of my transactions.

Thank you
That was all from my side
For the attention of @sapwood

Sort:  
Loading...

You have been upvoted by @sapwood, a Country Representative from INDIA. We are voting with the Steemit Community Curator @steemcurator07 account to support the newcomers coming into Steemit.

Engagement is essential to foster a sense of community. Therefore we would request our members to visit each other's post and make insightful comments.

Thank you