# docker-finance | modern accounting for the power-user # # Copyright (C) 2021-2026 Aaron Fiore (Founder, Evergreen Crypto LLC) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # docker-finance @DOCKER_FINANCE_VERSION@ # # Configuration for `fetch` command # # Documentation: # # 1. Replace subaccount names with the subaccount name you created during # Environment Generation (in your Flow Layout): # # - For exchange accounts, this will be a single directory name # - For blockchain-based accounts, this will be in the format: # # subaccount-1[:subaccount-2:...]/address # # Where :subaccount-2:... (and successive subaccounts) are optional # (the final subaccount in the chain being wallet-name (per address)). # # 2. For asset prices: # # - Mobula: # # 1. Visit mobula.io to search for your asset # 2. Prepend the ID to the ticker (as seen below) # a. If necessary, use contract address as asset ID # b. If necessary, prepend the blockchain to asset ID (as seen below) # # - CoinGecko: # # 1. Visit coingecko.com to get the assets's ID # 2. Prepend the ID to the ticker (as seen below) # # 3. For account APIs: # # - Replace XXXXXXX... with your API-related information. # # * See the accounts below for unique details/caveats on API key creation. # # 4. For blockchain-based APIs: # # - 'key' format: blockchain1/API_KEY1,blockchain2/API_KEY2 # # * For ethereum-based chains: # # - As of now, you *MUST* use an API key. # Generate your API key at etherscan.io but take note # of what chain is supported by which free/paid plan. # # - Use "etherscan/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" # as the blockchain API, replacing X with the API key, # as its unified API is used for all ethereum-based chains. # # * For algorand/tezos: currently, no API key is required. # # # 5. Feel free to delete any unused accounts/subaccounts as needed. # Disclaimer: # # The example wallet accounts/addresses used in this file: # # - were picked randomly from the blockchain and are meant to be used for # demonstration purposes only # # - outside the realm of testing and development, have no association with # the author or docker-finance or Evergreen Crypto LLC # # - are not endorsements of the wallet's activity or tokenomics version: @DOCKER_FINANCE_VERSION@ @DOCKER_FINANCE_PROFILE@: @DOCKER_FINANCE_SUBPROFILE@: price: mobula: # NOTE: visit mobula.io for free API key key: asset: - "algorand/ALGO" - "autonolas/OLAS" - "bitcoin/BTC" - "busd/BUSD" - "cardano/ADA" - "ethereum/ETH" - "litecoin/LTC" - "metacade/MCADE" - "multichain/MULTI" - "tether/USDT" - "tezos/XTZ" # USDC - "usdc/USDC" #- "ethereum:usdc/USDC" # same as above #- "avalanche:0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e/USDC" #- "optimistic:0x0b2c639c533813f4aa9d7837caf62653d097ff85/USDC" # USDC (bridged USDC.e) - "arbitrum:0xff970a61a04b1ca14834a43f5de4533ebddb5cc8/USDC.e" # Aave V2 USDC - "ethereum:0xbcca60bb61934080951369a648fb03df4f96263c/aUSDC" #- "polygon:0x625e7708f30ca75bfd92586e17077590c60eb4cd/aUSDC" # Gemini USD - "ethereum:0x056fd409e1d7a124bd7017459dfea2f387b6d5cd/GUSD" # MATIC (on Ethereum) - "ethereum:0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0/MATIC" # Paxos (treated as USDP) - "ethereum:0x8e870d67f660d95d5be530380d0ec0bd388289e1/PAX" # PayPal USD - "ethereum:0x6c3ea9036406852006290770bedfcaba0e23a0e8/PYUSD" coingecko: # NOTE: an empty `key` will use the free Public API. Otherwise, Pro API (paid plan) will be used. key: asset: # Assets not currently available (or accessible) through Mobula - "aave-v3-weth/aEthWETH" - "aave-weth/aWETH" - "bitcoin-cash/BCH" - "weth/WETH" - "wrapped-bitcoin/WBTC" # Duplicates of `mobula`-fetched assets above #- "compound-usdt/cUSDT" # NOTE: delisted on coingecko: 2022-06-18 #- "aave-usdc/aUSDC" #- "algorand/ALGO" #- "autonolas/OLAS" #- "binance-usd/BUSD" #- "bitcoin/BTC" #- "cardano/ADA" #- "ethereum/ETH" #- "gemini-dollar/GUSD" #- "litecoin/LTC" #- "matic-network/MATIC" #- "metacade/MCADE" #- "multichain/MULTI" #- "paxos-standard/PAX" #- "paypal-usd/PYUSD" #- "tether/USDT" #- "tezos/XTZ" #- "usd-coin/USDC" account: gemini: # NOTE: When creating a Gemini API key, create a key with only the "Auditor" role key: "account-XXXXXXXXXXXXXXXXXXXX" secret: "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" # Use this format to fetch all supported symbols/pairs subaccount: "exchange" # Use this format to fetch only trades with the following symbols/pairs (all BTC pairs and only GUSD/USD pair) #subaccount: "exchange/{BTC,gusdusd}" coinbase: # CDP (Coinbase Developer Platform) API key # # NOTE: When creating a CDP key, only select readonly # # WARNING: support for Legacy Keys removed on 2025-02-05 key: "organizations/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/apiKeys/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" secret: "-----BEGIN EC PRIVATE KEY-----\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==\n-----END EC PRIVATE KEY-----\n" # Use this format to fetch all supported symbols/pairs subaccount: "platform" # Use this format to fetch only accounts with the following codes # NOTE: codes will likely be the ticker symbol. See the following for details: # - https://docs.cdp.coinbase.com/sign-in-with-coinbase/docs/api-currencies #subaccount: "platform/{BTC,LTC,ETH,USDC,USD}" coinbase-wallet: key: "etherscan/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" subaccount: ethereum: - "phone:cb-1/0x10Bd3c5d536f69e87C8d4ECB49C01dDc9db4637b" coinomi: key: "etherscan/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" subaccount: # NOTE: same account name can only be used with differing networks ethereum: - "phone:coinomi-1/0x27A309082a170557353C2A7C207ae2d81fb17659" algorand: - "phone:coinomi-1/BO65GIBYYYUPK4KTQ32IRO5BE2H3VEFTK65GKI2GNHZYPNUMJKGJOFJWSY" metamask: key: "etherscan/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" subaccount: ethereum: - "laptop:wallet-1/0x6546d43EA6DE45EB7298A2074e239D5573cA02F3" - "phone:wallet-1/0x236ba53B56FEE4901cdac3170D17f827DF43E969" polygon: - "laptop:wallet-2/0xEad0B2b6f6ab84d527569835cd7fe364e067cFFf" arbitrum: - "phone:wallet-2/0xd3b29C94a67Cfa949FeD7dd1474B71d006fa0A2A" base: - "laptop:wallet-3/0x4C7219b760b71B9415E0e01Abd34d0f65631e57e" optimism: - "phone:wallet-3/0x53004E863Aa0F4028B154ECA65CFb32Eb5a8f5bB" ledger: key: "etherscan/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" subaccount: algorand: - "nano:x-1:general-1/R7U6QWS4QLDB5YLBI25TWCPW47N565FUUDP6GG5XEWAKD5INLATHIG24NE" - "nano:x-1:general-2/LO26MYSSWSFN5U6JDXAOZN2HZ3GCQHLXYEPHRTPJDSD4A3IZUK25GCV7UM" ethereum: # Hypothetically used with MetaMask but stored on Ledger - "nano:s-1:usdt-1/0x66ca49dadBA8C6584f178cf7dB67Dd6E868103Cf" - "nano:s-1:swap-1/0x7aF0C63540F2117b475BFEE83cCb16B2b8c59351" - "nano:s-plus-1:swap-1/0x1c23B471C65747B848f5119dE6687fF567831E92" - "nano:x-1:misc-1/0x8360cca892d37201313AF79738551dCa1d0B537d" tezos: - "nano:x-1:fun-1/tz1b5qZarKoNC8X4x5cknkptN3n7XfGcxY6r" - "nano:x-1:staking-1/tz1S1ayWDiHzmL6zFNnY1ivvUkEgDcH88cjx" pera-wallet: subaccount: algorand: - "phone:mobile-1/55YXQ2AC7PUOOYIWUFIOGFZ7M5CBWFUDOIT7L3FMZVE7HGC3IKABL7HVOE" - "phone:mobile-2/NKXSKLVZ5OHFEXDAVBGL4C5BVW4VJ5FHE4LAK2CSDQZTDGW5T5OVJSGAXY" # vim: syn=yaml sw=2 sts=2 si ai et