Task: Transacting with Multisignature Accounts

#1

Task: Transacting with Multisignature Accounts

In this task, you will create a multisignature account and send a signed transaction from it.

Update: Earning badges for this task has expired (as of 2019-04-15). Look out for future tasks where you will have the opportunity to win the Multisigner badge!

Task Instructions

  1. Follow the tutorial on our new developer website: Create a Multisignature Account
  2. Replicate this type of transaction on the TestNet by sending money from a multisignature account on TestNet to our account: NJY27OQ2ZXK6OWBN44LE4K43TA2AV3DPILPYTHAJAMKIVZDWTEJKZJKO4A
  3. Submit your email, the transaction ID, and your sending account via this form.
  4. Send us feedback! We would love to hear what you liked about this feature and/or what could be improved. Reply to this thread on Discourse or email us at testnet-team@algorand.com.

Prerequisites

  1. Make sure you have completed all the steps here to get your node up and running.
  2. Check that you are running the latest version.
  3. When on TestNet, make sure your multisig account has money to spend! Use the dispenser, to send yourself algos. Directions located here.

Why This Task Matters

Multisignature accounts add an extra layer of security to transactions by requiring a threshold of signatures for the transaction to be valid. Your feedback helps us improve this experience and learn of new features to prioritize in the future. We also recently launched our developer site and look forward to your feedback on the related documentation.

Have Questions?

Post them here!

You will earn the Multisigner badge for completing this task:

3 Likes
Testnet Resources
#2

so the idea is to create a private network, then create multisig address , after that sent it to the testnet account? is it possible? isnt private and testnet are two different world?

#3

Mind blowing, it just works:

root@ubuntu-s-2vcpu-4gb-sfo2-01:~/node# ./goal clerk send -a 7777 -f DGOGNR3SRELMQNGVPJJSERARNA5EI5HS43HIICDQKTJW5AR6SWX3EMNSPE -t NJY27OQ2ZXK6OWBN44LE4K43TA2AV3DPILPYTHAJAMKIVZDWTEJKZJKO4A -o ./Trans.tx -d ~/net1/Primary
Automatically set fee to 1 Algos
root@ubuntu-s-2vcpu-4gb-sfo2-01:~/node# ./goal clerk multisig sign -t ./Trans.tx -a JNGWQZYAUWLYSHD5KWNJ4YBZ2NJ66GPCGRHJOG6A22YQ7UBCQRAZEBTTDA -d ~/net1/Primary
root@ubuntu-s-2vcpu-4gb-sfo2-01:~/node# ./goal clerk multisig sign -t ./Trans.tx -a 57REYQ6WJABAQYWDX7ZISW252ACRBB4PJED357FEMBZD7JUOWXVRBRETTQ -d ~/net1/Primary
root@ubuntu-s-2vcpu-4gb-sfo2-01:~/node# ./goal clerk rawsend -f ./Trans.tx -d ~/net1/Primary
Raw transaction ID tx-MQMST6T4RHZVBZLLLL3VTPO5GM3BQZCPZQUBGH5F4CQGQQDKDH3A issued
#4

I am equally confused. This means that I can create fake-money from my private network and send them to a “real” network.

What am I missing?

#5

samee… ahaahahah… but i remember that there should not be incentive for running node, so i though maybe they set some perimeter for free algos … idk

#6

I am equally confused. This means that I can create fake-money from my private network and send them to a “real” network.

No you can’t. You can try to send transaction created and signed on test network but it will not be accepted on real network. If you got tx ID it just mean that transaction is sent to network, but you don’t have money to execute it, it will not be “mined” in next block, it will just be rejected.

#7

Can you show me TX ID on real network that was sent from account that doesn’t have sufficient funds? I strongly believe that something like that never ended up in block. I’ve checked the one you posted “tx-MQMST6T4RHZVBZLLLL3VTPO5GM3BQZCPZQUBGH5F4CQGQQDKDH3A” and that one doesn’t exist in blockchain.

1 Like
#8

The wording is confusing. The task is to first follow the tutorial to create and send a transaction from a multisignature account on your own private network. Then afterwards, replicate the same type of transaction on the TestNet using a multisignature account associated with TestNet, and send it to our account.

I am updating the original wording from “your multisignature account” to “a multisignature account” to make that more clear.

1 Like
#9

ahh no wonder… thanks @BlOcKoUt u are right

#10
root@ubuntu-s-2vcpu-4gb-sfo2-01:~/node# ./goal clerk send -a 777 -f BGT7Q7U6DIEV  6PIHKPPFBKGRDHGQ337UATE6UMMXKXA2CPZIPT47UCHXBU -t NJY27OQ2ZXK6OWBN44LE4K43TA2AV3  DPILPYTHAJAMKIVZDWTEJKZJKO4A -o ./Trans.tx
Automatically set fee to 1 Algos
root@ubuntu-s-2vcpu-4gb-sfo2-01:~/node# ./goal clerk multisig sign -t ./Trans.tx   -a CAGXX556ISDMV4EN6FG322V7KMK6NO2WWQKYVISUUCZWV3XFTQVPXVFBFA
Please enter the password for wallet 'hadiboys':
root@ubuntu-s-2vcpu-4gb-sfo2-01:~/node# ./goal clerk multisig sign -t ./Trans.tx   -a SMIA5PUWS3AJ2MSU37LDFR5QK2UK4AB4YDNAPBCTRHIOLUFXHB4KHU4AQ4
Please enter the password for wallet 'hadiboys':
root@ubuntu-s-2vcpu-4gb-sfo2-01:~/node# ./goal clerk rawsend -f ./Trans.tx
Raw transaction ID tx-ENQCH2LM5QHVU5N2PTFGEKAIGURVW5CZ3HIFTJT4OU3HEW4CREEA issue  d

@liz Pease check whenever you are free, ty

“issue d” , should be “issued”

#11

Thanks for the clarification

#12

ok sent! waiting for badge~

#13

The unsigned raw multi signature tx only 137 bytes. After one signed, it grows to 303 bytes. And both signed, up to 371 bytes.

The multi signature tx is much big. Can it be optimized by aggregate signature?

1 Like
#14

We are working on this but it is still a ways out.

1 Like
#15

I’ve just completed this, but slightly confused about account balances.

I created a multisig account and funded it with 1000 algos.

When I try to send a tx of 10 algos + fee from the multisig account, I get an error for insufficient funds:

[offline]	multisig0	5BYR7JFGZ3CPXUECQQPVSNA4FRE2RR67OJIRF2BKRASISQQOC5JFX6WXOA	1000	[2/2 multisig]
mattharrop@algorand:~/node$ ./goal clerk rawsend -f ./trans.tx --datadir data
Couldn't broadcast tx with algod: HTTP 400 Bad Request: TransactionPool.Remember: Insufficient funds - sender's account will have only {798} algos left

I then funded the multisig from the dispenser, and tried again, and it worked:

[offline]	multisig0	5BYR7JFGZ3CPXUECQQPVSNA4FRE2RR67OJIRF2BKRASISQQOC5JFX6WXOA	1001000	[2/2 multisig]
mattharrop@algorand:~/node$ ./goal clerk rawsend -f ./trans.tx --datadir data
Raw transaction ID WJ7AC2XMHQNLZBHXNOB6AMED5RZHDKVFW63RXSXJAQND3WME3B4Q issued
Transaction WJ7AC2XMHQNLZBHXNOB6AMED5RZHDKVFW63RXSXJAQND3WME3B4Q still pending as of round 433993
Transaction WJ7AC2XMHQNLZBHXNOB6AMED5RZHDKVFW63RXSXJAQND3WME3B4Q committed in round 433995

And the updated balance shows

[offline]	multisig0	5BYR7JFGZ3CPXUECQQPVSNA4FRE2RR67OJIRF2BKRASISQQOC5JFX6WXOA	1000890	[2/2 multisig]

The final result seems correct, but I don’t understand why it didn’t work when the multisig started with a 1000 algo balance.

#16

Accounts now have a minimum required balance of 1000 (we will eventually close accounts with low balances to prevent accumulation of empty or low-balance accounts). Thanks for asking - it suggests we might want to improve our error message here and our documentation around ‘min balance’.

1 Like