Multi-Signature on the XRPL Using @XamanWallet 🧵 1/ Recently I was...

Advertisement
1
Multi-Signature on the XRPL Using @XamanWallet 🧵

1/ Recently I was tasked with creating a treasury account for the @XAODAOLLC that would be cryptographically secure on the XRPL but would not be subject to a single individual taking the DAOs funds.
2
2/ What follows naturally is a choice between institutional grade custody (potentially expensive for a fledgling DAO), MPC providers (also more costly but likely the best future option), or a simple multi-signature wallet using the DAO managers & an alternate for the unexpected.
3
3/ If you don't know what a multi-signature wallet is you can learn a little about them and their tradeoffs in this high level summary:

investopedia.com/multi-signatur…
4
4/ For the XRPL specifically the Multi-Signature wallet construction and design is specified here and for the more technically oriented you can learn how to generate one natively:

xrpl.org/docs/tutorials…
5
5/ Fortunately for us we have the team over at @XRPLLabs that abstracted much of the technical complexity of interfacing with the ledger directly into the @XamanWallet . This makes life easier for all of us.

We at XAO DAO decided to use this option as the first secure way of protecting our treasury. This is subject to change with member vote. (we will also be publishing our wallet address for all members to see on ledger and we will likely segregate funds into multi treasuries and across multiple DAO members to keep attack vectors to a minimum).
6
6/ A few lessons learned that I want to share with people that want to setup their own multi-sig wallet so the setup won't require too much experimentation. First step, install Xaman wallet and establish your own personal XRPL wallet.
7
7/ Next, in the Xaman app navigate to the xApps page (see red circle at the bottom) and in the search bar at the top search for "Multi sign".
Media image
8
8/ The correct application will appear (note that it is technically still in Beta so feedback to the team is welcomed to make the product better). You can click the About to learn more about the Multi sign xApp.
Media image
Media image
9
9/ The official URL of the xApp is here so don't fall for scams or redirects:
xaman.app/detect/xapp:xu…
10
10/ Before using the application you need to understand a basic concept regarding how it works. The wallet that will utilize the multi-sig is not the same as your personal wallet, or someone else's wallet, it's an independent wallet on the XRPL with its own address and reserve requirements.
Media image
11
11/ It's also important to understand that when this wallet is setup it must assign "signers", which are other wallets with the authority to cryptographically sign transactions and contribute to the multi-signature process, think of it like each person on the list having a piece of the puzzle and the puzzle can only be viewed if everyone contributes their respective piece.
Media image
12
12/ Now this application has something special in that you can specify a SignerList which is a list of other wallets with the intended authority to put those pieces of the puzzle together. Thankfully you can also specify that not all the pieces of the puzzle are required all the time, just the minimum number of pieces that you've determined to be acceptable.
13
13/ When you first start the process you are asked to "Add Signer (s)" and in that case you can specify and other address on the XRPL that you've determined as trustworthy to contribute to the signing process. Those wallets must be active wallets with their minimum reserves. Let's use an example from our setup.
Media image
14
14/ As managers @FMXRP1 and I will have access to the XAO DAO treasury wallet and thus will each contribute 1 vote (or piece of the puzzle) to signing a transaction. In the event something happens to one of us we don't want to lose access to the treasury for our community so we added @sentosumosaba as our backup.
Media image
15
15/ You'll notice that the wallet has a Quorum (which is the minimum number of other wallets that must sign a transaction for the multi-signature to be effective and the transaction to move forward). There are also Total Signers which we discussed before. In this case only 2 of us out of 3 have to sign, it can be any two to establish a Quorum so long as our weights are equal.

The Quorum must always be less than or equal to the Signers but greater than one (otherwise it defeats the purpose of a multi-sig in my opinion unless people just want to share their wallet, maybe with a spouse?).
Media image
16
16/ The other thing you'll notice is the "Weight", meaning each wallet that is assigned a puzzle piece can be given a full puzzle piece or more weight, meaning you could define them as having 2 pieces instead of one. With large multi-signature lists this is useful, especially in large organizations with different managerial authorities and hierarchies. You might also do it to reflect percentage ownership of some sort. User choice. In our case we made the total weight equal to the total signers to make it simple.
17
17/ Once you've setup the multi-sig you need to fund the wallet and you also need to obtain "tickets", which are like "votes" that allow your wallets to sign the multi-sig. Once you run out of tickets you need to obtain more. I welcome someone like @WietseWind to chime in on the details of these tickets at the ledger level.
18
18/ The setup will be followed by a notification on all of the user wallets that will be signers but they all must have the Multi sign xApp installed as well to receive the notification and interact with the multi sig wallet (treasury).
19
19/ A lesson learned during this setup process is that each user must incorporate the treasury wallet address as "READ ONLY", in other words they only need to view the address on the ledger and the xApp will take care of connecting the various pieces of the puzzle together whenever signing a transaction. Happy to hear from @FMXRP1 & @sentosumosaba on their experiences with this xApp and any lessons learned they may have.
20
20/ This application has some very interesting potential use cases that are very practical for the average user:

1. If you have multiple children, like I do, you can create an "Inheritance" wallet wherein you establish a multi-sig that each of them has a piece of the puzzle to and you can set the quorum accordingly with a third party (say a lawyer or executor with higher weights).

2. You can use it for gifting to a child where you have signing authority on the multi-sig so they can't be reckless with the funds.

3. Use if for an organization / business to process transactions across managers that are geographically separate like we are.

4. Use it as a security countermeasure for large value wallet balances so that the signers are kept separate and anonymous from a potential target (of a wrench attack). Funds could be protected from unwanted seizure in this manner even if you lose your private keys or get hacked (they only take your piece of the puzzle).

5. You could use it almost like an escrow manager for transferring payments between counterparties with an intermediary party (an auditor for example) that must co-sign to establish a quorum.

Curious to hear your ideas as well.
Actions
What You Can Do
  • Export as PDF or Markdown
  • Batch Export to Notion
  • Bookmark & Highlight
  • Screenshot Tweet
Create Free Account

Includes 7-day Premium trial

Advertisement