Sync your Cryptocurrency Holdings to a Personal Capital Account
- Coinbase
- Ethereum and derivatives via etherscan
- Coinbase Pro
- Binance Coin and derivatives via bscscan
- Binance and Binance.us
- CoinEx
- Yieldwatch (stacks and LP on binance network)
holdings | pricing | |
---|---|---|
binance | ✔️ | ✔️ |
bscscan | ✔️ | ❌ |
coinbase | ✔️ | ✔️ |
coinbasepro | ✔️ | ❌ |
coinex | ✔️ | ❌ |
coingecko | ❌ | ✔️ |
etherscan | ✔️ | ❌ |
nomics | ❌ | ✔️ |
yieldwatch | ✔️ | ❌ |
flatfile (csv) | ✔️ | ❌ |
-
Download from releases page for your operating system. Current supported os are: Windows, Mac, and Linux
-
Copy the config.example.toml and rename to config.toml. Remove/comment out any providers that you are not currently using. Get the api keys you need for you use case.
-
Create a new investment account name
CryptoSync managed automatically
in Personal Capital or anything you would like, just make sure to update the config file to reflect the change. -
run
crypto-sync.exe sync --destination pc all
and check your account The first time connecting you will be asked your MFA if setup in Personal Capital
- Sync your Coinbase to your Personal Capital
Sample Config
debug = false
destination = "personalcapital"
# you may also specify multiple sources seperated by a comma
# this will allow get a value of a token from another provider should the other not provide any data
# make sure to not have spaces between them
# example: nomics,coinbase,coingecko
priceDataSource = "coinbase"
destinationCurrencyAs = "USD"
onHoldingNotFound = "zeroQuantity"
[pricing]
[pricing.nomics]
apiKey = "your-key"
debug = false
[pricing.coinbase]
apiKey = "your-key"
apiSecret = "your-secret"
debug = false
[symbols]
[symbols.global]
[symbols.override]
[symbols.override.nomics]
IOTA = "IOT"
[symbols.override.coingecko]
Cake = "pancakeswap-token"
[holdings]
[holdings.coinbase]
apiKey = "your-key"
apiSecret = "your-secret"
debug = false
[holdings.etherscan]
apiKey = "your-key"
debug = false
[[holdings.etherscan.account]]
address = "your-address"
symbolName = "ETH"
fullName = "Ethereum"
decimals = 18
[[holdings.etherscan.account]]
address = "your-address"
contractAddress = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
symbolName = "USDC"
fullName = "USD Coin"
decimals = 6
[holdings.coinbasepro]
debug = true
[[holdings.coinbasepro.portfolios]]
name = "default_portfolio"
secret = "some_secret"
key = "some_key"
passphrase = "some_pass_phrase"
# If base_url is left blank with default to the value below
base_url = "https://api.pro.coinbase.com"
[holdings.bscscan]
apiKey = "some-api-key"
debug = false
# If base_url is defaulted to the below url
# base_url = "https://api.bscscan.com/api?"
[[holdings.bscscan.account]]
address = "0xaddress"
symbolName = "BNB"
fullName = "Binance Coin"
decimals = 18
[holdings.binance-us]
debug = false
# Time Window in milliseconds recvWindow for Binance
recvWindow = 9000
apiKey = "some-api-key"
secret = "some-secret"
[holdings.binance]
debug = false
apiKey = "some-api-key"
secret = "some-secret"
[holdings.coinex]
debug = false
accessId = "someAccessId"
secretKey = "someSecretKey"
[holdings.yieldwatch]
debug = true
platforms = ["pancake"]
walletAddresses = ["0xSomeWalletAddress"]
[holdings.flatfile]
debug = true
filename = "manual_holdings.csv"
[destinations]
[destinations.personalcapital]
email = "example@email.com"
password = "password"
accountName = "CryptoSync managed automatically"
Commands to Execute
Sync only from coinbase
crypto-sync sync --destination pc coinbase
Sync from coinbase and Ethereum
crypto-sync sync --destination pc coinbase ether
Sync from all holding positions in config file
crypto-sync sync --destination pc all
Usage: crypto-sync.exe sync <holding-accounts> ...
Sync holdings to another account
Arguments:
<holding-accounts> ... Holdings to fetch from
Flags:
--help Show context-sensitive help.
--debug Enable debug mode.
--file-name="config.toml" File to read conf from
--destination=STRING Sync to Destination
- OpenAPI Generator
The one used for this project is from here
npm install @openapitools/openapi-generator-cli -g