arrow-left

All pages
gitbookPowered by GitBook
1 of 9

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Guides

CLI Linux Setup

The beldex-wallet-cli is the “Command Line Interface” wallet software that is used to run Beldex accounts through command prompt or terminal. The CLI wallet only uses text to do operations, where the oki-wallet-gui wallet offers a graphical user interface with buttons to do most of the operations the beldex-wallet-cli does.

Bear in mind that the CLI wallet, while harder to use, is generally faster and more reliable. If you are still interested in the 'beldex-wallet-cli' you can find it herearrow-up-right. Download the latest release for your specified Operating System, for this user guide we are going to assume you are running Linux.

hashtag
Step 1: Opening beldex-wallet-cli and beldexd.

To use the beldex-wallet-cli we must first have the daemon, beldexd, up and running. The beldexd is your node which the beldex-wallet-cli broadcasts through. Without the node running the beldex-wallet-cli will not be able to operate.

Run the beldexd file from the folder you extracted the release.

Once you run the above command you will get the below message in the terminal

Let the daemon run until the node is completely synced, you will know the node is synced once the terminal outputs the following text:

Now the daemon is synced we can run the beldex-wallet-cli file.

hashtag
Step 2: Setting up your beldex-wallet-cli account.

If this is your first time opening the beldex-wallet-cli it will request for you to specify a wallet name. For the purposes of this user guide we will use the example name MyBeldexWallet

Because this is the first time we have used the name MyBeldexWallet the following text will appear in our terminal. Type in Y or Yes to confirm your wallet name.

The beldex-wallet-cli has now generated us a wallet called MyBeldexWallet and is now prompting us for a password for our generated wallet.

Please note:

  • When typing the password, the characters will not appear. It will seem as if you are typing and no text is appearing however the terminal is logging every character your clicking including if it is capitalised or lowercase.

  • Write down your wallet name and password on a piece of paper as this information will be required every time we want to enter our wallet.

Now once we have chosen our password for the wallet we must choose our language. For the purposes of this user guide I suggest you use English by typing 1 and clicking enter.

The beldex-wallet-cli will generate and spit out several lines of text. Some of the information that was outputted will only ever show once, therefore it is very important to do this next section properly otherwise we may lose access to our account, thus losing access to our funds.

Let’s take a close look at each section of the newly generated wallet:

The text after Generated new wallet shows your public address. This address can be shared and will be used to receive Beldex to your wallet. All Beldex public addresses start with b....and are followed with a string of characters. The public address shown will be your primary address however multiple public addresses can be generated from this primary address.

You do not need to write down the public address, the command address will re-display it whenever required.

The View key address is not to be shared unless you want to show the transactions received to the public address connected to this wallet. You do not need to write down the view key as it can be re-displayed with the command viewkey.

The next few lines of text show how to navigate the beldex-wallet-client.

The next section with the random 25 words is your mnemonic seed. The seed is used to easily back-up and restore your wallet without needing any other information. At this stage, grab a pen and paper and write down your 25 words in order(having these words out of order will not restore your wallet) and store the piece of paper in a safe and secure place. If your words are stored in a text file on your computer or stored online, you increase your risk of someone else getting control of your account.

The last of the outputs are the account balance, because your wallet does not have any Beldex in it currently the balance is showing 0.

Once we receive a transaction of Beldex into our wallet the balance will appear as soon as the transaction is confirmed in one block (usually less than 2 minutes). Once the transaction has been confirmed over 10 blocks the balance will show in unlocked balance.

The unlocked balance is the Beldex available to be spent/sent to other addresses.

Use a password with uppercase letters, lowercase letters, numbers, symbols and make the password at least 9 characters long.
$ ./beldexd
**********************************************************************

The daemon will start synchronizing with the network. This may take a long time to complete.

You can set the level of process detailization through "set_log <level|categories>" command,

where <level> is between 0 (no details) and 4 (very verbose), or custom category based levels (eg, *:WARNING).

Use the "help" command to see the list of available commands.

Use "help <command>" to see a command's documentation.

**********************************************************************
**********************************************************************

You are now synchronized with the network. You may now start beldex-wallet-cli.

Use the "help" command to see the list of available commands.

**********************************************************************
Specify wallet file name (e.g., MyBeldexWallet). If the wallet doesn't exist, it will be created.

Wallet file name (or Ctrl-C to quit): MyBeldexWallet
No wallet found with that name. Confirm creation of new wallet named: MyBeldexWallet

(Y/Yes/N/No): Yes
Generating new wallet...

Enter a new password for the wallet:

Confirm password:
List of available languages for your wallet's seed:

If your display freezes, exit blind with ^C, then run again with --use-english-language-names

0 : Deutsch

1 : English

2 : Español

3 : Français

4 : Italiano

5 : Nederlands

6 : Português

7 : русский язык

8 : 日本語

9 : 简体中文 (中国)

10 : Esperanto

11 : Lojban

Enter the number corresponding to the language of your choice: 1
Generated new wallet: bxdXk6eS3Ng98QxDTdC47eNdfCXttJycKraXxfsw9cMVngGUqP3kiSE6cwXoApU6gjzSXVX1ASAPAi1MSXA935XUs1MWEcv9
View key: 97d3c27e20818e5e23a6548458b50d4f128a2709c55eb7f9518d0e957a5d2e0d
This user guide will look into more detail the commands that can be used within the beldex-wallet-client further in the guide.

Your wallet has been generated!

To start synchronizing with the daemon, use the "refresh" command.

Use the "help" command to see the list of available commands.

Use "help <command>" to see a command's documentation.

Always use the "exit" command when closing beldex-wallet-cli to save

your current session's state. Otherwise, you might need to synchronize

your wallet again (your wallet keys are NOT at risk in any case).
NOTE: the following 25 words can be used to recover access to your wallet. Write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control.

ponies innocent oyster whale autumn knapsack jostle elapse

inroads joining doorway ticket drying obnoxious algebra tutor

biplane sack alpine zinger huge duets refer rigid inroads
Starting refresh...

Refresh done, blocks received: 0

Untagged accounts:

Account Balance Unlocked balance Label

* 0 bxdXk6 0.000000000 0.000000000 Primary account

----------------------------------------------------------------------------------

Total 0.000000000 0.000000000

Currently selected account: [0] Primary account

Tag: (No tag assigned)

Balance: 0.000000000, unlocked balance: 0.000000000

Background refresh thread started”

Multisig

CLI Restoring Wallet from Seed

Restoring your wallet from seed

To fully restore your wallet and be able to view balance and make transactions, having your seed stored will be enough. You don't need your wallet password or other keys to restore the wallet once you have a seed phrase.

hashtag
Step 1: Download and unzip CLI wallet

  • Download the latest release of wallet CLI software for your desired operating system:

  • Unzip beldex-[operating-system]-[platform]-[version].zip file

hashtag
Step 2: Run wallet in restore mode

  • Open a (Windows) or (Linux / OSX) and navigate to the wallet folder

  • Run wallet with --restore-deterministic-wallet argument

For Linux:

For Windows:

hashtag
Step 3: Enter wallet name

You will be prompted to enter a wallet name and click [Enter]. You can enter any name here, use something rememberable and meaningful.

hashtag
Step 4: Enter your seed phrase

  • You will be prompted to enter 25 word mnemonic seed you have stored. Paste it and press [Enter].

  • If you have a seed encryption passphrase, enter it on the next step. Otherwise, press [Enter].

hashtag
Step 5: Enter wallet password

  • You will be prompted for a password. Enter a new password that follows the and press [Enter].

  • Confirm password and press [Enter].

hashtag
Step 6: Specify a blockchain height

If you know the block height at which wallet was created or a first transaction was made, you can enter it here. Specifying a blockchain height will help to scan the wallet faster.

If you don't know a specific blockchain height, press [Enter] for scanning from block height 0.

hashtag
Step 7: Wait for the refresh process to finish

For refresh process to start, you need to have your daemon running. Another option would be to use a remote node. For that, use the following command, replacing and with the host and port number of the remote node you are connecting to:

Once refresh is done, you can use your full functioning restored wallet. Your public wallet address will remain the same.

CLI Restoring Wallet from Keys

If you have a Mnemonic Seed Phrase, restoring your wallet from it would probably be a good option. Otherwise, you can restore your wallet from private keys. You will need to have the following keys to proceed:

  • Wallet public address

  • Spend Key

View Key

hashtag
Step 1: Download and unzip CLI wallet

  • Download the latest release of wallet CLI software for your desired operating system: https://github.com/beldex-coin/be/reldex/releases

  • Unzip beldex-[operating-system]-[platform]-[version].zip file

hashtag
Step 2: Run wallet in restore mode

  • Open a Command Promptarrow-up-right (Windows) or Terminalarrow-up-right (Linux / OSX) and navigate to the wallet folder

  • Run wallet with --generate-from-keys argument:

./beldex-wallet-cli --generate-from-keys [New Wallet Name]

Where [New Wallet Name] is a new wallet name. You can enter any name here, use something rememberable and meaningful.

hashtag
Step 3: Enter wallet address, view and spend keys

On the next step, specify all 3 wallet keys, one by one:

  • Enter Standard address and press [Enter]

  • Enter Secret spend key and press [Enter]

  • Enter Secret view key and press [Enter]

hashtag
Step 4: Enter wallet password

  • You will be prompted for a password. Enter a new password that follows the Password Policyarrow-up-right and press [Enter].

  • Confirm password and press [Enter].

hashtag
Step 5: Specify a blockchain height

If you know the block height at which wallet was created or a first transaction was made, you can enter it here. Specifying a blockchain height will help to scan the wallet faster.

If you don't know a specific blockchain height, press [Enter] for scanning from block height 0.

hashtag
Step 6: Wait for the refresh process to finish

For refresh process to start, you need to have your daemon running. Another option would be to use a remote node. For that, use the following command, replacing and with the host and port number of the remote node you are connecting to:

Once refresh is done, you can use your full functioning restored wallet. Your public wallet address will remain the same.

https://github.com/beldex-coin/beldex/releasesarrow-up-right
Command Promptarrow-up-right
Terminalarrow-up-right
Password Policyarrow-up-right
./beldex-wallet-cli --daemon-address <host>:<port>
./beldex-wallet-cli --restore-deterministic-wallet
beldex-wallet-cli --restore-deterministic-wallet
./beldex-wallet-cli --daemon-address <host>:<port>

2/3 Multisig

First, the wallet to be converted to multisig must be empty. It is best to use a brand-new wallet for the purpose, although not required. It is strongly advised to make a copy of the wallet files first, just in case something goes wrong.

hashtag
Overview

In short, the process is:

Wallet Creation

  1. All parties command prepare_multisig and send data to ALL other parties

  2. All parties command make_multisig <threshold> <data1> <data2> and send 2nd batch of data to ALL other parties

  3. All parties command exchange_multisig_keys <data1> <data2> with the data from ALL other parties.

Receiving

  1. All parties can type address to see the created multisig wallet address. The address will, of course, be the same for all parties since they're all watching the same wallet.

Preparation for Sending

  1. To prepare for sending all parties command export_multisig_info <filename> and send the file to all other parties

  2. To complete preparation, all parties command import_multisig_info <filename1> <filename2> and import files from other parties

Sending

  1. To send, any party can use the usual transfer command, but the result will be a file named multisig_beldex_tx which must be sent to any 1 other signer

  2. The other party commands sign_multisig multisig_beldex_tx and the file is updated with the signature.

Below is a step-by-step walkthrough.

hashtag
Wallet Creation

Requirements:

  • 3 empty beldex-wallet-cli wallets

  • All parties wallets connected to a beldexd

  • Confidential communication channel

hashtag
Step 1 - Prepare Multisig

All 3 people should open up their beldex-wallet-cli and generate a new wallet. Make sure you do not have any $beldex within your wallet.

Person 1, 2 and 3 runs the following command within their beldex-wallet-cli:

The output will be something like:

Copy the entire line Multisig…...Vozid and be sure to capture the whole thing when copying.

Person 1 to send the Multsig...arg to Person 2 and 3, Person 2 to send their output to Person 1 and 3 and Person 3 to send their output to Person 1 and 2.

hashtag
Step 2 - Make Multisig

All 3 persons now have the Multisig...arg text from the other 2. With that, each of them can create their part of the multisig wallet. Before you proceed, note that the wallet will lose access to the underlying wallet when converted to multisig. This is not really a problem, since we started with an empty wallet, and if all goes OK with this step, you won't ever need it unless you want to go through the process again for whatever reason (like HDD died, but you have the seed mnemonic of the underlying wallet and want to reconstruct the multisig wallet).

Person 1 commands:

Where <threshold> is the number of signers required out of the 3 people, <data person 2>is the output provided by Person 2, and <data person 3>is the output provided by Person 3.

This should look similar to:

Notice how there are 2 strings starting with Multisig....arg. One is from person 2 and other from person 3. The number at the beginning is the minimum required number of signatures. Since it's a 2/3 scheme - it's 2.

The output from the make_multisig command will be similar to:

With 2/3 there's an additional step to be done here. The new Multisig...arg info must be passed to ALL other participants (persons 2 & 3).

Persons 2 & 3 do the same as above and send the info to other 2 parties.

hashtag
Step 3 - Exchange Multisig

Here we do one last command to make the wallet ready for receiving. It requires the 2nd batch of Multisig…....arg strings received from other parties.

Person 1 will run the command:

Unfortunately the wallet will not display an output at this point. There's no indication that the process was successfully completed (for now). All 3 persons do the same, and all 3 wallets will show the same address after this step.

Now each person run the command:

And each 3 parties of the multisig wallet should be shown the same address in their wallet.

hashtag
Receiving

hashtag
Step 1 Fund The Multisig Account

This is simple. Just send to the shared address. You can send multiple times, just like a normal wallet. You can use payment ID’s as well, or generate an integrated address to receive funds.

Best part, whomever is sending the funds won't be able to tell that the address belongs to a multisig wallet since it looks like any other Beldex address.

hashtag
Step 2 Check Multisig Account Balance

Just open the wallet and run the refresh command . Once completed, all persons can verify that the funds arrived.

Person 1, 2 & 3 can run the command:

To see incoming transfers or the following command to see the balance of the wallet:

hashtag
Preparation for Spending

hashtag
Step 1 - Export Multisig

Without this step, it will not be possible to create a transaction that spends Beldex. As a minimum, the sender needs to get a partial key image from the same person who will sign the transaction with him later. He could get from both parties immediately and then later decide with whom to sign.

Person 1 commands:

Where mi1 can be any filename. The output will be:

The file mi1 will be located in the shell working folder*

Person 1 sends that file to other persons. Persons 2 & 3 do the same.

Optional: Step 1.2 Sending Multisig Info File with terminal - transfer.sh

It is optional to use the terminal to send each person the multisig info files.

UPLOADING MULTISIG INFO FILE

Person 1 will open up a new terminal and change to the directory mi1 has been saved.*

Person 1 will run the following command:

Person 1 will receive the link to the file as an output, looking similar to:

Person 1 will need to send this link to Person 2 and Person 3. Person 2 will need to do the same and send the link to Person 1 and 3. Person 3 will need to do the same and send the link to Person 1 and 2.

DOWNLOADING MULTISIG INFO FILE

Person 1 should change to the directory of their beldex-wallet-cli and use Person 2 and 3’s download link to run the commands:

Replacing <link> with the link Person 2 and 3 shared with Person 1 and <filename> with the filename of the Multisig info file that Person 2 or 3 generated, for example Person 1 will run the command:

And the command:

Likewise, Person 2 and 3 should do the same, changing directories to their beldex-wallet-cli and downloading with the alternative Persons download link, and filename.

hashtag
Step 2 - Import Multisig

Now, they must all import each other's file so they can be ready to make a TX later.

For example, Person 2 commands:

The wallet will look for files in the shell working folder and if the files are found the output will look like:

Persons 1 & 3 do the same.

hashtag
Spending

hashtag
Step 1 - Transfer (Preparing Unsigned Transaction)

Any of the 3 persons can start a transaction, it doesn't matter. To avoid weird things from happening only do it for 1 transaction at a time. If anything weird happens, do the step 1 & 2 again to fix.

For example, let's say that Person 3 will make the TX.

Person 3 performs the usual transfer command:

The output will look like:

Check in the folder where you started beldex-wallet-cli from. There should be a file named multisig_beldex_tx.

Send the file multisig_beldex_tx to either person 1 or 2.

Person 3 will send the file multisig_beldex_tx to the Person 1 or 2. Person 3 can send this file through email or alternatively use the transfer.sh commands outside of the wallet:

If Person 3 chooses to use transfer.sh command to send the file to Person 1 or 2 they will receive a <link>.

Person 1 or 2 must finish the signature. Person 1 or 2 copies/downloads the file to the same folder from where he started (or will start) beldex-wallet-cli.

Person 1 or 2 can run the command to download the file to the beldex-wallet-cli directory.

Replacing https://transfer.sh/CJqnM/multisig_beldex_tx with the link provided by Person 3.

hashtag
Step 2 - Sign Multisig

Let's say Person 2 was picked as the partner. He must finish the signature. Person 2 copies the file to the same folder from where he started (or will start) beldex-wallet-cli.

Then, Person 2 commands:

and they will be prompted to check it first:

If ok, answer Y, and the output will look like:

hashtag
Step 3 - Submit Multisig

Finally, person with the signed file submits the transaction to the network by commanding:

There will be a confirmation prompt:

If ok, answer Y, and the transaction will be sent. The output will look like:

You can check its status by using the show_transfers command.

The person 2 could also send the signed TX to person 3, who could then submit it to the network himself.

If you want to make another one, you have to go back to preparation for spending step (sync the key images again).

The wallet will look for the files and export them to the folder from where it was started, ie where your command prompt / shell was when you called beldex-wallet-cli. It may or may not be the same folder as your actual wallet files or beldex-wallet-cli, depending on how you go about it.

For example, your wallet could be on some USB drive like f:\temp\, and your wallet software on c:\beldex\ and your shell working folder could be c:\.

If you remain in c:\ with the shell, you could start the wallet by its full path and specify the wallet file location:

Source:

CLI Wallet Commands

hashtag
Displaying commands

The beldex-wallet-cli has multiple commands to conduct different operations on the Beldex Blockchain. By typing help and clicking enter after loading your wallet will bring up the commands that can be used.

M/N Multisig

First, the wallet to be converted to multisig must be empty. It is best to use a brand-new wallet for the purpose, although not required. It is strongly advised to make a copy of the wallet files first, just in case something goes wrong.

hashtag
Overview

In short, the process is:

Wallet Creation

The completely signed file is pushed to the network with use of
submit_multisig multisig_beldex_tx
.
c:\beldex\beldex-wallet-cli.exe --wallet-file f:\temp\mywallet
. In this case, all the import/export stuff would be read/written to
c:\
because that's still your shell's working folder.

It would be probably feel more natural to cd into the wallet folder. Do f: to change drive and then cd f:\temp\. Then, simply start the wallet from that location by its full path again: c:\beldex\beldex-wallet-cli.exe --wallet-file mywallet. Notice how you don't have to write the full wallet path now as you're already there with your shell. In this case, all the files mentioned above would be written or read from the same folder as the wallet files.

Monero Stack Exchange: how to use monero multisigniture walletsarrow-up-right
hashtag
1.0 Accounts

hashtag
1.1 Creating new account

When a wallet is generated it will automatically have an account labelled Primary accountwith index 0. If at any time you wish to create an additional account use the command:

This command will create a subaddress which is labelled with a tag and index number. This subaddress will share the same seed as your Primary address. To ensure this new account is displayed you must type exit to save your session.

You will note that there is now an asterisk to the left of index 1. The asterisks show us the account in which the commands we run will apply to.

Note: Restoring your wallet from your seed will not restore your accounts as the index of your subaddress data is stored on your computer within your wallet file. All the funds stored in your additional accounts will be shown in your Primary account if you need to restore your wallet from scratch.

hashtag
1.2 Switching account

When transferring out or receiving to a specific account we need to make sure that the account we are performing the action is the one the CLI is currently connected to. An asterisk will show which account we are connected to. In the below example the asterisk is shown to the left of Secondary account so any operations will be associated with that account.

Each of the accounts connected to your Primary address will have an index associated with them. The index number will be shown to the left of the Account column. By default, index “0” is your Primary account.

To switch between the accounts you have created run the command:

After running the command a similar output shown below will be on your terminal.

hashtag
1.3 Changing account labels

To change the label name connected to a specific Beldex Primary or Sub-address use the command:

Replacing <index> with the index number associated with the account you wish to relabel, and replacing <label text with white spaces allowed> with the new label you would like to name the specified account.

Below shows the current accounts and labels for a specific wallet.

Using the command account label 0 My Account we have changed the label connected to our Primary address from “Primary account” to “My Account”.

hashtag
1.4 Tagging and untagging accounts:

The beldex-wallet-cli allows you to group accounts by tagging or untagging them.

Below shows a wallet with 4 accounts, Dog, Kid 1 and Kid 2.

We can tag a single account with the following command:

When needing to perform multiple tags we can do it through one command:

Similarly we can untag accounts by running the following command:

Using the above exampled wallet we will remove our “Dog” account from “Pets”.

hashtag
1.5 Adding Tag descriptions

If you require additional information attached to a specific tag you can add a description with the following command:

For example:

hashtag
2.0 Balance

To check the balance of your wallet you can run one of two commands:

balance or balance detail

Running the command balance will generated a simple output showing your balance and unlocked balance of the specific account you are in. For example:

While running the command balance detail will generate a more detailed output, showing the account number, first few characters of the address, balance, unlocked balance, Outputs and the Label of the account. For example:

There are other commands that will also output the balance which have been covered by this guide, such as the account command.

hashtag
3.0 Getting the Block Height

To show the blockchain height run the command:

hashtag
4.0 Blackballing Transactions

Blackballing transactions allows you to ignore others' outputs (containers of money) that are known to be spent in a certain transaction.

For example let’s imagine that txid: 4f4b371a0da8858bbeab8a40ff37de1f6ff33e64a616e5ced8239062570b7542 is known to be fake and if this txid is seen within a RingCT transaction the network can assume it is fake, therefore an actor has a better chance of deducing the real transaction within the RingCT.

By blackballing the above txid we remove the chance of it being used within our RingCT.

To do this we will use the following command:

For example:

To check if the txid was added to our list of txids not to use we can use the following command:

If the txid is on our list the following will output:

Alternatively if the txid is not on our list the following will output:

To unblackball a txid use the following command:

For example:

hashtag
5.0 Reserve Proof

Reserve Proofs are used to generate a signature proving that you own an amount of Beldex, with the option to sign the reserve proof with a key.

For example let’s imagine you see a car for sale but they will accept Beldex as payment, however they have advised in their online listing that they are only interested in serious buyers and require you to prove you have the Beldex within your initial contact. Luckily we can use the Reserve Proof commands for this proof.

hashtag
5.1 Generate Reserve Proof

To begin we will need to run the get_reserve_proof command to generate our proof.

If the individual you are sending this proof to requires you to prove you have 1000 Beldex you will need to replace the section (all|<amount>) with a 1000, otherwise replace it with the amount you need to prove you have reserved. If you want to put an extra layer of encryption over the file replace [<message>] with a password.

Your command will similar to the below command:

The Cli will request your wallet password and once your password is entered it will tell you it generated a signature file.

This signature file beldex_reserve_proof will be saved in your Beldex folder, where your daemon and wallet keys are. Keep in mind every time you run the get_reserve_proofcommand it will overwrite your beldex_reserve_proof file.

You will want to send this file to the person who requires the proof. You can upload the beldex_reserve_proof file through https://transfer.sh/arrow-up-right by running the command within the folder of your signature file:

The terminal will then print out a link to your signature file which you can then provide to the individual performing the check.

Make sure you provide the following to the individual who will be checking your reserve proof:

  • The beldex_reserve_proof file through the transfer.sh link.

  • The beldex address you are proving has Beldex in it.

  • The <message> if you encrypted the file.

hashtag
5.2 Checking Reserve Proof

To check a reserve proof we need to first have the beldex_reserve_proof file in our Beldex folder.

If you do not have the beldex_reserve_proof file in your beldex folder request the individual sending the file to you to use https://transfer.sh/arrow-up-right, once they send you the link to their beldex_reserve_proof you can use the following command to download it.

Replacing <link> with the link to download the beldex_reserve_proof.

Now that the beldex_reserve_proof is in our folder we can run the following command:

Where <address> is the address of the wallet where the command get_reserve_proof was ran. <signiture_file> is the file that was received from the individual sending you the reserve proof, normally generated as beldex_reserve_proof and <message> is the key set by the individual who sent you the reserve proof.

Therefor for the previous example where we created a reserve proof for 1000 beldex and signed with “car”, we would run the command:

If all goes well, the terminal will output the following:

You may note that it shows a reserve proof which is greater than 1000, this is because the command is adding up all the transactions into the address specified until it is greater than the reserve proof set.

hashtag
6.0 Spend Proof

Spend Proofs are used to generate a signature proving that you generated a TXID, with the option to sign the spend proof with a key.

For example let’s imagine you have bought a car from a dealership with beldex and have sent 1000 BDX to the seller. Unfortunately the dealer does not know which transaction is yours as he has received 5 transactions of 1000 BDX in the same block for 5 different cars. He knows the txid’s but wants you to prove that you have generate one of the txid’s in his list. Luckily we can prove we generated the txid by using the get_spend_proof command.

hashtag
6.1 Generate Spend Proof

To begin we will first need to find the txid associated with our transaction. To do this run the following command in our wallet:

The terminal will output a list of transactions in and out of your address. You should have a transaction in your list with the amount you spent to the dealership. Copy the txid(by highlighting) associated with this transaction and save it in a notepad for later.

We can now run the get_spend_proof command to generate our proof.

Replacing <txid> with the txid of our transfer out and replacing <message> if we want to add a password to the proof. If all went well the terminal will output the following text:

This signature file beldex_spend_proof will be saved in your Beldex folder, where your daemon and wallet keys are. Keep in mind every time you run the get_spend_proof command it will overwrite your beldex_spend_proof file.

You will want to send this file to the person who requires the proof. You can upload the beldex_spend_proof file through https://transfer.sh/arrow-up-right by running the command within the folder of your signature file:

The terminal will then print out a link to your signature file which you can then provide to the individual performing the check. For example:

Make sure you provide the following to the individual who will be checking your reserve proof:

  • The beldex_spend_proof file through the transfer.sh link.

  • The beldex transaction txid associated with the transaction you are proving you generated.

  • The <message> if you encrypted the file.

hashtag
6.2 Checking Spend Proof

To check a spend proof we need to first have the beldex_spend_proof file in our Beldex folder and the txid associated with the transaction being proved.

If you do not have the beldex_spend_proof file in your beldex folder request the individual sending the file to you to use https://transfer.sh/arrow-up-right, once they send you the link to their beldex_spend_proof you can use the following command to download it.

Replacing <link> with the link to download the beldex_spend_proof.

Now that the beldex_spend_proof is in our folder we can run the following command:

Where <txid> is the txid associated with the transaction that is being proved. <signiture_file> is the file that was received from the individual sending you the spend proof, normally generated as beldex_spend_proof and <message> is the key set by the individual who sent you the spend proof.

An example would look like the following command

If all goes well, the terminal will output the following:

If you receive a Good signature message that should be a good proof that the txid you are checking was generated from the sender. Keep in mind however that this can potentially not always be the case, considering someone could get access to someone else's computer thus having access to this file.

hashtag
7.0 TX Proof

TX Proofs are used to generate a signature file proving that you generated a TXID, with the option to sign the spend proof with a key. TX proofs work similar to Reserve Proof’s and Spend Proofs however they show more detailed information.

For example let’s imagine you have bought a car from a dealership with beldex and have sent 1000 BDX to the seller. Unfortunately the dealer does not know which transaction is yours as he has received 5 transactions of 1000 BDX in the same block for 5 different cars. He knows the txid’s but wants you to prove that you have generate one of the txid’s in his list. Luckily we can prove we generated the txid by using the get_tx_proof command.

hashtag
7.1 Generate Spend Proof

To begin we will first need to find the txid associated with our transaction. To do this run the following command in our wallet:

The terminal will output a list of transactions in and out of your address. You should have a transaction in your list with the amount you spent to the dealership. Copy the txid(by highlighting) associated with this transaction and save it in a notepad for later.

We can now run the get_tx_proof command to generate our proof.

Replacing <txid> with the txid of our transfer out, <address> with the receiver's address, and replacing <message> if we want to add a password to the proof. If all went well the terminal will output the following text:

This signature file beldex_tx_proof will be saved in your Beldex folder, where your daemon and wallet keys are. Keep in mind every time you run the get_tx_proof command it will overwrite your beldex_tx_proof file.

You will want to send this file to the person who requires the proof. You can upload the beldex_tx_proof file through https://transfer.sh/arrow-up-right by running the command within the folder of your signature file:

The terminal will then print out a link to your signature file which you can then provide to the individual performing the check. For example:

Make sure you provide the following to the individual who will be checking your reserve proof:

  • The beldex_tx_proof file through the transfer.sh link.

  • The beldex transaction txid associated with the transaction you are proving you generated.

  • The receivers beldex address.

  • The <message> if you encrypted the file.

hashtag
7.2 Checking tx Proof

To check a tx proof we need to first have the beldex_tx_proof file in our Beldex folder, the receiver's address and the txid associated with the transaction being proved.

If you do not have the beldex_tx_proof file in your beldex folder request the individual sending the file to you to use https://transfer.sh/arrow-up-right, once they send you the link to their beldex_tx_proof you can use the following command to download it.

Replacing <link> with the link to download the beldex_tx_proof.

Now that the beldex_tx_proof is in our folder we can run the following command:

Where <txid> is the txid associated with the transaction that is being proved, <address> is the receiver’s address and <signiture_file> is the file that was received from the individual sending you the tx proof, normally generated as beldex_tx_proof and <message> is the key set by the individual who sent you the tx proof.

An example would look like the following command:

If all goes well, the terminal will output the following:

If you receive a Good signature message that should be a good proof that the txid you are checking was generated from the sender. Keep in mind however that this can potentially not always be the case, considering someone could get access to someone else's computer thus having access to this file.

hashtag
8.0 TX key

A TX key is a private key associated with a TXid. Only the wallet that has sent the transaction can generate a TX key from the TXID that both parties can see. A TX key can be used to validate a transaction on a case by case basis. In essence, you can provide the tx key, txid and the receiver address to someone to prove you had generate that transaction.

hashtag
8.1 View TX key

To view the TX key of a specific transaction you have generate you will need to run the command:

Where <txid> is the transaction id associated with the transfer out you are proving is yours.

The terminal will prompt the user for the wallets password and then print out the tx key, which will look similar to:

Provide the <tx key> with the <txid> and <receiving address> to the individual who will run the validation, thus this will prove you generated the transaction.

hashtag
8.2 Validate transaction with TX key

Once we have a <tx key>, <txid> and <receiving address> from a specific transaction we can use the following command to prove they are all associated:

For the previous example we would run the following command from any beldex wallet:

The terminal will show text of how much Beldex the address received. It will also show how many confirmations the transaction has received from the blockchain. For example:

hashtag
9.0 Tx Notes

The beldex-wallet-cli allows you to add notes to specific txid’s, however this note does not get stored on the blockchain, rather it is stored on client side, on the device that generates the tx_note.

hashtag
9.1 Set tx note

To set a tx note we will need a the <txid> and the <message> you want to add to the txid. For instance, if you want to add a note to a txid that is connected to your wallet run the following command to show your transactions in/out with their <txid>’s:

To set the note to the <txid> run the following command:

Where <txid> is the transaction id associated to the transaction you are adding the [free text note] too. Your command will look similar to the following example:

hashtag
9.2 View tx note

To view a note connected to a txid run the following command:

Where <txid> is the transaction id that has the note connected to it. For example, if we run the command on the previous <txid> mentioned, the terminal will display the following text:

You can also view a tx note by running the show_transfers command, each transaction that has a note connected to it will display the text to the right of each transfer.

hashtag
10 Changing wallet password

Changing the wallet password is only client side(locally), and if the password is forgotten the wallet can always be restored with the mnemonic seed. If you know the password to the wallet and want to change it you can run the following command:

Once the command has been run the terminal will prompt you for the current password and the new password twice. If entered correctly the terminal will go back to receiving inputs, otherwise the terminal will output an error such as Passwords do not match! Please try again or Error: invalid password.

hashtag
11 Encrypting seed phrase

Your seed passphrase is a 25 word phrase which is used to recover access to your wallet on a client or gui and is. The command encrypted_seed allows your to add an additional password, or encryption layer, to your 25 word mnemonic seed. Encrypting your seed will stop others from recovering access to your wallet if they somehow gain access to your 25 word mnemonic seed as they will not have the passphrase that decrypts them. This means, your passphrase should not be written or saved in the same location as your encrypted 25 word mnemonic seed phrase.

To encrypt your seed run the following command:

Initially the cli wallet will prompt you to enter your wallet password. Next it will request for your seed encryption passphrase, enter in your desired password/passphrase once, click enter, then type the passphrase in again.

The wallet will output your mnemonic seed which is a 25 word passphrase. It is generally best practice to write these 25 words down and store them somewhere safe and securely, write your passphrase down(which is the phrase you used to encrypt the 25 words) and store this somewhere else. Storing the 25 words with the passphrase in a file on your computer that is not encrypted is giving others easier access to your mnemonic seed.

All parties command prepare_multisig and send data to ALL other parties

  • All parties command make_multisig <threshold> <data1> <data2> .... <dataN> and send 2nd batch of data to ALL other parties

  • All parties command finalize_multisig <data1> <data2> ...... <DataM> with the data from ALL other parties.

  • Receiving

    1. All parties can type address to see the created multisig wallet address. The address will, of course, be the same for all parties since they're all watching the same wallet.

    Preparation for Sending

    1. To prepare for sending all parties command export_multisig_info <filename> and send the file to all other parties

    2. To complete preparation, all parties command import_multisig_info <filename1> <filename2> ..... <filenameM> and import files from other parties

    Sending

    1. To send, any party can use the usual transfer command, but the result will be a file named multisig_beldex_tx which must be sent to any 1 other signer

    2. The other party commands sign_multisig multisig_beldex_tx and the file is updated with the signature.

    3. The completely signed file is pushed to the network with use of submit_multisig multisig_beldex_tx.

    Below is a step-by-step walkthrough.

    hashtag
    Wallet Creation

    Requirements:

    • N empty beldex-wallet-cli wallets.

    • All parties wallets connected to a beldexd.

    • Confidential communication channel.

    hashtag
    Step 1 - Prepare Multisig

    All N people should open up their beldex-wallet-cli and generate a new wallet. Make sure you do not have any $beldex within your wallet.

    The 1st, 2nd, 3rd, and so on, up to the Nth person commands in their beldex-wallet-cli:

    The output will be something like:

    Copy the entire line Multisig…...Vozid and be sure to capture the whole thing when copying.

    Each person must send their Multisig…...arg to each other person, it is suggested to send this information through a confidential comunication channel.

    hashtag
    Step 2 - Make Multisig

    All N people now have the Multisig...arg text from the other N-1 people. With that, each of them can create their part of the multisig wallet. Before you proceed, note that the wallet will lose access to the underlying wallet when converted to multisig. This is not really a problem, since we started with an empty wallet, and if all goes OK with this step, you won't ever need it unless you want to go through the process again for whatever reason (like HDD died, but you have the seed mnemonic of the underlying wallet and want to reconstruct the multisig wallet).

    Person 1 commands:

    Where <threshold> is the number of signers required out of the N people, <data person 2>is the output provided by Person 2, and <data person 3> is the output provided by Person 3, and <data person N> is the output provided by the Nth person.

    This is the process for M of N multisig wallets, For the below example we will show a 2 of 3 multisig wallet.

    This should look similar to:

    Notice how there are 2 strings starting with Multisig....arg. One is from person 2 and other from person 3, if their is 5 different people their would be 4 different strings of Multisig....arg. The number at the beginning is the minimum required number of signatures. Since it's a 2/3 scheme - it's 2.

    To reiterate, for a 5/8 scheme which means there are 8 people who can sign and 5 people must sign to authorise a transaction out of the Multi signature wallet. In this circumstance, the command each person would run has a <threshold> that equals 5 and 7 strings of multisig...arg.

    The output from the make_multisig command will be similar to:

    With any M of N schemes there's an additional step to be done here. The new Multisig...arg info that was just outputted must be passed to ALL other participants (For person 1 they must send it to persons 2 & 3 ... all the way up to person N).

    Persons N sends the new output to all other persons.

    hashtag
    Step 3 - Finalize Multisig

    Here we do one last command to make the wallet ready for receiving. It requires the 2nd batch of Multisig…....arg strings received from other parties.

    Person N will run the command:

    Unfortunately the wallet will not display an output at this point. There's no indication that the process was successfully completed (for now). All N persons do the same, and all N wallets will show the same address after this step.

    Now each person run the command:

    And each N people of the multisig wallet should be shown the same address in their wallet.

    hashtag
    Receiving

    hashtag
    Step 1 Fund The Multisig Account

    This is simple, just send to the shared address. You can send multiple times, just like a normal wallet. You can use payment ID’s as well, or generate an integrated address to receive funds.

    Best part, whomever is sending the funds won't be able to tell that the address belongs to a multisig wallet since it looks like any other Beldex address.

    hashtag
    Step 2 Check Multisig Account Balance

    Just open the wallet and run the refresh command. Once completed, all persons can verify that the funds arrived.

    Person 1, 2, 3 up to N can run the command:

    To see incoming transfers or the following command to see the balance of the wallet:

    hashtag
    Preparation for Spending

    hashtag
    Step 1 - Export Multisig

    Without this step, it will not be possible to create a transaction that spends Beldex. As a minimum, the sender needs to get a partial key image from all the people who will sign the transaction with them later. They could get it from the parties immediately and then later decide with whom to sign.

    Person N commands:

    Where miN can be any filename. The output will be:

    The file miN will be located in the shell working folder*

    Person N sends that file to other people. Persons 2 & 3 up to N do the same.

    Optional: Step 1.2 Sending Multisig Info File with terminal - transfer.sh

    It is optional to use the terminal to send each person the multisig info files.

    UPLOADING MULTISIG INFO FILE

    Person 1 will open up a new terminal and change to the directory mi1 has been saved.*

    Person 1 will run the following command:

    Person 1 will receive the link to the file as an output, looking similar to:

    Person 1 will need to send this link to Person 2, Person 3, .... Person N. Person 2 will need to do the same and send the link to Person 1, 3 ..... N. Person 3 will need to do the same and send the link to Person 1, 2 ..... N. Person N will need to do the same and send the link to Person 1, 2, 3, 4, 5 ...... N-1.

    DOWNLOADING MULTISIG INFO FILE

    Person 1 should change to the directory of their beldex-wallet-cli and use Person 2, 3, 4 ... N’s download link to run the commands:

    Replacing <link> with the link Person 2, 3 ... N shared with Person 1 and <filename> with the filename of the Multisig info file that Person 2, 3 or ... N generated, for example Person 1 will run the command:

    And the command:

    and all the way up to:

    Likewise, Person 2, 3 .... and N should do the same, changing directories to their beldex-wallet-cli and downloading with the alternative Persons download link, and filename.

    hashtag
    Step 2 - Import Multisig

    Now, they must all import each other's file so they can be ready to make a TX later.

    For example, Person 2 commands:

    The wallet will look for files in the shell working folder* and if the files are found the output will look like:

    Persons 1, 3 .... and N do the same.

    hashtag
    Spending

    hashtag
    Step 1 - Transfer (Preparing Unsigned Transaction)

    Any of the multisig wallets can start a transaction, it doesn't matter. To avoid weird things from happening only do it for 1 transaction at a time. If anything weird happens, do the step 1 & 2 again to fix.

    For example, let's say that Person 3 will make the TX.

    Person 3 performs the usual transfer command:

    The output will look like:

    Check in the folder where you started beldex-wallet-cli from. There should be a file named multisig_beldex_tx.

    Send the file multisig_beldex_tx to one of the people who will sign the TX.

    Person 3 will send the file multisig_beldex_tx to the Person 1, 2 or N. Person 3 can send this file through email or alternatively use the transfer.sh commands outside of the wallet:

    If Person 3 chooses to use transfer.sh command to send the file to Person 1 or 2 they will receive a <link>.

    Person 1 or 2 must finish the signature. Person 1 or 2 copies/downloads the file to the same folder from where he started (or will start) beldex-wallet-cli.

    Person 1 or 2 can run the command to download the file to the beldex-wallet-cli directory.

    Replacing https://transfer.sh/CJqnM/multisig_beldex_tx with the link provided by Person 3.

    hashtag
    Step 2 - Sign Multisig

    Let's say Person 2 was picked as the partner. They must finish the signature. Person 2 copies the file to the same folder from where he started (or will start) beldex-wallet-cli.

    Then, Person 2 commands:

    and they will be prompted to check it first:

    If ok, answer Y, and the output will look like:

    If the threshold is greater than 2 another multisig_beldex_tx file will need to be signed by the amount of signers required.

    hashtag
    Step 3 - Submit Multisig

    Finally, person with the final signed file submits the transaction to the network by commanding:

    There will be a confirmation prompt:

    If ok, answer Y, and the transaction will be sent. The output will look like:

    You can check its status by using the show_transfers command.

    The person 2 could also send the signed TX to person 3, who could then submit it to the network himself.

    If you want to make another one, you have to go back to preparation for spending step (sync the key images again).

    The wallet will look for the files and export them to the folder from where it was started, ie where your command prompt / shell was when you called beldex-wallet-cli. It may or may not be the same folder as your actual wallet files or beldex-wallet-cli, depending on how you go about it.

    For example, your wallet could be on some USB drive like f:\temp\, and your wallet software on c:\beldex\ and your shell working folder could be c:\.

    If you remain in c:\ with the shell, you could start the wallet by its full path and specify the wallet file location: c:\beldex\beldex-wallet-cli.exe --wallet-file f:\temp\mywallet. In this case, all the import/export stuff would be read/written to c:\because that's still your shell's working folder.

    It would be probably feel more natural to cd into the wallet folder. Do f: to change drive and then cd f:\temp\. Then, simply start the wallet from that location by its full path again: c:\beldex\beldex-wallet-cli.exe --wallet-file mywallet. Notice how you don't have to write the full wallet path now as you're already there with your shell. In this case, all the files mentioned above would be written or read from the same folder as the wallet files.

    Source:

    Monero Stack Exchange: how to use monero multisigniture walletsarrow-up-right

    prepare_multisig
    MultisigV1cR7X7ZAfa5ncRmQv1hpt4P1DmmnhinhokhDMqsmuWXmHFrb6xUr3FtBGygCfMScxnKJvXK1vvPNahXNWfYWVquieBErr98sFtgs24c2YuYrQT78uxV8oYx1A9bKeHSUfYzCniN5kMznEfvKCw3FiomjLvw364gg98ZWp16zA7pUVozid  
    Send this multisig info to all other participants, then use make_multisig <threshold> <info1> [<info2>...] with others' multisig info  
    This includes the PRIVATE view key, so needs to be disclosed only to that multisig wallet's participants
    make_multisig <threshold> <data person 2> <data person 3>
    make_multisig 2 MultisigV12EHtuvxFyAYDNcDsbDqWHDfkRr4JZchSdf8eZQSFwiMKDk15CYEJeQyEwtSnqUZdRr2BsEaT9z2biUdDTEQM4T3N625owvKMDoyhbRj3bwkBtceLKimap8DBAiUmSABpdf62HnPYiRtLW4JdVFmfqjndhWjYBypx1duvpi3qwfSrBY9a MultisigV1TqQ8Gt5Sb3GYtVJa1fQrK7e7hPm59XbooNvLxPSBR4856bW9jtD1hEyWy4yULKrX7reZZ6vrKdBCdSdk4nfApCGYJAA2WP4pKNwHDyKTuLEeuoDhqno8keEVeEF9AZsWXvng1avUTRREmy11h8wu8pdjopC4AguQKiHCJCN7aT9W6b8C  
    Another step is needed  
    MultisigxV1PKCwmVrucV8bXi18VnHFqRXcnAq4osFL3ahzPHCiN48zhs28u6jmEhy7ktZbUEGfRtTuFjjKzJYb61fnFwnysBBnNXsUtCgFMXPa7FyNKVy2AnUg3ePEnKqWkgKVvA81axTS8r9EX1DmVPXgFKkFzw4Yj4ZtMcJVo77b5ayuMzjFtsaijko9X2bjd9AVfFVGBFMCSLa4xXhNVNz19CTUJx5gpoPG  
    Send this multisig info to all other participants, then use finalize_multisig <info1> [<info2>...] with others' multisig info
    exchange_multisig_info MultisigxV1Vg1tsRLurvAc5aSA9Hd9God3MQhijCFoE1rPDFzx7ufwhs28u6jmEhy7ktZbUEGfRtTuFjjKzJYb61fnFwnysBBnfYm4xJWcJ4qM4khSb2KkyAKDuT39pTvdmemhojNjeYCmgSQ1NZLyBj48R1tVpiGNxa7TDnGbSgLuKBq35AX6jfu5PECAcDDn22CFQbJZip7xnBbn89Szzh27xeozfxcLiqqm MultisigxV14xDZBGACz3iUh2aVKGE5q5VzcvJdg2qCvZECgUWCdy5QNXsUtCgFMXPa7FyNKVy2AnUg3ePEnKqWkgKVvA81axTSfYm4xJWcJ4qM4khSb2KkyAKDuT39pTvdmemhojNjeYCmCNaRSsDEcemLLL8wCvzsy5R6hhkhWLYkD9vhZwprSFFKMZ7tfRko2VfMBoKQhB7PKXbf1npk2xceVKu2y7kExywb
    address
    show_transfers
    balance
    export_multisig_info mi1
    Multisig info exported to mi1
    curl --upload-file ./mi1 https://transfer.sh/mi1
    https://transfer.sh/Ehl5q/mi1
    curl <link> -o <filename>
    curl https://transfer.sh/Iedv9/mi2 -o mi2
    curl https://transfer.sh/dfvr3/mi3 -o mi3
    curl https://transfer.sh/Ehl5q/mi1 -o mi1
    import_multisig_info mi1
    2 outputs found in mi1  
    Height 56156, transaction <88ba687dc79a0b39e6de6d0763eda8363d33d9f58ec9a096171bd9a7f1dae873>, received 0.100000000000  
    Height 56156, transaction <d6ac845b9400759525519cdc5d514eb8f5b1d265b24d1c016e75b20ed3b4b7da>, received 0.100000000000
    transfer 86TmZX8EzZVjS9zNg7zAsrEQFDgcVC2qV2ZMyoWsbyK4SNB2SwMHZtMhPSsFyTmRBQUaGVF5k3qy5CMFM6Lvj7gi3AeszDag7 50
    Unsigned transaction(s) successfully written to file: multisig_beldex_tx
    curl --upload-file ./multisig_beldex_tx https://transfer.sh/multisig_beldex_tx
    curl https://transfer.sh/CJqnM/multisig_beldex_tx -o multisig_beldex_tx
    sign_multisig multisig_beldex_tx
    Loaded 1 transactions, for 108.082287779, fee 0.061108880, sending 50.000000000 to 86TmZX8EzZVjS9zNg7zAsrEQFDgcVC2qV2ZMyoWsbyK4SNB2SwMHZtMhPSsFyTmRBQUaGVF5k3qy5CMFM6Lvj7gi3AeszDag7, 58.021178899 change to 86ScXhWpAG2aUHmFemwvn4HddHA5GQ4u6MvYsW2hVteJSwLJXCEhk2aVp4XzyqGmvyUqc3w8fwWwg6szGEytUSx51C6WQ3er8, with min ring size 10, no payment ID.
    
    Is this okay? (Y/Yes/N/No):
    Transaction successfully submitted, transaction <3b03b16c79eaa5564171ae88242c4cdb1f9e0b41fc3de949c6524c5026a3f3bb>
    submit_multisig multisig_beldex_tx
    Loaded 1 transactions, for 108.082287779, fee 0.061108880, sending 50.000000000 to 86TmZX8EzZVjS9zNg7zAsrEQFDgcVC2qV2ZMyoWsbyK4SNB2SwMHZtMhPSsFyTmRBQUaGVF5k3qy5CMFM6Lvj7gi3AeszDag7, 58.021178899 change to 86ScXhWpAG2aUHmFemwvn4HddHA5GQ4u6MvYsW2hVteJSwLJXCEhk2aVp4XzyqGmvyUqc3w8fwWwg6szGEytUSx51C6WQ3er8, with min ring size 10, no payment ID.
    
    Is this okay? (Y/Yes/N/No):
    Transaction successfully submitted, transaction <3b03b16c79eaa5564171ae88242c4cdb1f9e0b41fc3de949c6524c5026a3f3bb>  
    account new <label text with white spaces allowed>
    [wallet bxcnR2]: account new Secondary account
    [wallet bxcnR2]: Untagged accounts:
    [wallet bxcnR2]: Account Balance Unlocked balance Label
    [wallet bxcnR2]: 0 bxcnR2 0.000000000 0.000000000 Primary account
    [wallet bxcnR2]: * 1 8Y5J5W 0.000000000 0.000000000 Secondary account
    [wallet bxcnR2]: ----------------------------------------------------------------------------------
    [wallet bxcnR2]: Total 0.000000000 0.000000000
    [wallet bxcnR2]: account new Secondary account
    [wallet bxcnR2]: Untagged accounts:
    [wallet bxcnR2]: Account Balance Unlocked balance Label
    [wallet bxcnR2]: 0 bxcnR2 0.000000000 0.000000000 Primary account
    [wallet bxcnR2]: * 1 8Y5J5W 0.000000000 0.000000000 Secondary account
    [wallet bxcnR2]: ----------------------------------------------------------------------------------
    [wallet bxcnR2]: Total 0.000000000 0.000000000
    account switch <index>
    [wallet bxcnR2]: account switch 0
    [wallet bxcnR2]: Currently selected account: [0] Primary account
    [wallet bxcnR2]: Tag: (No tag assigned)
    [wallet bxcnR2]: Balance: 0.000000000, unlocked balance: 0.000000000
    account label <index> <label text with white spaces allowed>
    [wallet bxmjSH]: Untagged accounts:
    [wallet bxmjSH]: Account Balance Unlocked balance Label
    [wallet bxmjSH]: * 0 bxmjSH 0.000000000 0.000000000 Primary account
    [wallet bxmjSH]: 1 8TLgNy 0.000000000 0.000000000 Secondary
    [wallet bxmjSH]: ----------------------------------------------------------------------------------
    [wallet bxmjSH]: Total 0.000000000 0.000000000
    [wallet bxmjSH]: account label 0 My Account
    [wallet bxmjSH]: Untagged accounts:
    [wallet bxmjSH]: Account Balance Unlocked balance Label
    [wallet bxmjSH]: * 0 bxmjSH 0.000000000 0.000000000 My Account
    [wallet bxmjSH]: 1 8TLgNy 0.000000000 0.000000000 Secondary
    [wallet bxmjSH]: ----------------------------------------------------------------------------------
    [wallet bxmjSH]: Total 0.000000000 0.000000000
    [wallet 8VP3bv]: Untagged accounts:
    [wallet 8VP3bv]: Account Balance Unlocked balance Label
    [wallet 8VP3bv]: 0 bxXk6e 0.000000000 0.000000000 My Account
    [wallet 8VP3bv]: 1 8RDvY6 0.000000000 0.000000000 Dog
    [wallet 8VP3bv]: 2 8VJDwN 0.000000000 0.000000000 Kid 1
    [wallet 8VP3bv]: * 3 8VP3bv 0.000000000 0.000000000 Kid 2
    [wallet 8VP3bv]: ----------------------------------------------------------------------------------
    [wallet 8VP3bv]: Total 0.000000000 0.000000000
    account tag <tag_name> <account_index>
    [wallet 8VP3bv]: account tag Pets 1
    [wallet 8VP3bv]: Accounts with tag: Pets
    [wallet 8VP3bv]: Tag's description:
    [wallet 8VP3bv]: Account Balance Unlocked balance Label
    [wallet 8VP3bv]: 1 8RDvY6 0.000000000 0.000000000 Dog
    [wallet 8VP3bv]: ----------------------------------------------------------------------------------
    [wallet 8VP3bv]: Total 0.000000000 0.000000000
    account tag <tag_name> <account_index_1> [<account_index_2> ...]
    [wallet 8VP3bv]: account tag Family 2 3
    [wallet 8VP3bv]: Accounts with tag: Family
    [wallet 8VP3bv]: Tag's description:
    [wallet 8VP3bv]: Account Balance Unlocked balance Label
    [wallet 8VP3bv]: 2 8VJDwN 0.000000000 0.000000000 Kid 1
    [wallet 8VP3bv]: * 3 8VP3bv 0.000000000 0.000000000 Kid 2
    [wallet 8VP3bv]: ----------------------------------------------------------------------------------
    [wallet 8VP3bv]: Total 0.000000000 0.000000000
    account untag <account_index_1> [<account_index_2> ...]
    [wallet 8VP3bv]: account untag 1
    [wallet 8VP3bv]: Accounts with tag: Family
    [wallet 8VP3bv]: Tag's description:
    [wallet 8VP3bv]: Account Balance Unlocked balance Label
    [wallet 8VP3bv]: 2 8VJDwN 0.000000000 0.000000000 Kid 1
    [wallet 8VP3bv]: * 3 8VP3bv 0.000000000 0.000000000 Kid 2
    [wallet 8VP3bv]: ----------------------------------------------------------------------------------
    [wallet 8VP3bv]: Total 0.000000000 0.000000000
    [wallet 8VP3bv]:
    [wallet 8VP3bv]: Untagged accounts:
    [wallet 8VP3bv]: Account Balance Unlocked balance Label
    [wallet 8VP3bv]: 0 bxXk6e 0.000000000 0.000000000 My Account
    [wallet 8VP3bv]: 1 8RDvY6 0.000000000 0.000000000 Dog
    [wallet 8VP3bv]: ----------------------------------------------------------------------------------
    [wallet 8VP3bv]: Total 0.000000000 0.000000000
    account tag_description <tag_name> <description>
    [wallet 8VP3bv]: account tag_description Family This is my family.
    [wallet 8VP3bv]: Accounts with tag: Family
    [wallet 8VP3bv]: Tag's description: This is my family.
    [wallet 8VP3bv]: Account Balance Unlocked balance Label
    [wallet 8VP3bv]: 2 8VJDwN 0.000000000 0.000000000 Kid 1
    [wallet 8VP3bv]: * 3 8VP3bv 0.000000000 0.000000000 Kid 2
    [wallet 8VP3bv]: ----------------------------------------------------------------------------------
    [wallet 8VP3bv]: Total 0.000000000 0.000000000
    [wallet 86TmZX]: balance
    Currently selected account: [0] Primary account
    Tag: (No tag assigned)
    Balance: 172286.035054991, unlocked balance: 172086.338373771
    [wallet 86TmZX]: balance detail
    Currently selected account: [0] Primary account
    Tag: (No tag assigned)
    Balance: 172286.035054991, unlocked balance: 172086.338373771
    Balance per address:
    Address Balance Unlocked balance Outputs Label
    0 86TmZX 172286.035054991 172086.338373771  3347 Primary account
    bc_height
    blackball <output public key> | <filename> [add]
    [wallet bxXk6e]: blackball 4f4b371a0da8858bbeab8a40ff37de1f6ff33e64a616e5ced8239062570b7542
    blackballed <output public key>
    [wallet bxXk6e]: blackballed 4f4b371a0da8858bbeab8a40ff37de1f6ff33e64a616e5ced8239062570b7542
    [wallet bxXk6e]: Blackballed: <4f4b371a0da8858bbeab8a40ff37de1f6ff33e64a616e5ced8239062570b7542>
    [wallet bxXk6e]: blackballed 4f4b371a0da8858bbeab8a40ff37de1f6ff33e64a616e5ced8239062570b7542
    [wallet bxXk6e]: not blackballed: <4f4b371a0da8858bbeab8a40ff37de1f6ff33e64a616e5ced8239062570b7542>
    unblackball <output public key>
    [wallet bxXk6e]: unblackball 4f4b371a0da8858bbeab8a40ff37de1f6ff33e64a616e5ced8239062570b7542
    get_reserve_proof (all|<amount>) [<message>]
    get_reserve_proof 1000 Car
    [wallet 86TmZX]: get_reserve_proof 1000 Car
    Wallet password:
    signature file saved to: beldex_reserve_proof
    curl --upload-file ./beldex_reserve_proof https://transfer.sh/beldex_reserve_proof`
    https://transfer.sh/QhoC7/beldex_reserve_proof
    curl <link> -o beldex_reserve_proof
    check_reserve_proof <address> <signature_file> [<message>]
    check_reserve_proof bxTmZX8EzZVjS9zNg7zAsrEQFDgcVC2qV2ZMyoWsbyK4SNB2SwMHZtMhPSsFyTmRBQUaGVF5k3qy5CMFM6Lvj7gi3AeszDag7 beldex_reserve_proof Car
    Good signature -- total: 1014.862440831, spent: 0.000000000, unspent: 1014.862440831
    show_transfers
    get_spend_proof <txid> [<message>]
    signature file saved to: beldex_spend_proof
    curl --upload-file ./beldex_spend_proof https://transfer.sh/beldex_spend_proof
    https://transfer.sh/QhoC7/beldex_spend_proof
    curl <link> -o beldex_spend_proof
    check_spend_proof <txid> <signature_file> [<message>]
    check_spend_proof 20eb3b5545d6587e5a379feb2fc69b43d4f8b6b825bb7eff78e263d4e7e8eaa9 beldex_spend_proof car
    Good signature
    show_transfers
    get_tx_proof <txid> <address> [<message>]
    signature file saved to: beldex_tx_proof
    curl --upload-file ./beldex_tx_proof https://transfer.sh/beldex_tx_proof
    https://transfer.sh/QhoC7/beldex_tx_proof
    curl <link> -o beldex_tx_proof
    check_tx_proof <txid> <address> <signature_file> [<message>]
    check_tx_proof 3f8c62b4d83100ff4f89b44a96350e65aeaa83a9b4273c31f94b9aa12e713044 8RrEpWMLd3rRuirYqsjg1iaNsukAAojWjFDhJ2kK2o4uM6tkcjMerA4SZNat6QHEYe1SoGCFQddVPgRqmkA8kARX1ffU1Wcjc beldex_tx_proof
    Good signature
    TRrEpWMLd3rRuirYqsjg1iaNsukAAojWjFDhJ2kK2o4uM6tkcjMerA4SZNat6QHEYe1SoGCFQddVPgRqmkA8kARX1ffU1Wcjc received 40000.000000 in txid <3f8c62b4d83100ff4f89b44a96350e65aeaa83a9b4273c31f94b9aa12e713044>
    This transaction has 1 confirmations
    get_tx_key <txid>
    [wallet 86TmZX]: get_tx_key d5fb415aad43f4e45bc72566d5ad4c8f12629db1f924d953efc2521c137a987f
    Wallet password:
    Tx key: 5dfc4d677e2707317f306219b6aa445feaab4c652927237c012f7e72cb41bf0e
    check_tx_key <txid> <txkey> <address>
    check_tx_key d5fb415aad43f4e45bc72566d5ad4c8f12629db1f924d953efc2521c137a987f 5dfc4d677e2707317f306219b6aa445feaab4c652927237c012f7e72cb41bf0e 86TZ2VaG1p9PQkDgdVCYwnjoxYSU7ErXX56etGsqHLugAGqynFwBvP4dnN7wvYCcJfMa9LPgtYu8UEUqyc4xsxmx2ZTyMp4U3
    [wallet 86TZ2V]: check_tx_key d5fb415aad43f4e45bc72566d5ad4c8f12629db1f924d953efc2521c137a987f 5dfc4d677e2707317f306219b6aa445feaab4c652927237c012f7e72cb41bf0e 86TZ2VaG1p9PQkDgdVCYwnjoxYSU7ErXX56etGsqHLugAGqynFwBvP4dnN7wvYCcJfMa9LPgtYu8UEUqyc4xsxmx2ZTyMp4U3  
    86TZ2VaG1p9PQkDgdVCYwnjoxYSU7ErXX56etGsqHLugAGqynFwBvP4dnN7wvYCcJfMa9LPgtYu8UEUqyc4xsxmx2ZTyMp4U3 received 10000.000000000 in txid <d5fb415aad43f4e45bc72566d5ad4c8f12629db1f924d953efc2521c137a987f>
    This transaction has 10 confirmations
    show_transfers
    set_tx_note <txid> [free text note]
    [wallet 86TmZX]: set_tx_note d5fb415aad43f4e45bc72566d5ad4c8f12629db1f924d953efc2521c137a987f This is a tx note example.
    get_tx_note <txid>
    [wallet 86TmZX]: get_tx_note d5fb415aad43f4e45bc72566d5ad4c8f12629db1f924d953efc2521c137a987f
    note found: This is a tx note example.
    password
    encrypted_seed
    prepare_multisig
    MultisigV1cR7X7ZAfa5ncRmQv1hpt4P1DmmnhinhokhDMqsmuWXmHFrb6xUr3FtBGygCfMScxnKJvXK1vvPNahXNWfYWVquieBErr98sFtgs24c2YuYrQT78uxV8oYx1A9bKeHSUfYzCniN5kMznEfvKCw3FiomjLvw364gg98ZWp16zA7pUVozid  
    Send this multisig info to all other participants, then use make_multisig <threshold> <info1> [<info2>...] with others' multisig info  
    This includes the PRIVATE view key, so needs to be disclosed only to that multisig wallet's participants
    make_multisig <threshold> <data person 2> <data person 3> ..... <data person N>
    make_multisig 2 MultisigV12EHtuvxFyAYDNcDsbDqWHDfkRr4JZchSdf8eZQSFwiMKDk15CYEJeQyEwtSnqUZdRr2BsEaT9z2biUdDTEQM4T3N625owvKMDoyhbRj3bwkBtceLKimap8DBAiUmSABpdf62HnPYiRtLW4JdVFmfqjndhWjYBypx1duvpi3qwfSrBY9a MultisigV1TqQ8Gt5Sb3GYtVJa1fQrK7e7hPm59XbooNvLxPSBR4856bW9jtD1hEyWy4yULKrX7reZZ6vrKdBCdSdk4nfApCGYJAA2WP4pKNwHDyKTuLEeuoDhqno8keEVeEF9AZsWXvng1avUTRREmy11h8wu8pdjopC4AguQKiHCJCN7aT9W6b8C  
    Another step is needed  
    MultisigxV1PKCwmVrucV8bXi18VnHFqRXcnAq4osFL3ahzPHCiN48zhs28u6jmEhy7ktZbUEGfRtTuFjjKzJYb61fnFwnysBBnNXsUtCgFMXPa7FyNKVy2AnUg3ePEnKqWkgKVvA81axTS8r9EX1DmVPXgFKkFzw4Yj4ZtMcJVo77b5ayuMzjFtsaijko9X2bjd9AVfFVGBFMCSLa4xXhNVNz19CTUJx5gpoPG  
    Send this multisig info to all other participants, then use finalize_multisig <info1> [<info2>...] with others' multisig info
    finalize_multisig MultisigxV1Vg1tsRLurvAc5aSA9Hd9God3MQhijCFoE1rPDFzx7ufwhs28u6jmEhy7ktZbUEGfRtTuFjjKzJYb61fnFwnysBBnfYm4xJWcJ4qM4khSb2KkyAKDuT39pTvdmemhojNjeYCmgSQ1NZLyBj48R1tVpiGNxa7TDnGbSgLuKBq35AX6jfu5PECAcDDn22CFQbJZip7xnBbn89Szzh27xeozfxcLiqqm MultisigxV14xDZBGACz3iUh2aVKGE5q5VzcvJdg2qCvZECgUWCdy5QNXsUtCgFMXPa7FyNKVy2AnUg3ePEnKqWkgKVvA81axTSfYm4xJWcJ4qM4khSb2KkyAKDuT39pTvdmemhojNjeYCmCNaRSsDEcemLLL8wCvzsy5R6hhkhWLYkD9vhZwprSFFKMZ7tfRko2VfMBoKQhB7PKXbf1npk2xceVKu2y7kExywb
    address
    show_transfers
    balance
    export_multisig_info miN
    Multisig info exported to miN
    curl --upload-file ./mi1 https://transfer.sh/mi1
    https://transfer.sh/Ehl5q/mi1
    curl <link> -o <filename>
    curl https://transfer.sh/Iedv9/mi2 -o mi2
    curl https://transfer.sh/dfvr3/mi3 -o mi3
    curl https://transfer.sh/dfvr3/mi3 -o miN
    curl https://transfer.sh/Ehl5q/mi1 -o mi1
    import_multisig_info mi1
    import_multisig_info mi3
    import_multisig_info miN
    2 outputs found in mi1  
    Height 56156, transaction <88ba687dc79a0b39e6de6d0763eda8363d33d9f58ec9a096171bd9a7f1dae873>, received 0.100000000000  
    Height 56156, transaction <d6ac845b9400759525519cdc5d514eb8f5b1d265b24d1c016e75b20ed3b4b7da>, received 0.100000000000
    transfer bxTmZX8EzZVjS9zNg7zAsrEQFDgcVC2qV2ZMyoWsbyK4SNB2SwMHZtMhPSsFyTmRBQUaGVF5k3qy5CMFM6Lvj7gi3AeszDag7 50
    Unsigned transaction(s) successfully written to file: multisig_beldex_tx
    curl --upload-file ./multisig_beldex_tx https://transfer.sh/multisig_beldex_tx
    curl https://transfer.sh/CJqnM/multisig_beldex_tx -o multisig_beldex_tx
    sign_multisig multisig_beldex_tx
    Loaded 1 transactions, for 108.082287779, fee 0.061108880, sending 50.000000000 to bxTmZX8EzZVjS9zNg7zAsrEQFDgcVC2qV2ZMyoWsbyK4SNB2SwMHZtMhPSsFyTmRBQUaGVF5k3qy5CMFM6Lvj7gi3AeszDag7, 58.021178899 change to bxScXhWpAG2aUHmFemwvn4HddHA5GQ4u6MvYsW2hVteJSwLJXCEhk2aVp4XzyqGmvyUqc3w8fwWwg6szGEytUSx51C6WQ3er8, with min ring size 10, no payment ID.
    
    Is this okay? (Y/Yes/N/No):
    Transaction successfully submitted, transaction <3b03b16c79eaa5564171ae88242c4cdb1f9e0b41fc3de949c6524c5026a3f3bb>
    submit_multisig multisig_beldex_tx
    Loaded 1 transactions, for 108.082287779, fee 0.061108880, sending 50.000000000 to bxTmZX8EzZVjS9zNg7zAsrEQFDgcVC2qV2ZMyoWsbyK4SNB2SwMHZtMhPSsFyTmRBQUaGVF5k3qy5CMFM6Lvj7gi3AeszDag7, 58.021178899 change to bxScXhWpAG2aUHmFemwvn4HddHA5GQ4u6MvYsW2hVteJSwLJXCEhk2aVp4XzyqGmvyUqc3w8fwWwg6szGEytUSx51C6WQ3er8, with min ring size 10, no payment ID.
    
    Is this okay? (Y/Yes/N/No):
    Transaction successfully submitted, transaction <3b03b16c79eaa5564171ae88242c4cdb1f9e0b41fc3de949c6524c5026a3f3bb>  

    2/2 Multisig

    First, the wallet to be converted to multisig must be empty. It is best to use a brand-new wallet for the purpose, although not required. It is strongly advised to make a copy of the wallet files first, just in case something goes wrong.

    hashtag
    Overview

    In short, the process is:

    Set-up

    Both parties prepare beldex-wallet-cli files

  • Both parties command prepare_multisig and send data to each other

  • Both parties command make_multisig

  • Receiving

    1. All parties can type address to see the created multisig wallet address. The address will, of course, be the same for all parties since they're all watching the same wallet.

    Preparation for Sending

    1. To prepare for sending both parties command export_multisig_info <filename> and send the file to the other party

    2. To complete preparation, all parties command import_multisig_info <filename1> <filename2> and import files from other parties

    Sending

    1. To send, any party can use the usual transfer command, but the result will be a file named multisig_beldex_tx which must be sent to any 1 other signer

    2. The other party commands sign_multisig multisig_beldex_tx and the file is updated with the signature.

    3. The completely signed file is pushed to the network with use of submit_multisig multisig_beldex_tx

    Below is a step-by-step walkthrough.

    hashtag
    Set-up

    hashtag
    Step 1 Initiate Creation of Multisig Wallet and Exchange Data

    Requirements:

    • 2 empty beldex-wallet-cli wallets

    • Both wallets connected to beldexd

    • Confidential communication channel

    Person A must run the command in their beldex-wallet-cli:

    Person A will receive the output:

    Copy the entire line Multisig...5ozpN and be sure to capture the whole thing when copying.

    Send this line to person B through a confidential communication channel.

    Person B does the same and sends his output to person A.

    Person B must run the command in their beldex-wallet-cli:

    Person B will receive the output:

    Person B will copy the Multisig…...eJi4FS and send it to person A through a confidential communication channel.

    hashtag
    Step 2 Create Multisig Wallets

    Both person A and person B now have the Multisig...arg text from the other one. With that, each of them can create their part of the multisig wallet. Before you proceed, note that the wallet will lose access to the underlying account when converted to multisig. This is not really a problem, since we started with an empty one, and if all goes ok with this step, you won't ever need it unless you want to go through the process again for whatever reason (like HDD died, but you have the seed mnemonic of the underlying account and want to reconstruct the multisig wallet).

    Person A will use the output Person B sent and will run the command:

    The wallet will output something similar to:

    Person B will use the output Person A sent and run the command:

    The wallet will output something similar to:

    Now each person involved should exchange addresses and compare, they must be the same.

    hashtag
    Receiving

    hashtag
    Step 1 Fund The Multisig Account

    This is simple. Just send to the shared address. You can send multiple times, this is the same as a normal wallet. You can use payment ID’s as well, or generate an integrated address to receive funds.

    Best part, whomever is sending the funds won't be able to tell that the address belongs to a multisig wallet since it looks like any other.

    hashtag
    Step 2 Check Multisig Account Balance

    Just open the wallet and command refresh. Once completed, both persons can verify that the funds arrived.

    Person A commands:

    Person A outputs:

    Person B can do the same:

    Person B has the same outputs:

    hashtag
    Spending

    hashtag
    Step 1 Synchronizing Key Images

    1.1 Exporting Multisig Info

    Without this step, it will not be possible to create a spending transaction.

    Both persons need to run the following command to sync their key images:

    Where <filename> can be any filename.

    Person A will run the command:

    Person A will receive the output:

    The file mi1 will be located in the shell working folder*

    Person A sends that file to Person B. They can send the file in many ways, preferably through by handing a usb drive with the file on it, however If you would like to send the file through terminal use https://transfer.sh/arrow-up-right, an optional step has been added if you choose to use this method.

    Person B does the same, but changing the filename and runs the command:

    Person B will receive the output:

    The file mi2 will be located in the shell working folder*

    Person B sends that file to person A.

    Now, they must both import each other's file.

    Optional: Step 1.2 Sending Multisig Info File with terminal - transfer.sh

    It is optional to use the terminal to send each person the multisig info files.

    UPLOADING MULTISIG INFO FILE

    Person A will open up a new terminal and change to the directory “mi1” has been saved.*

    Person A will run the following command:

    Person A will receive the link to the file as an output, looking similar to:

    Person A will need to send this link to Person B.

    Person B will run a similar command:

    Person B will receive the link to the file as an output, looking similar to:

    Person B will need to send this link to Person A.

    Downloading Multisig Info file

    Person A should change to the directory of their beldex-wallet-cli and use Person B’s download link to run the command:

    Replacing <Person B link> with the link Person B shared with Person A and <filename>with the filename of the Multisig info file that Person A generated, for example Person A will run the command:

    Likewise, Person B should do the same, changing directories to their beldex-wallet-cli and downloading with Person A’s download link, and filename.

    Step 1.3 Importing Multisig Info

    Person A will run the command:

    Depending on the transactions made in to the multsig wallet the output will look similar to:

    Person B will run a similar command:

    and the output will look like:

    hashtag
    Step 2 Preparing Spending Transaction

    Either person A or person B can do this, it doesn't matter. To avoid weird things from happening only do it for 1 transaction at a time.

    Person A performs the usual transfer command:

    The output will look like:

    Check in the folder where you started beldex-wallet-cli from. There should be a file named multisig_beldex_tx.

    Person A will send the file multisig_beldex_tx to the Person B. Person A can send this file through email or alternatively use the transfer.sh commands outside of the wallet:

    If Person A chooses to use transfer.sh command to send the file to Person B they will receive a <link> to pass to Person B.

    Person B must finish the signature. Person B copies/downloads the file to the same folder from where he started (or will start) beldex-wallet-cli.

    Person B can run the command to download the file to the beldex-wallet-cli directory.

    Replacing https://transfer.sh/CJqnM/multisig_beldex_tx with the link provided by Person A.

    Then, Person B runs the command:

    A prompt will be displayed to allow person B to check the transaction before signing:

    If ok, answer Y, and the output will look like:

    Finally, person B submits the transaction to the network by commanding:

    There will be a confirmation prompt:

    If ok, answer Y, and the transaction will be sent. The output will look like:

    The person B could also send the signed TX to person A, who could then submit it to the network himself.

    If you want to make another one, you have to go back to step 1 of spending (sync the key images again).

    Note on folders and file locations, as it could create some confusions. The wallet will look for the files and export them to the folder from where it was started, ie where your command prompt / shell was when you called beldex-wallet-cli. It may or may not be the same folder as your actual wallet files or beldex-wallet-cli, depending on how you go about it.

    For example, your wallet could be on some USB drive like f:\temp\, and your wallet software on c:\beldex-windows-x64\ and your shell working folder could be c:\.

    If you remain in c:\ with the shell, you could start the wallet by its full path and specify the wallet file location: c:\beldex-windows-x64\beldex-wallet-cli.exe --wallet-file f:\temp\mywallet. In this case, all the import/export stuff would be read/written to c:\because that's still your shell's working folder.

    It would be probably feel more natural to cd into the wallet folder. Do f: to change drive and then cd f:\temp\. Then, simply start the wallet from that location by its full path again: c:\beldex-windows-x64\beldex-wallet-cli.exe --wallet-file mywallet. Notice how you don't have to write the full wallet path now as you're already there with your shell. In this case, all the files mentioned above would be written or read from the same folder as the wallet files.

    Source:

    Monero Stackexchange: How to use Monero Multisigniture Walletsarrow-up-right

    prepare_multisig
    MultisigV1cYuTGuf8FSiCYnMtLU4sZzeKZgeMy51qf4CcG2EQ2BPqKTii6YanpNLJDTM9rVRNfBPNFnJHoCWwGT9d8kB2UEDNHDxjgaAZX6DAWtj9VBFq9Q5qHjduozaYzgYpbVfHKHUQR2UrJjyX7tCSyd8gFEHUSocDRejRZBrFrKNifri5ozpN
    
    Send this multisig info to all other participants, then use make_multisig <threshold> <info1> [<info2>...] with others' multisig info
    
    This includes the PRIVATE view key, so needs to be disclosed only to that multisig wallet's participants
    prepare_multisig
    MultisigV1BU9w9mysQMhNTYcNFQgD82VQiKFGpkwy8Jmu13iWWBmoeRbqyuYmEh22bJRk945ntuDeazTsYwUCYZcCL1cxuf4xDzwUJCLkiYhPCvF7gv3xrCGkAiozirNUG6CxRa53mHqp4Cvdj3yxcQcYbXNYC1ecybbQMW1gs5BBQiruVGeJi4FS
    
    Send this multisig info to all other participants, then use make_multisig <threshold> <info1> [<info2>...] with others' multisig info
    
    This includes the PRIVATE view key, so needs to be disclosed only to that multisig wallet's participants
    make_multisig 2 MultisigV1BU9w9mysQMhNTYcNFQgD82VQiKFGpkwy8Jmu13iWWBmoeRbqyuYmEh22bJRk945ntuDeazTsYwUCYZcCL1cxuf4xDzwUJCLkiYhPCvF7gv3xrCGkAiozirNUG6CxRa53mHqp4Cvdj3yxcQcYbXNYC1ecybbQMW1gs5BBQiruVGeJi4FS
    2/2 multisig address: 86ScXhWpAG2aUHmFemwvn4HddHA5GQ4u6MvYsW2hVteJSwLJXCEhk2aVp4XzyqGmvyUqc3w8fwWwg6szGEytUSx51C6WQ3er8
    make_multisig 2 MultisigV1cYuTGuf8FSiCYnMtLU4sZzeKZgeMy51qf4CcG2EQ2BPqKTii6YanpNLJDTM9rVRNfBPNFnJHoCWwGT9d8kB2UEDNHDxjgaAZX6DAWtj9VBFq9Q5qHjduozaYzgYpbVfHKHUQR2UrJjyX7tCSyd8gFEHUSocDRejRZBrFrKNifri5ozpN
    2/2 multisig address: 86ScXhWpAG2aUHmFemwvn4HddHA5GQ4u6MvYsW2hVteJSwLJXCEhk2aVp4XzyqGmvyUqc3w8fwWwg6szGEytUSx51C6WQ3er8
    show_transfers
    56156 in 07:50:35 PM 0.100000000000 88ba687dc79a0b39e6de6d0763eda8363d33d9f58ec9a096171bd9a7f1dae873 0000000000000000 -  
    56156 in 08:00:18 PM 0.100000000000 d6ac845b9400759525519cdc5d514eb8f5b1d265b24d1c016e75b20ed3b4b7da 0000000000000000 -
    show_tranfers
    56156 in 07:50:35 PM 0.100000000000 88ba687dc79a0b39e6de6d0763eda8363d33d9f58ec9a096171bd9a7f1dae873 0000000000000000 -  
    56156 in 08:00:18 PM 0.100000000000 d6ac845b9400759525519cdc5d514eb8f5b1d265b24d1c016e75b20ed3b4b7da 0000000000000000 -
    export_multisig_info <filename>
    export_multisig_info mi1
    Multisig info exported to mi1
    export_multisig_info mi2
    Multisig info exported to mi2
    curl --upload-file ./mi1 https://transfer.sh/mi1
    https://transfer.sh/Ehl5q/mi1
    curl --upload-file ./mi1 https://transfer.sh/mi2
    https://transfer.sh/Iedv9/mi2
    curl <Person B link> -o <filename>
    curl https://transfer.sh/Iedv9/mi2 -o mi2
    curl https://transfer.sh/Ehl5q/mi1 -o mi1
    import_multisig_info mi2
    2 outputs found in mi2  
    Height 56156, transaction <88ba687dc79a0b39e6de6d0763eda8363d33d9f58ec9a096171bd9a7f1dae873>, received 0.100000000000  
    Height 56156, transaction <d6ac845b9400759525519cdc5d514eb8f5b1d265b24d1c016e75b20ed3b4b7da>, received 0.100000000000
    import_multisig_info mi1
    2 outputs found in mi1  
    Height 56156, transaction <88ba687dc79a0b39e6de6d0763eda8363d33d9f58ec9a096171bd9a7f1dae873>, received 0.100000000000  
    Height 56156, transaction <d6ac845b9400759525519cdc5d514eb8f5b1d265b24d1c016e75b20ed3b4b7da>, received 0.100000000000
    transfer 86TmZX8EzZVjS9zNg7zAsrEQFDgcVC2qV2ZMyoWsbyK4SNB2SwMHZtMhPSsFyTmRBQUaGVF5k3qy5CMFM6Lvj7gi3AeszDag7 50
    Unsigned transaction(s) successfully written to file: multisig_beldex_tx
    curl --upload-file ./multisig_beldex_tx https://transfer.sh/multisig_beldex_tx
    curl https://transfer.sh/CJqnM/multisig_beldex_tx -o multisig_beldex_tx
    sign_multisig multisig_beldex_tx
    Loaded 1 transactions, for 108.082287779, fee 0.061108880, sending 50.000000000 to 86TmZX8EzZVjS9zNg7zAsrEQFDgcVC2qV2ZMyoWsbyK4SNB2SwMHZtMhPSsFyTmRBQUaGVF5k3qy5CMFM6Lvj7gi3AeszDag7, 58.021178899 change to 86ScXhWpAG2aUHmFemwvn4HddHA5GQ4u6MvYsW2hVteJSwLJXCEhk2aVp4XzyqGmvyUqc3w8fwWwg6szGEytUSx51C6WQ3er8, with min ring size 10, no payment ID. Is this okay? (Y/Yes/N/No):
    Transaction successfully signed to file multisig_beldex_tx, txid 3b03b16c79eaa5564171ae88242c4cdb1f9e0b41fc3de949c6524c5026a3f3bb
    
    It may be relayed to the network with submit_multisig
    submit_multisig multisig_beldex_tx
    Loaded 1 transactions, for 108.082287779, fee 0.061108880, sending 50.000000000 to 86TmZX8EzZVjS9zNg7zAsrEQFDgcVC2qV2ZMyoWsbyK4SNB2SwMHZtMhPSsFyTmRBQUaGVF5k3qy5CMFM6Lvj7gi3AeszDag7, 58.021178899 change to 86ScXhWpAG2aUHmFemwvn4HddHA5GQ4u6MvYsW2hVteJSwLJXCEhk2aVp4XzyqGmvyUqc3w8fwWwg6szGEytUSx51C6WQ3er8, with min ring size 10, no payment ID. Is this okay? (Y/Yes/N/No):
    Transaction successfully submitted, transaction <3b03b16c79eaa5564171ae88242c4cdb1f9e0b41fc3de949c6524c5026a3f3bb>