Так было минимум пол года назад(на гитхабе разработчики обсуждали, типа да да бага есть надо чинить) и фиг знает, починили ли еще. А вики до сих пор содержит следующее
The sendfrom method sends coins and debits the specified account. It does **not** change Bitcoin's algorithm for selecting which coins in the wallet are sent-- you should think of the coins in the wallet as being mixed together when they are received. There is no way to ask Bitcoin to "create a payment transaction using the coins received from these previously received transactions."
The sendtoaddress method works like sendfrom, but always debits the default account.
То есть метод просто отсылает монеты с каких то адресов всего кошелька как обычный sendto.. в этом случае вообще непонятно через какую ж.. сделаны аккаунты.
Посоветую, не пользоваться офф клиентом
а например electrum, там нет аккаунтов, но есть строгий контроль, можно заморозить адреса на отправку, или выставить приоритеты, с которых списывать первыми..
p.s. если мне нужно отправить монеты с определенных адресов через офф клиент, я импортирую в только что созданный пустой кошелек приватные ключи нужных адресов и делаю обычный sendto, и комиссия соответственно берется только с указанных адресов. После этого я экспортирую приватный ключ нового адреса, на который пошла сдача и удаляю кошелек. Так как этот алгоритм часть другого более сложного, в моем случае это проще чем чинить оригинальные исходники.
Руки не добрались переделать код на создание самостоятельной транзакции, через
createrawtransaction [{"txid":txid,"vout":n},...] {address:amount,...}
а затем, полученные данные послать в сеть
sendrawtransaction <hex string>