Steem Multiple Authority Manager is a web interface for adding multiple signatory authority to a Steem account, creating, signing, and broadcasting transactions from that account.
Web
https://codebull.github.io/SteemMultisig/
Features
- Changing a Steem account's role(s)' authority to multi-signatory authority
- Creating a signed transaction. Currently -
transfer
,transfer_to_vesting
,withdraw_vesting
,delegate_vesting_shares
, andaccount_witness_vote
. - Signing already created transaction.
- Broadcasting the signed transaction.
How does it work?
When a user visits the webpage it checks if the user had logged in before if not ask them to login. Then it saves logged-in user's data to the browser's localStorage for auto-filling forms and account update data.
The logged-in user now can generate multiple authority for posting, active, or owner role of his/her account.
If he/she has multiple authority already setup, can head over to transaction generation page and generate a signed transaction with a private key. The signed transaction has 1 hour expiration time.
The signed transaction can now be sent to other keys (authority) holders for signing. They can use sign transaction page to sign the transaction with their key. After inputting JSON transaction data the interface will show who can sign and who already signed.
After signed by all required parties, the signed transaction can be broadcasted from broadcast transaction page to the blockchain.
How to use?
Step 1: Login
Log in with your Steem username. After successful login, you can use all the pages. Login is required to save your Steem username, memo key to be used in account updates and auto-filling forms.
Step 2: Generating Multiple Authority
You now can make your steem account a multiple signatory accounts for all roles. Select your desired Authority role from the dropdown, add the public key(s) and/or account(s) and desired weight for the key(s) and account(s). If you need to generate key(s), use the form at the bottom of the page.
Enter weight threshold for broadcasting any transaction. Weight threshold is the minimum required total weight of the keys that signed a transaction before it can be broadcasted to the blockchain. In the example, weight threshold is set at 100, so before broadcasting a transaction from @projectaccount that requires active
authority, all key that signed the transaction should have a total weight of 100 or more.
So, in the example, the private key of public key 1 (weight 50) and 2 (weight 30) is always required, and then @projectaccount can use the private key of any of the key 3 or 4, or account @reazuliqbal or @bdcommunity to sign and broadcast a successful transaction.
Here is our example transaction on the blockchain.
Step 3: Generating Transaction
Generate a transaction for supported operation (more will come) from generate transaction page with your private key.
Select an operation from the dropdown and fill out the form, enter your private key and click Generate. Copy the generated JSON form of the transaction and send it to other parties for signing.
In the example, @projectaccount is sending 1 STEEM to @reazuliqbal.
Step 4: Signing Transaction
If you are one of the other parties, you should use the transaction signing page to sign the transaction.
Paste the JSON transaction data. You'll see who already signed and who can sign the transaction. Enter your private key and click sign. Copy the signed transaction.
If the weight threshold is met, you can broadcast the transaction or send it to other parties for signing.
Step 5: Broadcasting Transaction
After signing by all the parties or reaching to weight threshold, you can broadcast the transaction from broadcast transaction page.
Paste the signed transaction and click broadcast. If it is successful you'll see a success message else check browser console for errors.
Here is our example transaction on the blockchain.
Alternatives
- msteem - Multisignature transaction app - Web
- Steem Multi-Signature Transaction Guide for Beem/Python - Python
- How to set up and use multisignature accounts on Steem Blockchain. - Node JS
Technologies
The dSteem library is used to communicate with the Steem blockchain, jQuery for DOM manipulation, Bootstrap 4 for styling, and browserify for compiling for the browser.
Steem.js's auth module was used to sign changing to multiple authority transactions. I was having a problem with broadcasting the multiple authority transactions signed by dSteem, but after trying Steem.js it worked. I was not able to pinpoint where the problem was but it was in the signature.
TODO
- Support for more operations.
- Adding reset authorities features.
- Adding summary description for operations from JSON.
Contributing
Feel free to fork the repo and submit a pull request. All sources are included in the /src folder.
To compile:
npm run build
To watch your change(s):
npm run watch
Repository
https://github.com/CodeBull/SteemMultisig
Pull Request
https://github.com/CodeBull/SteemMultisig/pull/1
https://github.com/CodeBull/SteemMultisig/pull/2
Thank you for your contribution! Great work.
steem.utils.validateAccountName
currently, any invalid account names including the prefix @ will cause aTypeError: Cannot read property 'name' of undefined at f.database.getAccounts.then (app.js:1)
error in the console - which is slient to users.steemconnect
so that users won't have to type in WIF everytime? Currently, it looks to me the login function is a bit fake... Look, I wished I can do this: LOLtravis-ci.com
to set up a build system to boost some confidence.Great work!
Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.
To view those questions and the relevant answers related to your post, click here.
Need help? Chat with us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
The purpose of login function is to save the username and memo key to localStorage so that I can use it while sending account update data and auto-filling forms. But I should have done the username verification. Thank you for pointing it out.
I think SteemConnect login cannot help with the functionalities because we are changing authorities but it might be a way to verify if the user owns the username.
I am planning to learn unit testing and going to use it in future projects.
Thank you so much for the detailed review. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you for your review, @justyy! Keep up the good work!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hey @reazuliqbal,
I'd really like the chance to chat with you about this site you have. It is a great site and I look forward to seeing your updates on it.
I have an offer for you. The HoboDAO is a concept of creating a federation of multisig accounts formed like DAOs for the creation of a decentralized curation community empowered by its own token.
Your site helps non-techies navigate multisig operations. This is perfect for the HoboDAO project. We're a small project, but we're really picking up steam. We now have 17,500 SP delegations and we're gaining delegations by the day.
The Hobo token is selling at low volume but there is daily liquidity on the SE market and we're not even running our curation program yet. We have many delegators delegating to earn tokens on a monthly basis and several people have enrolled in our Ambassador program to translate our announcements to local language communities.
I would very much like to coordinate with you to see if you would agree to support our project by managing your own Steem Multisignature Manager site for our community.
If you agreed to join our discord server and act as tech support to our members when they have difficulty using your site, we would reward you in 100,000 Hobo tokens per month.
This is a negotiable point, but if you would make your site available via IPFS it is something our project very much wants for decentralization.
Please accept an invitation to join the HoboDAO project as a member in this decentralized community and join our discord server here: https://discord.gg/TFzSuYE
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi @reazuliqbal!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Another great contribution to steem blockchain. Keep up the good work 👌
Posted using Partiko Android
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Great job, @reazuliqbal!
I've added you to the @steemtank list. Keep up the good work!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you so much. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Very good, excellent work!
I had the same problem using dsteem to add multiple authorities :/
My solution was to generate different keys until it worked.
I would be good to figure out the principal problem behind.
Thanks for referencing my work.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I tried several things. It only worked when I set 2 keys with same weight e.g 50 for each and weight threshold is 100.
I do not have the technical capability to diagnose/fix the problem, but it was in the signature of the transaction. dSteem and Steem.js both produced different signature for the same operation and dsteem's signature had a Buffer element in it (not sure what that was for).
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
I also tried several things, and I used
client.database.verifyAuthority
to verify before broadcasting. When it worked for 3 keys I started to addaccount_auths
. I remember that just changing one name it failed, and I had to try many names.Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi @reazuliqbal, your post has been upvoted by @bdcommunity and the trail!
If you want to support us, please consider following our curation trail on Steemauto.com or delegating STEEM POWER to us.
JOIN US ON
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hey, @reazuliqbal!
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!
Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).
Want to chat? Join us on Discord https://discord.gg/h52nFrV.
Vote for Utopian Witness!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Bro please help
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
How can I help you?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Vai ami ahakon o kaj ta buji nai...
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Join us here https://discord.gg/6zWpukW
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hello @reazuliqbal,
I think this site is great. We are working on something we are calling a Decentralized Curation Community or DCC. The HoboDCC is trying to utilize multisig account capabilities to create an entire decentralized organization.
We will be using a token created on Steem Engine called the Hobo token or HBO, and our goal is to build a decentralized curation community focused on supporting quality independent journalism on Steem with curation.
You can learn more about this at the @hobo.media blog.
First, I would like to let you know that we think your site is excellent and there is one thing we wish was finished: broadcasting votes. Currently, this feature is missing. When you have completed it please let me know and you will be sent 500,000 Hobo tokens.
Currently, our token is not worth much, but we expect its price to be around 0.066 STEEM per token or even more. So, that could potentially be around 33,000 STEEM in value or possibly more.
If you were interested in talking more about our project and getting more involved, I would love to discuss a possibility of giving you 3,000,000 Hobo tokens if you were willing to make enough customization to your site to support our goals with our community.
Thanks for your time. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thanks for explaining what you are trying to do with it. I am bit busy now. I'll try to add multi-sig voting soon.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit