Check balance via API at Binance — Python
![]()
Let’s say you wanna make periodic updates with your balance to your email or even to some telegram group. Or you made some script and before making trade yes is cool to have available balance at your broker in these case Binance.
Binance Python package!
Python-binance is the right package needed for this action. After these there is a straight forward way to grab your balance. Load your API credentials and call client.get_account()
After your balance is loaded it will show you, even those tokens that has a 0 balance at your account. That is pretty annoying so for prettify these let’s put data to DataFrame and remove those that has 0 vales.
Advice. Rounding from these case is usless for trading as it won’t work properly. For better rounding please see these.
Conclusion
These are one of the first steps to do before you make any trades at Binance or any other platform whatsoever with your script. To have balance in your local currency as SUM of all tokens you must multiply tokens by the current rate. After SUM all tokens and you will get value in USD, EUR or whatever you prefer.
Внедряем оплату BTC куда угодно (Python)
Полгода назад взялся за один проект с возможностью оплаты биткойном. Так как проект делали на языке python, то и оплату хотелось реализовать на нем же. Сразу же взялся анализировать готовые решения, доступные библиотеки и Rest API Blockchain.com. С апи блокчейна я моментально обломался, так как их токен для использования апи довольно не просто получить.
Затем решил юзать различные библиотеки (block-io, bitcoinlib, blockchain и др.) После пару ночей попыток реализовать нормальную оплату, остановился на bitcoinlib, так как она более менее стабильно работала, и я спокойно переводил с одного кошелька на другой. Беда наступила когда появились первые 100 пользователей и вся оплата внезапно рухнула. Возможно я криво написал или что-то не так понял с работой библиотеки, но любые попытки восстановить работу оплаты были безуспешны, только если обнулять бдшку, но и так неизвестно сколько бы она продержалась.

В итоге решили оставить без BTC оплаты. Я опечалился и не связывался с оплатой биткойном полгода.
К чему я пришел
На днях я все-таки решил добить этот вопрос для себя, надеюсь кому-то еще пригодятся мои наработки.
Все начинается с seed фразы. Мнемоническая фраза (англ. Mnemonic phrase или Seed фраза) — это список слов, которые хранят всю информацию, необходимую для восстановления биткоин-кошелька. Существуют несколько стандартов генерации фраз BIP 32, BIP 39, BIP 44, и еще BIP 49. Самый распространенный — это BIP 44 (12 слов).
Пример seed фразы:
vivid area able second bicycle advance demand alpha flip stable drift route
Чтобы сгенерировать фразу будем использовать библиотеку bipwallet. Чтобы ее установить воспользуемся командой pip install bipwallet.
Если мы хотим получить напрямую доступ к биткойн кошельку, то, зная фразу, можем сразу восставновить кошелек в blockhain.com:
Следующим шагом мы будем преобразовывать нашу seed фразу до получения нужного адреса кошелька биткойна.
Чтобы во всем не запутаться и знать какие данные мы должны получить, я использовал сайт https://iancoleman.io/bip39/
Генерация дочернего адреса кошелька для каждого пользователя:
Чтобы получить наш нулевой адрес Биткойн кошелька на основе seed фразы (12VeK1eRgPHRUikNLXq3Nuz99gS2S46QMD), нам нужно пройти всю цепочку преобразований. Методом проб и ошибок мне все-таки удалось получить адрес кошелька следующим кодом:
Данная функция возвращает адрес кошелька и wif в зависимости номера. Максимальное число с которым удалось получить адрес это 999999999.
wif (Wallet import format) — это просто кодирование байтов ключа в кодировку Base58 + контрольная сумма. Он нам понадобится в дальнейшем при генерации транзакции.
Это все значит, что имея только одну seed фразу мы можем создать 1 млрд дочерних адресов. Каждому пользователю при регистрации мы будем выдавать новый адрес, через который он сможет оплачивать по BTC. Появляется ограничение на 1 млрд пользователей, но нам никто не запрещает использовать несколько seed фраз или генерировать каждому юзеру новую фразу, но тогда каждая оплата будет кидаться не в общий ваш кошелек, а по разным.
Проверка баланса и транзакции:
Теперь когда у каждого пользователя свой личный адрес биткойн кошелька, нужно проверить баланс этого адреса. Для этого мы будем обращаться к сайту Blockchain.com дабы получить нужную информацию.
Вот таким простым кодом мы можем получить всю информацию по балансу и транзакциях пользователя. Дальше все зависит от логики самого приложения.
Транзакции
На данном этапе мы дали каждому пользователю свой адрес кошелька и знаем все транзакции с данным адресом, но этого недостаточно. Нам нужно чтобы мы могли отправить его же деньги обратно. Для этого воспользуемся библотекой bit. Чтобы ее установить воспользуемся командой pip install bit.
В итоге мы получили вот такую транзакцию:
Выглядит красиво, но что с этим делать?
Можно зайти на сайт https://www.blockchain.com/btc/pushtx
и вручную отправить эту транзакцию.
Также можем декодировать эту транзакцию и проверить все ли верно мы указали https://www.blockchain.com/btc/decode-tx
Но нам нужно это автоматизировать, поэтому напишем несколько строк:
Выполним пост запрос, если получаем ответ: Transaction Submitted. Это значит, что через несколько секунд транзакция появится в сети и деньги спишутся с пользователя.
Применение
Ну чтож, написав всего несколько десятков строк, мы можем генерировать для каждого пользователя свой адрес кошелка, проверять его баланс, переводить биткойны с одного кошелька на любой другой.
Для демонстрации работы BTC оплаты, я напишу простенького телеграм бота, который будет выполнять роль клиента Blockchain.com, то есть вы сможете хранить в нем свои биткойны и от туда же переводить другим людям. Ссылка на исходники бота будут в конце.
Задеплоил на heroku, так что надеюсь не будет падать)
Функционал бота
Регистрация пользователя
В качестве БД я использовал sqlite3 и создал одну таблицу пользователей:
При нажатии start мы регистрируем пользователя, генерируем для него адрес биткойн кошелька, wif и добавляем данные в БД:
Проверка баланса
Получить BTC
Для создания qr-кода я использовал библиотеку qrcode и на вход передал ранее сгенерированный адрес биткойн кошелька из БД.
Отправить BTC
Проверим через сайт, что транзакция отправилась:
Исходники и как запустить
Скачать исходники бота можно тут github.com/Lil-hack/blockchain-client
Склонировав репозиторий, устанавливаем необходимые пакеты:
pip install -r requirements.txt
Некоторые библиотеки у меня не заработали на windows, так что лучше сразу запускать на linux.
В файле main.py заменяем ваш токен телеграм бота:
В файле btc_core.py заменяем на вашу seed фразу:
И запускаем бота командой: python main.py
Работает на python 3.7.0 и выше. Бот написан за один вечер, так что просьба строго не судить ^^
Итого
Как оказалось, все довольно не сложно, и в несколько десятков строк можно добавить оплату BTC в любой python проект. Я не профи в криптографии, так что скорее всего многие моменты упустил, но надеюсь кому-то эта статья будет полезна.
Using "requests" to use bitcoin address balance
I am trying to get the balance of a bitcoin address and use it as a number in the rest of my application:
This is resulting in the following error:
I think that I am trying to use an object as a number but despite trying to make the transformation, I have been unable to.
EDIT: Thanks to EdChum for the reply. For anyone wondering how to change a bitcoin balance to satoshis I used this code with the above request-
Python Bitcoin Balance

#Bitcoin address balance checker Using mnemonics 12 word blockchain API check 20 Addresses at once.
mizbit2.py
mizbit2.py mizbit3.py mizbit4.py
# mizbit2.py Random Bitcoin Legacy compressed/uncompresses address.
# mizbit3.py Random Bitcoin Legacy compressed/uncompresses address and Segwit address.
# mizbit4.py Random Bitcoin Legacy compressed/uncompresses, Segwit and MultiSig address.
# mizbit.py SIMPLE AND FAST (Nocolours Less Libraries) Random Bitcoin Legacy compressed/uncompresses address and Segwit address.
vanbit.py & vanbits
Vanity total received bitcoin address checker: vanbit.pt & vanbits.py
# vanbit.py Single Vanity Random Bitcoin Legacy compressed/uncompresses address and Segwit address.
# vanbits.py VIP Multi Vanity Random Bitcoin Legacy compressed/uncompresses address and Segwit address.
Full Random Bitcoin Legacy compressed/uncompresses address and Segwit address Online Transactions\Balance\TotalReceaived. blockchain.info/multiaddr query. Tme out 10 secs this can be reduce to increase speed but you may get Block for to many API requests. VIP Proxy Versions coming….
keys.py
FULL Results Sequential Scan 128 Results per page/scan. Checks all information final balance, Transactions, Total Received and Total sent. Saves the page number of wallet found. Blockchain.info/multiaddr join query 128 addresses. 10 Seconds for sleep so that the API does not block you. (PLUS VIP Proxy Versions coming soon)
Share this:
Like this:
We are using cookies to give you the best experience on our website.
You can find out more about which cookies we are using or switch them off in settings .
Close GDPR Cookie Banner
Change cookie settings

- Privacy Overview Mizogg.co.uk
- Strictly Necessary Cookies
- 3rd Party Cookies
- Cookie Policy
This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.
Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.
If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.
This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.
Keeping this cookie enabled helps us to improve our website.
Please enable Strictly Necessary Cookies first so that we can save your preferences!