• Stars
    star
    190
  • Rank 202,992 (Top 5 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple Ethereum API to get your ERC20 Token Balance along with useful information

TokenBalance

TokenBalance API Build Status Docker Build Status Coverage Status GoDoc

TokenBalance is an easy to use public API and application that will output your ERC20 Token balance without any troubles. You can run TokenBalance on your local computer or you can use api.tokenbalance.com to easily parse your erc20 token balances. Connects to your local geth IPC and prints out a simple JSON response for ethereum token balances. Runs on port 8080 by default if you wish to run locally.

Server Status and Uptime

You can view the current status of Token Balance along with API latency information on our status page. This status page logs the Ethereum Mainnet, Ropsten testnet, and Rinkeby testnet.

https://status.tokenbalance.com

Installing Token Balance

You don't need to compile Token Balance from source anymore! All you need to do is go to Releases in this repo and download the binary that is built for your OS. Once you've downloaded, rename the file to tokenbalance for ease if use. On Mac or Linux move this file with the command mv tokenbalance /usr/local/bin/tokenbalance, you should be able to run the application from anywhere now.

Token Balance and Token Info (/token)

To fetch information about your balance, token details, and ETH balance use the follow API call in a simple HTTP GET or CURL. The response is in JSON so you can easily parse what you need. Replace TOKEN_ADDRESS with the contract address of the ERC20 token, and replace ETH_ADDRESS with your address.

Ethereum Mainnet
https://api.tokenbalance.com/token/TOKEN_ADDRESS/ETH_ADDRESS
Ethereum Ropsten Testnet
https://test.tokenbalance.com/token/TOKEN_ADDRESS/ETH_ADDRESS
Ethereum Rinkeby Testnet
https://rinkeby.tokenbalance.com/token/TOKEN_ADDRESS/ETH_ADDRESS
  • Response (JSON)
{
    "name": "Kin",
    "wallet": "0x393c82c7Ae55B48775f4eCcd2523450d291f2418",
    "symbol": "KIN",
    "decimals": 18,
    "balance": "15788648",
    "eth_balance": "0.217960852347180212",
    "block": 4274167
}

Only Token Balance (/balance)

This API response will only show you the ERC20 token balance in plain text. Perfect for ultra simple parsing.

https://api.tokenbalance.com/balance/TOKEN_ADDRESS/ETH_ADDRESS
  • Response (PLAIN TEXT)
1022.503000

Examples

Run with Docker

You can easily start Token Balance with Docker. Register for a free Infura.io API Key to use Token Balance without downloading the ethereum blockchain.

docker run -p 8080:8080 -e GETH_SERVER=https://mainnet.infura.io/APIKEY -d hunterlong/tokenbalance

Use as Golang Package

You can use Token Balance as a typical Go Language package if you you like to implement ERC20 functionality into your own application.

go get github.com/hunterlong/tokenbalance
First you'll want to connect to your Geth server or IPC
import (
    "github.com/hunterlong/tokenbalance"
)

func main() {
	// connect to your Geth Server
    configs = &tokenbalance.Config{
         GethLocation: "https://eth.coinapp.io",
         Logs:         true,
    }
    configs.Connect()

    // insert a Token Contract address and Wallet address
    contract := "0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0"
    wallet := "0xbfaa1a1ea534d35199e84859975648b59880f639"

    // query the blockchain and wallet details
    token, err := tokenbalance.New(contract, wallet)

    // Token Balance will respond back useful things
    token.BalanceString()  // "600000.0"
    token.ETHString()      // "1.020095885777777767"
    token.Name             // "OmiseGO"
    token.Symbol           // "OMG"
    token.Decimals         // 18
    token.Balance          // big.Int() (token balance)
    token.ETH              // big.Int() (ether balance)
}

Implement in Google Sheets

If your familiar with Google Sheets, you can easily fetch all of your cryptocurrency balances within 1 spreadsheet. All you need to do is make a cell with the value below.

=ImportData("https://api.tokenbalance.com/balance/0xd26114cd6EE289AccF82350c8d8487fedB8A0C07/0xf9578adc61d07671f536d50afc5800232fc9fd86")

Simple as that! Get creative an use Coin Market Cap's API to fetch the price and multiply with your balance to make a portfolio of your cryptocurrencies!

Implement in your App

Feel free to use the TokenBalance API server to fetch ERC20 token balances and details. We do have a header set that will allow you to call the API via AJAX. Access-Control-Allow-Origin "*" The server may limit your requests if you do more than 60 hits per minute.

Run Your Own Server

TokenBalance isn't just an API, it's an opensource HTTP server that you can run on your own computer or server.

Installation

Ubuntu 16.04
git clone https://github.com/hunterlong/tokenbalance
cd tokenbalance
go get && go build ./cmd

Start TokenBalance Server

tokenbalance start --geth="/ethereum/geth.ipc"

This will create a light weight HTTP server will respond balance information about a ethereum contract token.

Optional Config

tokenbalance start --geth="/ethereum/geth.ipc" --port 8080 --ip 127.0.0.1

CURL Request

CONTRACT=0xa74476443119A942dE498590Fe1f2454d7D4aC0d
ETH_ADDRESS=0xda0aed568d9a2dbdcbafc1576fedc633d28eee9a

curl https://api.tokenbalance.com/token/$CONTRACT/$ETH_ADDRESS

Response

{
    "name": "Kin",
    "wallet": "0x393c82c7Ae55B48775f4eCcd2523450d291f2418",
    "symbol": "KIN",
    "decimals": 18,
    "balance": "15788648",
    "eth_balance": "0.217960852347180212",
    "block": 4274167
}

More Repositories

1

gethexporter

Monitor your Geth Ethereum Server with Prometheus and Grafana
Go
114
star
2

ethereum-ico-contract

Tested Ethereum ICO Contract for Token Crowdsales
JavaScript
95
star
3

AuthorizeCIM

Authorize.net CIM, AIM, and ARB Functions for Go Language
Go
38
star
4

fiatcontract

Enables ethereum smart contracts to get how much $0.01 is in ETH. Implement in your own smart contract with ease.
JavaScript
36
star
5

shapeshift

ShapeShift API for Go Language - convert cryptocurrencies with ease using ShapeShift and golang
Go
35
star
6

ethexporter

Prometheus exporter for Ethereum Address Balances - Monitor wallet addresses balances and graph them in Grafana
Go
25
star
7

gifs

Gifs.com API golang package to create Gifs from youtube, vimeo, remote mp4 and more!
Go
21
star
8

balancebadge

SVG Badges for your Bitcoin, Litecoin, Ethereum and ERC20 Token Balances. balancebadge.io
Go
20
star
9

textmessage.eth

Send SMS Text Messages within the Ethereum Blockchain - TextMessage.ETH
JavaScript
17
star
10

btcexporter

Prometheus exporter for Bitcoin Wallet Balances - Log Bitcoin Balances for any address you want!
Go
15
star
11

storj-wallet

Storj Wallet for Windows, Mac and Linux. Send and Receive Storj ERC20 Token and Ethereum (unofficial)
JavaScript
14
star
12

tokenexporter

Prometheus exporter for ERC20 Token Wallet Balances - Queries token balance from all the known ERC20 tokens on the mainnet
Go
13
star
13

neureal-wallet

Иeureal Wallet for Windows, Mac and Linux. Send and Receive Иeureal ERC20 Token and Ethereum (unofficial)
JavaScript
12
star
14

SimpleMailer

SMTP emailing solution with Templates and Variables for your Go Language application
HTML
11
star
15

statping_plugin

An example of a Statup plugin created in Go Language creating a Go Plugin
Go
5
star
16

statup-desktop

JavaScript
4
star
17

btcregtest-insight

Dockerized Bitcoin Regtest Server with Insight API for development and testing your BTC applications.
Shell
3
star
18

insight

Golang Package for the Bitcore Insight API
Go
3
star
19

read_the_docs_nginx

Quickly Get Read The Docs Theme with Nginx and Docker
Shell
3
star
20

marketprice

Convert ETH to USD/EURO/GBP within your Ethereum Smart Contract
JavaScript
3
star
21

ltcregtest-insight

Dockerized Litecoin Regtest Server with Insight API for development and testing your LTC applications.
Shell
2
star
22

bsass

bsass - It's Basically Sass πŸ’ But not as Sassy πŸ’₯ 0 Requirements - Just Download
Go
1
star
23

tunnel

Dockerfile
1
star
24

scoped

Simple golang package to remove values based on a user's "scope" for your JSON API.
Go
1
star
25

scopr

Go
1
star
26

discord

Discord Audio Bot 🎀 that plays Youtube audio 🎢 in channels. Written in Go, ran in Docker.
Go
1
star
27

stripe_implementation

Go
1
star
28

statup-testing

Testing Statup using Cypress! Go to website link to watch test videos
JavaScript
1
star
29

ArduinoPWM-flight

Who needs a joystick or RC receiver when you can use an Arduino.
Arduino
1
star