Author Topic: Bitshares Multisig Usage  (Read 3828 times)

0 Members and 1 Guest are viewing this topic.

Offline cybermonetarist

  • Newbie
  • *
  • Posts: 12
  • co-founder of cyber • Fund
    • View Profile
    • cyber • Fund
Ah .. what you are using are "public keys" .. and not addresses ..
The difference can be seen from the length of the BTS... string

yours (not working):
Code: [Select]
BTS8MbicXCdgYVLevZBy72aAZfmCqKAwNvX7bnjDu8CgEC1fHT12m
BTS7rjVvPv6Un58HSftaJQtido7wFMMjzcDr8BkfF3APsTRj8hfgs
BTS8Xd5Cnjp6Q1WEqLrtUEYTcXtybhq2GQZR3Y23V3u92U8borZYG

mine (working):
Code: [Select]
BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo
BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1
BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw

you can get a new unused address from the client by
Code: [Select]
wallet_address_create <accountname>

Remark:
Note that (at least for me) .. withdrawing from multisig does not work properly .. I will investigate

Thank a lot!
Now it works ))
I'll be waiting for result of your investigation about withdraw
Check out http://cyber.fund/ - Future of Digital Investments

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Ah .. what you are using are "public keys" .. and not addresses ..
The difference can be seen from the length of the BTS... string

yours (not working):
Code: [Select]
BTS8MbicXCdgYVLevZBy72aAZfmCqKAwNvX7bnjDu8CgEC1fHT12m
BTS7rjVvPv6Un58HSftaJQtido7wFMMjzcDr8BkfF3APsTRj8hfgs
BTS8Xd5Cnjp6Q1WEqLrtUEYTcXtybhq2GQZR3Y23V3u92U8borZYG

mine (working):
Code: [Select]
BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo
BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1
BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw

you can get a new unused address from the client by
Code: [Select]
wallet_address_create <accountname>

Remark:
Note that (at least for me) .. withdrawing from multisig does not work properly .. I will investigate

Offline cybermonetarist

  • Newbie
  • *
  • Posts: 12
  • co-founder of cyber • Fund
    • View Profile
    • cyber • Fund
Code: [Select]
delegate (unlocked) >>> wallet_multisig_deposit 10 BTS donations.xeroc 3 ["BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo","BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1","BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw"]
TIMESTAMP           BLOCK     FROM                TO                  AMOUNT                  MEMO                                        FEE                 ID     
======================================================================================================================================================================
2015-05-26T12:50:20 PENDING   donations.xeroc     UNKNOWN             10.00000 BTS                                                        0.10000 BTS         784aabe8

where BTSN..... are addresses generated by "wallet_address_create <accountname>"

on the blockchain:
Code: [Select]
delegate (locked) >>> blockchain_get_transaction 784aabe8
[
  "784aabe81252e6b36ee570b024a48b7425c221cb",{
    "trx": {
      "expiration": "2015-05-26T13:50:19",
      "operations": [{
          "type": "deposit_op_type",
          "data": {   
            "amount": 1000000,
            "condition": {
              "asset_id": 0,
              "slate_id": 0,
              "type": "withdraw_multisig_type",
              "data": {
                "required": 3,
                "owners": [
                  "BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo",
                  "BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw",
                  "BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1"
                ]
              }
            }
          }
        },{
          "type": "withdraw_op_type",
          "data": {   
            "balance_id": "BTSNP8ABA31UPg7og9pQLBKNBKE8TNBstMjd",
            "amount": 1020000,
            "claim_input_data": ""
          }
        }
      ],
      "signatures": [
        "1f6b12962c3075d44ca45f5e4a4841395ca792d45caa03416691bc4f836decf8cc414d26a5aac25a4b2fc32fbc486779ebf3de776ea9310fdc02e4266e729c791d"
      ]
    },

@cybermonetarist
you cannot withdraw from an address .. you need to have your keys loaded into an account .. that account is supposed to be the third parameters .. not an address

you can get the balanceid via
Code: [Select]
delegate (locked) >>> wallet_multisig_get_balance_id BTS 3 ["BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo","BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1","BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw"]
BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt

and withdraw from the balanceid via
Code: [Select]
delegate (unlocked) >>> wallet_multisig_withdraw_start 9.9 BTS BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt BTSNztVq7PyvRPqMfSSWGsfs4KvQk1NUb3By
{
  "transaction_record": {
    "index": 0,
    "record_id": "0000000000000000000000000000000000000000",
    "block_num": 0,
    "is_virtual": false,
    "is_confirmed": false,
    "is_market": false,
    "trx": {
      "expiration": "1970-01-01T00:00:00",
      "operations": [{
          "type": "withdraw_op_type",
          "data": {
            "balance_id": "BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt",
            "amount": 1000000,
            "claim_input_data": ""
          }
        },{
          "type": "deposit_op_type",
          "data": {
            "amount": 990000,
            "condition": {
              "asset_id": 0,
              "slate_id": 0,
              "type": "withdraw_signature_type",
              "data": {
                "owner": "BTSNztVq7PyvRPqMfSSWGsfs4KvQk1NUb3By"
              }
            }
          }
        }
      ],
      "signatures": []
    },
    "ledger_entries": [],
    "fee": {
      "amount": 0,
      "asset_id": 0
    },
    "created_time": "1970-01-01T00:00:00",
    "received_time": "1970-01-01T00:00:00"
  },
  "required_signatures": [
    "BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1",
    "BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw",
    "BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo"
  ],
  "outstanding_balances": []
}
where BTSNztVq7PyvRPqMfSSWGsfs4KvQk1NUb3By is a new address

this command will create a new file DATA_DIR/transactions/latest.trx  which contains the transaction ...
it can be signed with
Code: [Select]
delegate (unlocked) >>> wallet_builder_file_add_signature "" true
I tried to broadcast the transaction but it was not valid.
delegate (unlocked) >>> wallet_builder_file_add_signature "" true{
  "transaction_record": {
    "index": 0,
    "record_id": "060aa4fb6b90e27ed408e6fae21d1588a5c4ee0b",
    "block_num": 0,
    "is_virtual": false,
    "is_confirmed": false,
    "is_market": false,
    "trx": {
      "expiration": "2015-05-26T16:03:54",
      "operations": [{
          "type": "withdraw_op_type",
          "data": {
            "balance_id": "BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt",
            "amount": 1000000,
            "claim_input_data": ""
          }
        },{
          "type": "deposit_op_type",
          "data": {
            "amount": 990000,
            "condition": {
              "asset_id": 0,
              "slate_id": 0,
              "type": "withdraw_signature_type",
              "data": {
                "owner": "BTS2CxV6VPFZrRgULzCPoBne7RBEheZPMctp"
              }
            }
          }
        }
      ],
      "signatures": [
        "1f07574ecbca231aab473b7beba2cf7174c19e3b5f85a662d437f03b960a848017258d0533a0514f2a1595dff8548c7c4882c4b15d8a3717eb1f62cd2c62ad22ba",
        "20270c5b51c2139808e540762cd040c86f2209644f4e6af0ed288e2af04cbfcfe87585ba056b9ede12c95dc11afafa864311332b73b38238d98cd03777bcb1eefc",
        "1f45bd94421016e650871981642c97b956d3883b4706935e250ea9ea67e5b302b63acc7c6b6f33ac5498ddb664791794ab301016a30eeb0cb5df4857986d2d666f"
      ]
    },
    "ledger_entries": [],
    "fee": {
      "amount": 0,
      "asset_id": 0
    },
    "created_time": "2015-05-26T15:03:54",
    "received_time": "2015-05-26T15:03:54"
  },
  "required_signatures": [
    "BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo",
    "BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1",
    "BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw"
  ],
  "outstanding_balances": []
}

if you have all keys installed in your local machine .. else it will update the file so you can hand it over to the next party.


interestingly, the signed transactions seems to be invalid for no-idea what reason ..

@vikram ?

I try this:
 
Code: [Select]
>> wallet_multisig_deposit 10 BTS cybermonetarist 2 ["BTS8MbicXCdgYVLevZBy72aAZfmCqKAwNvX7bnjDu8CgEC1fHT12m","BTS7rjVvPv6Un58HSftaJQtido7wFMMjzcDr8BkfF3APsTRj8hfgs","BTS8Xd5Cnjp6Q1WEqLrtUEYTcXtybhq2GQZR3Y23V3u92U8borZYG"] [vote_recommended]
and that:
Code: [Select]
wallet_multisig_deposit 10 BTS cybermonetarist 2 ["BTS8MbicXCdgYVLevZBy72aAZfmCqKAwNvX7bnjDu8CgEC1fHT12m","BTS7rjVvPv6Un58HSftaJQtido7wFMMjzcDr8BkfF3APsTRj8hfgs","BTS8Xd5Cnjp6Q1WEqLrtUEYTcXtybhq2GQZR3Y23V3u92U8borZYG"]
Result:
Code: [Select]
10 assert_exception: Assert Exception
is_valid( base58str ):
    {}
    bitshares  address.cpp:13 address

    {"command":"wallet_multisig_deposit"}
    bitshares  cli.cpp:626 execute_command
Check out http://cyber.fund/ - Future of Digital Investments

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Code: [Select]
delegate (unlocked) >>> wallet_multisig_deposit 10 BTS donations.xeroc 3 ["BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo","BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1","BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw"]
TIMESTAMP           BLOCK     FROM                TO                  AMOUNT                  MEMO                                        FEE                 ID     
======================================================================================================================================================================
2015-05-26T12:50:20 PENDING   donations.xeroc     UNKNOWN             10.00000 BTS                                                        0.10000 BTS         784aabe8

where BTSN..... are addresses generated by "wallet_address_create <accountname>"

on the blockchain:
Code: [Select]
delegate (locked) >>> blockchain_get_transaction 784aabe8
[
  "784aabe81252e6b36ee570b024a48b7425c221cb",{
    "trx": {
      "expiration": "2015-05-26T13:50:19",
      "operations": [{
          "type": "deposit_op_type",
          "data": {   
            "amount": 1000000,
            "condition": {
              "asset_id": 0,
              "slate_id": 0,
              "type": "withdraw_multisig_type",
              "data": {
                "required": 3,
                "owners": [
                  "BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo",
                  "BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw",
                  "BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1"
                ]
              }
            }
          }
        },{
          "type": "withdraw_op_type",
          "data": {   
            "balance_id": "BTSNP8ABA31UPg7og9pQLBKNBKE8TNBstMjd",
            "amount": 1020000,
            "claim_input_data": ""
          }
        }
      ],
      "signatures": [
        "1f6b12962c3075d44ca45f5e4a4841395ca792d45caa03416691bc4f836decf8cc414d26a5aac25a4b2fc32fbc486779ebf3de776ea9310fdc02e4266e729c791d"
      ]
    },

@cybermonetarist
you cannot withdraw from an address .. you need to have your keys loaded into an account .. that account is supposed to be the third parameters .. not an address

you can get the balanceid via
Code: [Select]
delegate (locked) >>> wallet_multisig_get_balance_id BTS 3 ["BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo","BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1","BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw"]
BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt

and withdraw from the balanceid via
Code: [Select]
delegate (unlocked) >>> wallet_multisig_withdraw_start 9.9 BTS BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt BTSNztVq7PyvRPqMfSSWGsfs4KvQk1NUb3By
{
  "transaction_record": {
    "index": 0,
    "record_id": "0000000000000000000000000000000000000000",
    "block_num": 0,
    "is_virtual": false,
    "is_confirmed": false,
    "is_market": false,
    "trx": {
      "expiration": "1970-01-01T00:00:00",
      "operations": [{
          "type": "withdraw_op_type",
          "data": {
            "balance_id": "BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt",
            "amount": 1000000,
            "claim_input_data": ""
          }
        },{
          "type": "deposit_op_type",
          "data": {
            "amount": 990000,
            "condition": {
              "asset_id": 0,
              "slate_id": 0,
              "type": "withdraw_signature_type",
              "data": {
                "owner": "BTSNztVq7PyvRPqMfSSWGsfs4KvQk1NUb3By"
              }
            }
          }
        }
      ],
      "signatures": []
    },
    "ledger_entries": [],
    "fee": {
      "amount": 0,
      "asset_id": 0
    },
    "created_time": "1970-01-01T00:00:00",
    "received_time": "1970-01-01T00:00:00"
  },
  "required_signatures": [
    "BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1",
    "BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw",
    "BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo"
  ],
  "outstanding_balances": []
}
where BTSNztVq7PyvRPqMfSSWGsfs4KvQk1NUb3By is a new address

this command will create a new file DATA_DIR/transactions/latest.trx  which contains the transaction ...
it can be signed with
Code: [Select]
delegate (unlocked) >>> wallet_builder_file_add_signature "" true
I tried to broadcast the transaction but it was not valid.
delegate (unlocked) >>> wallet_builder_file_add_signature "" true{
  "transaction_record": {
    "index": 0,
    "record_id": "060aa4fb6b90e27ed408e6fae21d1588a5c4ee0b",
    "block_num": 0,
    "is_virtual": false,
    "is_confirmed": false,
    "is_market": false,
    "trx": {
      "expiration": "2015-05-26T16:03:54",
      "operations": [{
          "type": "withdraw_op_type",
          "data": {
            "balance_id": "BTSFB6WcppLW3oJ8FHBtzkBJji1y6BjzKNHt",
            "amount": 1000000,
            "claim_input_data": ""
          }
        },{
          "type": "deposit_op_type",
          "data": {
            "amount": 990000,
            "condition": {
              "asset_id": 0,
              "slate_id": 0,
              "type": "withdraw_signature_type",
              "data": {
                "owner": "BTS2CxV6VPFZrRgULzCPoBne7RBEheZPMctp"
              }
            }
          }
        }
      ],
      "signatures": [
        "1f07574ecbca231aab473b7beba2cf7174c19e3b5f85a662d437f03b960a848017258d0533a0514f2a1595dff8548c7c4882c4b15d8a3717eb1f62cd2c62ad22ba",
        "20270c5b51c2139808e540762cd040c86f2209644f4e6af0ed288e2af04cbfcfe87585ba056b9ede12c95dc11afafa864311332b73b38238d98cd03777bcb1eefc",
        "1f45bd94421016e650871981642c97b956d3883b4706935e250ea9ea67e5b302b63acc7c6b6f33ac5498ddb664791794ab301016a30eeb0cb5df4857986d2d666f"
      ]
    },
    "ledger_entries": [],
    "fee": {
      "amount": 0,
      "asset_id": 0
    },
    "created_time": "2015-05-26T15:03:54",
    "received_time": "2015-05-26T15:03:54"
  },
  "required_signatures": [
    "BTS8MRauj9qFNduQ2DebyREDLzJs74nPLhDo",
    "BTSN3e7QkwTZYqxkjibddRA6oRbyugDWwxY1",
    "BTSH1CSbuZbzg5ZwkMrr9MVQiy9nVBcb2YNw"
  ],
  "outstanding_balances": []
}

if you have all keys installed in your local machine .. else it will update the file so you can hand it over to the next party.


interestingly, the signed transactions seems to be invalid for no-idea what reason ..

@vikram ?
« Last Edit: May 26, 2015, 03:04:52 pm by xeroc ¯\_(ツ)_/¯ »

Offline fav

  • Hero Member
  • *****
  • Posts: 4278
  • No Pain, No Gain
    • View Profile
    • Follow Me!
  • BitShares: fav
BM has said that Multi-sig features and related documentation will be released at the start of June in the upcoming announcements

 +5% we need something like this. easy to use and with a documentation.

Offline cybermonetarist

  • Newbie
  • *
  • Posts: 12
  • co-founder of cyber • Fund
    • View Profile
    • cyber • Fund
you need to put the addresses into "[  ]" braces and not have ANY whitespace in it ..
eg.
Code: [Select]
wallet_multisig_deposit 100 BTS angel 2 [BTS..,BTS..,BTS..]
or alternatively use ' " '
Code: [Select]
wallet_multisig_deposit 100 BTS angel 2 "[BTS..,  BTS..,   BTS..]"

Thanks for your attention.

I've just try 3 variants:
1. wallet_multisig_deposit 0.2 BTS address-1 2 "[BTSaddress-1,BTSaddress-2,BTSaddress-3]"
2. wallet_multisig_deposit 0.2 BTS "address-1" 2 "[BTSaddress-1,BTSaddress-2,BTSaddress-3]"
3. wallet_multisig_deposit 0.2 BTS "BTSaddress-1" 2 "[BTSaddress-1,BTSaddress-2,BTSaddress-3]"

Result:
7 bad_cast_exception: Bad Cast
Invalid cast from string_type to Array
    {"type":"string_type"}
    bitshares  variant.cpp:530 get_array

    {"command":"wallet_multisig_deposit"}
    bitshares  cli.cpp:626 execute_command
Check out http://cyber.fund/ - Future of Digital Investments

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
you need to put the addresses into "[  ]" braces and not have ANY whitespace in it ..
eg.
Code: [Select]
wallet_multisig_deposit 100 BTS angel 2 [BTS..,BTS..,BTS..]
or alternatively use ' " '
Code: [Select]
wallet_multisig_deposit 100 BTS angel 2 "[BTS..,  BTS..,   BTS..]"

Offline cybermonetarist

  • Newbie
  • *
  • Posts: 12
  • co-founder of cyber • Fund
    • View Profile
    • cyber • Fund
+1 even FTC have multisig GUI + step by step tutorial

I would like to see something similar here:
https://forum.feathercoin.com/index.php?/topic/8546-awesome-multisig-page/

 +5% agree, it would be great

BM has said that Multi-sig features and related documentation will be released at the start of June in the upcoming announcements

Thanks for this news! Hope that is true, I really need multisig!
Check out http://cyber.fund/ - Future of Digital Investments

Offline karnal

  • Hero Member
  • *****
  • Posts: 1068
    • View Profile
BM has said that Multi-sig features and related documentation will be released at the start of June in the upcoming announcements

Wonderful news!

Offline Permie

  • Hero Member
  • *****
  • Posts: 606
  • BitShares is the mycelium of the financial-earth
    • View Profile
  • BitShares: krimduss
BM has said that Multi-sig features and related documentation will be released at the start of June in the upcoming announcements
JonnyBitcoin votes for liquidity and simplicity. Make him your proxy?
BTSDEX.COM

Offline mirrax

  • Full Member
  • ***
  • Posts: 55
  • Kill the banks!
    • View Profile
+1 even FTC have multisig GUI + step by step tutorial

I would like to see something similar here:
https://forum.feathercoin.com/index.php?/topic/8546-awesome-multisig-page/

Offline cybermonetarist

  • Newbie
  • *
  • Posts: 12
  • co-founder of cyber • Fund
    • View Profile
    • cyber • Fund
Hi everybody!
I've try to use multisig, but all my efforts failed.
I found that Instruction at https://github.com/BitShares/bitshares/blob/master/docs/multisig.md not relevant!
I was trying to run command "wallet_multisig_deposit" with this parameters:
wallet_multisig_deposit <0.2> <BTS> <address-1> <2> <address-1, address-2, address-3> [vote_recommended]

Here is result:
4 parse_error_exception: Parse Error
Unexpected char '60' in ""
    {"c":60,"s":""}
    bitshares  json.cpp:434 variant_from_stream
Error parsing argument 4 of command "wallet_multisig_deposit": [{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}}]
    {"argument_number":4,"command":"wallet_multisig_deposit","detail":[{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}}]}
    bitshares  cli.cpp:580 parse_argument_of_known_type

    {"parameter_index":3}
    bitshares  cli.cpp:583 parse_argument_of_known_type
Error parsing argument 4 of command "wallet_multisig_deposit": [{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}},{"context":{"level":"error","file":"cli.cpp","line":580,"method":"parse_argument_of_known_type","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Error parsing argument ${argument_number} of command \"${command}\": ${detail}","data":{"argument_number":4,"command":"wallet_multisig_deposit","detail":[{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}}]}},{"context":{"level":"warn","file":"cli.cpp","line":583,"method":"parse_argument_of_known_type","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"","data":{"parameter_index":3}}]
    {"argument_number":4,"command":"wallet_multisig_deposit","detail":[{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}},{"context":{"level":"error","file":"cli.cpp","line":580,"method":"parse_argument_of_known_type","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Error parsing argument ${argument_number} of command \"${command}\": ${detail}","data":{"argument_number":4,"command":"wallet_multisig_deposit","detail":[{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}}]}},{"context":{"level":"warn","file":"cli.cpp","line":583,"method":"parse_argument_of_known_type","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"","data":{"parameter_index":3}}]}
    bitshares  cli.cpp:397 parse_recognized_interactive_command

    {}
    bitshares  cli.cpp:447 parse_recognized_interactive_command
Error parsing command "wallet_multisig_deposit": Parse Error (4)
Unexpected char '60' in ""
Error parsing argument 4 of command "wallet_multisig_deposit": [{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}}]

Error parsing argument 4 of command "wallet_multisig_deposit": [{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}},{"context":{"level":"error","file":"cli.cpp","line":580,"method":"parse_argument_of_known_type","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Error parsing argument ${argument_number} of command \"${command}\": ${detail}","data":{"argument_number":4,"command":"wallet_multisig_deposit","detail":[{"context":{"level":"error","file":"json.cpp","line":434,"method":"variant_from_stream","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"Unexpected char '${c}' in \"${s}\"","data":{"c":60,"s":""}}]}},{"context":{"level":"warn","file":"cli.cpp","line":583,"method":"parse_argument_of_known_type","hostname":"","thread_name":"bitshares","timestamp":"2015-05-24T11:54:14"},"format":"","data":{"parameter_index":3}}]

I tried different variation:
wallet_multisig_deposit 0.2 BTS address-1 2 address-1, address-2, address-3 [vote_recommended]
wallet_multisig_deposit 0.2 BTS address-1 2 [address-1, address-2, address-3] [vote_recommended]
...etc.

All used addresses are registered
I use BitSahres Client v.0.9
Mac OSX 10.10.3

What I'm doing wrong?
Can somebody explain how to use multisig commands.

Thanks.
Check out http://cyber.fund/ - Future of Digital Investments