Например на сайте можно получить сатоши бесплатно, но также на сайт можно завести свои сатоши
Допустим пользователь заработал бесплатно 10000 сатош, и пополнил на 20000
И захотел вывести. Как правильно организовать кошельки и транзакции?
Каждый раз когда он зарабатывает на сайте, пополнять ему его сгенерированный кошелек не вариант, так как постоянно нужно платить комиссию за транзакцию.
Искал в апи но не нашел, может перевод между своими кошельками можно без комиссии устроить?
"Искал в апи но не нашел, может перевод между своими кошельками можно без комиссии устроить?"
Между какими "своими"? Нет никаких "своих" кошельков. Есть набор адресов. А кому они принадлежат знает только владелец.
"Если пользователь захотел вывести деньги"
Тут не понятно, куда он захотел вывести? Получить обратно рубли или перевести на свой адрес с кошелька сайта?
Несколько вариантов:
1) Можно делать задержку вывода, пока не наберется еще несколько десятков запросов на вывод от других пользователей и делать одну общую транзакцию.
2) Поставить условие, что пользователь может вывести только набрав минимальную сумму, которая будет сопоставима с суммой комиссии.
3) Воспользоваться услугами микрокошельков, например microwallet.org/api
Можно сделать минимальную сумму для вывода. Можно попробовать с пулами договориться, о включении своих транзакций.
Вообще вот тут по комиссиям Bitcoin собрал информацию, в каких случаях сколько платится. Но можно смотреть по загрузке сети, при малой загрузке больше шансов, что пулы возьмут низкоприоритетные транзакции.