Skip to main content

Produce comprehensive financial reports for your on-chain org

Project description

DAO Treasury is a comprehensive financial reporting and treasury management solution designed specifically for decentralized organizations. Built as an extension to eth-portfolio's Portfolio Exporter, DAO Treasury automates the collection and visualization of financial data, enabling organizations to monitor and report on treasury activities with clarity and transparency.

Key Features

  • Financial Reporting for DAOs: Extends core portfolio functionalities to generate detailed reports tailored for on-chain organizations.
  • Dashboard Provisioning: Utilizes Grafana dashboards—defined in JSON files within the .grafana/provisioning directories—to offer real-time, dynamic visualizations of treasury data.
  • Automated Data Export: Features a treasury export tool that, once configured (with a supported brownie network and Docker), continuously captures financial snapshots at set intervals.
  • Custom Buckets for Wallets: Assign custom categories ("buckets") to specific wallet addresses for more granular reporting using the --custom-bucket CLI option.
  • Ease of Contribution: Non-technical users can easily update or create dashboard visuals using Grafana’s intuitive UI. The Contributing Guidelines document provides a step-by-step guide to defining new visuals and dashboards and integrating those changes into the repository, ensuring that anyone can contribute to the visual reporting aspect of the project.

Requirements

  • Python 3.10 or higher.
  • At least 16GB of RAM.
  • All dependencies installed as specified in the project’s pyproject.toml file.

Prerequisites

  • First, you will need to bring your own archive node. This can be one you run yourself, or one from one of the common providers (Tenderly, Alchemy, QuickNode, etc.). Your archive node must have tracing enabled (free-tier Alchemy nodes do not support this option).
  • You must configure a brownie network to use your RPC.
  • You will need an auth token for Etherscan's API. Follow their guide to get your key, and set env var ETHERSCAN_TOKEN with its value.
  • You'll also need Docker installed on your system. If on MacOS, you will need to leave Docker Desktop open while DAO Treasury is running.

Installation

pip install dao-treasury

Usage

Run the treasury export tool:

# For pip installations:
dao-treasury run --wallet 0x123 --network mainnet --interval 12h

For local development (from source installation), use:

poetry run dao-treasury run --wallet 0x123 --network mainnet --interval 12h

Assigning Custom Buckets to Wallets:

You can assign custom categories ("buckets") to specific wallet addresses for more granular reporting. Use the --custom-bucket option one or more times, each with the format address:bucket_name:

dao-treasury run --wallet 0x123 --network mainnet --custom-bucket "0x123:Operations" --custom-bucket "0x456:Grants" --custom-bucket "0x789:Investments"

CLI Options:

Only optional arguments are listed here. Required arguments (such as --wallet or --wallets) are shown in the usage examples above.

  • --network: The id of the brownie network the exporter will connect to (default: mainnet)
  • --interval: The time interval between each data snapshot (default: 12h)
  • --concurrency: The max number of historical blocks to export concurrently. (default: 30)
  • --daemon: Run the export process in the background (default: False) (NOTE: currently unsupported)
  • --sort-rules: Directory containing sort rules definitions for transaction categorization.
  • --nicknames: File containing address nicknames for reporting.
  • --grafana-port: Set the port for the Grafana dashboard where you can view data (default: 3004)
  • --renderer-port: Set the port for the report rendering service (default: 8091)
  • --victoria-port: Set the port for the Victoria metrics reporting endpoint (default: 8430)
  • --start-renderer: If set, both the Grafana and renderer containers will be started for dashboard image export. By default, only the grafana container is started.
  • --custom-bucket: Assign a custom bucket/category to a wallet address for reporting. Specify as address:bucket_name. Can be used multiple times.

After running the command, the export script will run continuously until you close your terminal. To view the dashboards, just open your browser and navigate to http://localhost:3004!

Docker

When you run DAO Treasury, eth-portfolio will build and start 4 required Docker containers on your system. Additionally, DAO Treasury will build and start 2 more required containers:

  • grafana

    • Provides a web-based dashboard for visualizing your treasury data.
    • Pre-configured with dashboards and plugins for real-time monitoring.
    • Uses persistent storage to retain dashboard settings and data.
    • Accessible locally (default port 3004, configurable via --grafana-port).
    • Supports anonymous access for convenience.
    • Integrates with the renderer container for dashboard image export.
    • Loads dashboards and data sources automatically via provisioning files.
  • renderer

    • Runs the official Grafana image renderer service.
    • Enables Grafana to export dashboards as images for reporting or sharing.
    • Operates on port 8091 by default (configurable via --renderer-port).
    • Tightly integrated with the Grafana container for seamless image rendering.
    • Note: The renderer container is only started if you pass the --start-renderer CLI flag.

How it works:

  1. DAO Treasury collects and exports treasury data.
  2. Grafana displays this data in pre-built dashboards for analysis and reporting.
  3. The renderer container allows dashboards to be exported as images directly from Grafana (if enabled).

Additional Information:

  • All containers are orchestrated via Docker Compose and started automatically as needed.
  • Grafana provisioning ensures dashboards and data sources are set up out-of-the-box.
  • All dashboard data and settings are persisted for durability.
  • Dashboard images can be generated for reporting via the renderer (if enabled).

Screenshots

DAO Transactions Dashboard

image

Contributing

We welcome contributions to DAO Treasury! For detailed guidelines on how to contribute, please see the Contributing Guidelines.

Enjoy!

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dao_treasury-0.0.70.tar.gz (73.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

dao_treasury-0.0.70-cp312-cp312-win_amd64.whl (342.5 kB view details)

Uploaded CPython 3.12Windows x86-64

dao_treasury-0.0.70-cp312-cp312-win32.whl (307.4 kB view details)

Uploaded CPython 3.12Windows x86

dao_treasury-0.0.70-cp312-cp312-musllinux_1_2_x86_64.whl (660.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.0.70-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (664.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

dao_treasury-0.0.70-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (693.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

dao_treasury-0.0.70-cp312-cp312-macosx_11_0_arm64.whl (417.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dao_treasury-0.0.70-cp311-cp311-win_amd64.whl (338.5 kB view details)

Uploaded CPython 3.11Windows x86-64

dao_treasury-0.0.70-cp311-cp311-win32.whl (303.8 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-0.0.70-cp311-cp311-musllinux_1_2_x86_64.whl (626.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-0.0.70-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (631.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

dao_treasury-0.0.70-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (641.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

dao_treasury-0.0.70-cp311-cp311-macosx_11_0_arm64.whl (413.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-0.0.70-cp310-cp310-win_amd64.whl (339.3 kB view details)

Uploaded CPython 3.10Windows x86-64

dao_treasury-0.0.70-cp310-cp310-win32.whl (304.6 kB view details)

Uploaded CPython 3.10Windows x86

dao_treasury-0.0.70-cp310-cp310-musllinux_1_2_x86_64.whl (638.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.0.70-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (642.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

dao_treasury-0.0.70-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (652.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ i686manylinux: glibc 2.5+ i686

dao_treasury-0.0.70-cp310-cp310-macosx_11_0_arm64.whl (418.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file dao_treasury-0.0.70.tar.gz.

File metadata

  • Download URL: dao_treasury-0.0.70.tar.gz
  • Upload date:
  • Size: 73.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for dao_treasury-0.0.70.tar.gz
Algorithm Hash digest
SHA256 b06b49bfb09d5bcfed1f03fc7e540339461dd682af0a97aff7edface29944f18
MD5 bf3da69ca584545867440b6f79008360
BLAKE2b-256 58f64c5ccbf438c276d61bb2fcff0b1eb4f48522ed1e4ed03372fde04b8a905e

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0262a2d682b38709104822218e0399175b7ac3541efec329c6ebb11c44600b75
MD5 1b563ded585c887ab5fff103ddeb92c8
BLAKE2b-256 b3148e3ef3b37e0fbdb44f425e638630fafc5e0fe93d4d08e990014d08dd22f4

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp312-cp312-win32.whl.

File metadata

  • Download URL: dao_treasury-0.0.70-cp312-cp312-win32.whl
  • Upload date:
  • Size: 307.4 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for dao_treasury-0.0.70-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 35c77d82100a1fd1ce3738a8a1c5256a391b1dff9b023503809468ac2568c7c6
MD5 474a9d4d4b30ff03568bd86f1c200dc4
BLAKE2b-256 f7ca12701f4c506470a294958dbfc1c1df990f64c616a7b31217e1559e11b029

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 93a81d4d260127385ab58f56dbee89daea520330fe2c058d756099f42994df4f
MD5 adeb8d565ce1c86f855b7d582701ef8b
BLAKE2b-256 12c8fdbd2c8d8591e56ad576b3ab7e8f65cc67f26aa14fa7bc9929c9b7e9c10f

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71173474e1350cf51bbf6a220dc404a919e0bacd72119bd0eae60aafd3156965
MD5 f15176c0cabc843a462b277e3757457a
BLAKE2b-256 008b021e543fb689a1c826125e684543919200245659b32ff2401819d08e588c

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 81d4526066d9d220acf15984eb272506dc49bbfe6d77252a9ca8fce8078c59b1
MD5 f0f840e2595472bfc683399e4e016d3a
BLAKE2b-256 ebb6d6447a471304581a78fc8c581c14d9432489f486a8b77838e830cba795f8

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d05c988181b700bc820a36bf16b514f73910436593df858785b4074e65b1382
MD5 c3797844f28727df89564f3bcff60112
BLAKE2b-256 b560fe187faa412f1ed42f89e1616e4f04c1b2623800261fd64b175e7b578e79

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b597c20b5c6a59e3111d86ebb80638e4cdcd66ddfc8e6e291933962637d9d4c4
MD5 551f68419198f5431abab02e0acc85a5
BLAKE2b-256 9c464b6895850e0c240bf1d62b529f86c4c2c494d8419c22a72d2f43e2a96d50

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp311-cp311-win32.whl.

File metadata

  • Download URL: dao_treasury-0.0.70-cp311-cp311-win32.whl
  • Upload date:
  • Size: 303.8 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for dao_treasury-0.0.70-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 e21fd589cdb7a5c389bee03b3c2a20a728df9e93c91bf436b09051899c2ffbd9
MD5 e407e6644a11e2c3d90209cc029fe573
BLAKE2b-256 fa893e59b07edabab8abc3729d7735a5e2cf34604cc4856c0bd47b7e239ed6b4

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 114a861a2756a207a90f4f31fec59b457c8deacd2675b8b554cf24421241c7e2
MD5 9b2ed93f172bef304b1fff2357908fd4
BLAKE2b-256 fb4ce9076fc4229b7539a376d2f57e30c3831bade8e4f4a6580b0b27a7aa5f54

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5557d0368e55853fba51f4d4f474eb85cd3cc31d5e2358d0c827223f5ce52ef7
MD5 737de1262ff62c5fa179551c10d65d63
BLAKE2b-256 9a2a314d8b1c33293acf52d5f372f90a68ecf958f3213e0b69fb9a9e1fdda9e6

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 3c4f2086e1c67715c47368c6bda71e84102c58a661cde12cbd89726dbf17d428
MD5 8cfc5867a29c1a13c1b39a1c27d8d8b6
BLAKE2b-256 df3356e70c56ee35e55a461c1db93c4e7e5fc675434d90ac9abf9563a15ee7ce

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de96bbb17bc7dff0440a1b4ebdd37ea125f6411e2df2aaa1194070b240bb78e9
MD5 3c636409f4ac5de14276c4e75d083c4c
BLAKE2b-256 bee4d0a6a281d02e071a4a3b50039233e080e1f42fe328109505e66358212ebf

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 28d8e4579401289fb907e6cfcb0399faee4f1d0fd37af70a92493ffc9a663caf
MD5 c63feb750096bc8d50ce5f6209f5eaf1
BLAKE2b-256 acac4ba03566c1850a4f811891c4272b87cc037ce66f3d28b13fc93f066a8009

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp310-cp310-win32.whl.

File metadata

  • Download URL: dao_treasury-0.0.70-cp310-cp310-win32.whl
  • Upload date:
  • Size: 304.6 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for dao_treasury-0.0.70-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 42b054991673b806de6f22480df7cd21aeee043194f2648137bab3d94874f727
MD5 7aa68799bbdb658f49b7d892cc70e59e
BLAKE2b-256 d49ed33bb0951cc05547be064406d6c9831ea2abd9a9ecd559d6a7c4e6f329b7

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e918e47ddd9d08991082e95858d754dec51f9d8ca6346cb1a9260588daec5f1f
MD5 a444329b707519a460252a2d76a711d1
BLAKE2b-256 652d2a2435dafe8378646afe168d6ca785e378c62fb026dbb193a839a6851d35

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c5bd1087283769bb746b3ece7d21da3fb7c770b8fec76af443f0dfd0524edb96
MD5 f99ff4b22b299f41dc452068ee9637bd
BLAKE2b-256 6ca8a7d41b1c2812d83532e967e6c6c08cce28e2f110d9310e7c27fb1bf6e128

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 548190ff44083d65e7ddc6d1aafdfd7f6aaca23f18390e0a0100cf3bbdfb9c4e
MD5 fb9e3da9c21e2e4f0495657f8454077d
BLAKE2b-256 d6f18d287ee6a34770c77610da1aa5abc53598bc0d2b903ec6909801a84bb724

See more details on using hashes here.

File details

Details for the file dao_treasury-0.0.70-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dao_treasury-0.0.70-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 53f8714312d60165d56967129b20763ca70f41bd7f961cb20b25ed36e1f2a0c7
MD5 fd211f4f5bdff2d180231b5e490d026c
BLAKE2b-256 9662c835eeb170fca67569d3a4eabee7bbc69cb7144b8c4374a1689b48e3baea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page