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.1.0.tar.gz (79.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.1.0-cp312-cp312-win_amd64.whl (273.0 kB view details)

Uploaded CPython 3.12Windows x86-64

dao_treasury-0.1.0-cp312-cp312-win32.whl (251.0 kB view details)

Uploaded CPython 3.12Windows x86

dao_treasury-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (484.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (485.9 kB view details)

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

dao_treasury-0.1.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (503.7 kB view details)

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

dao_treasury-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (321.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dao_treasury-0.1.0-cp311-cp311-win_amd64.whl (271.2 kB view details)

Uploaded CPython 3.11Windows x86-64

dao_treasury-0.1.0-cp311-cp311-win32.whl (249.5 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (472.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-0.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (466.5 kB view details)

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

dao_treasury-0.1.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (470.9 kB view details)

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

dao_treasury-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (320.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-0.1.0-cp310-cp310-win_amd64.whl (271.7 kB view details)

Uploaded CPython 3.10Windows x86-64

dao_treasury-0.1.0-cp310-cp310-win32.whl (250.3 kB view details)

Uploaded CPython 3.10Windows x86

dao_treasury-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl (479.5 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (472.8 kB view details)

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

dao_treasury-0.1.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (478.1 kB view details)

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

dao_treasury-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (323.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: dao_treasury-0.1.0.tar.gz
  • Upload date:
  • Size: 79.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.1.0.tar.gz
Algorithm Hash digest
SHA256 187899738d52ce986b8d2c505b15f7418eb2b46e4e2d8377f79885b0ef97883e
MD5 2eda4b89034513841d6060bd467fb5cf
BLAKE2b-256 3a7d555d6bd026abba6e23fd536c889683b732264e4037bbccb67d7160fa7ac8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c249c6697602671423567ec0ae76c1d9982b8a84b0986a43c7e5462be985bf42
MD5 1eb4248d22e90f9db677540053f3c261
BLAKE2b-256 87f4591a8ad9335b53c5049153e7495ebd5328465364df4d44b56badf5b519d6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 251.0 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.1.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 d4e46e36e4b39998318745c54963322d60d9892c9e10edc5480998d28d0fcc9e
MD5 0492653d1464b3453df1c498bd7ab923
BLAKE2b-256 537bd63601d7f63722890840e219e4734c46da386fbf12c1d7398390f254f893

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bf5f433944c2a82278a5c563a0f067f9ffee22c8bbeeb1c459c13e517d758be8
MD5 e3826a2e29786d180973b21b4ad252e0
BLAKE2b-256 7acd502bf6a76500f2528ce18d05afce791e709bee17f2244b8e5df73d4d4d21

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.0-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.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7a7d724d42beaac14baaa10ff703b00b9c012ecb4529643e7b804c30320cd90c
MD5 2c795a48a7aaf1c9837ac4491d562b7c
BLAKE2b-256 2740e4ac0c0d5e5bceb9d5aa24a1aaaaef54794789c64aeb591361b59d50bed1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 fd4ef6cbbacd6b4a07df60c9fddbca3c35d0e662e356eab0fc40ba9b13249e69
MD5 f2d393b631e0dde72efc1b859304c733
BLAKE2b-256 71e205cf31c290065d3d12bbe0e843a5afb7e73fb7ecb12a392f555c177daa5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9902de37d6a4078587700cc5d1d7d263522c27aeb34301f9c7d3fb42aad1cd61
MD5 82adf6c8b0bd1f5b3ef44dbc49ad511b
BLAKE2b-256 ecbf433ae15e1462f841d8af11415370046aa1023aef5b19acc477202b030fad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2958c37d330587c68dae1682e2a0f3b8c1ededa54767428cf966fbd3b934c8b3
MD5 5034626e3464b3caf852332dae803feb
BLAKE2b-256 073dd8a1bb02de163ff9f63a099ce850f71f142b97c9517434d8f3b2605e6ae2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 249.5 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.1.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 cf63e798736b33c24e727e8f4893329233ee5ebc3c184ca8308dfb68ff10c332
MD5 dae312029d286a8a967740ebb200cda5
BLAKE2b-256 a6418f6c5391ef36f49295d2426f325f497ccba43010334192d23fcf1e22412f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 06075695b0133e6fe73ba3411779756997e5a190e7230cd766bb6a6fffb70805
MD5 5c7e9134d67336b57ba6b211ee3be240
BLAKE2b-256 4d4e37b8aadfc052a955a4d1c24504c88ce06f646bf80ea8916d32b445f0f0b4

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.0-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.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6eca748ee719d307bbac53979c1edfc6fa51c2c9fd62b0de33f7e82ff197fd64
MD5 c429b8751528a870ae8e92fb9ef6940a
BLAKE2b-256 7b2e09fd9be2bb8c1633f224d96612ad22d7e6ea62a8d8c809c647daf4ba367e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 53f36b89d0493bee3f594f35c3d1b54bbdd85bc66bd42832221e7a0a1a0f6e80
MD5 c3d492d340e29545fd15fbbac4bc9db9
BLAKE2b-256 2074f0b66771edd5c7a4d6f8916ab1090e5b56eb2ebdacc4f35b69a9588d126b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e8cc908cdf8c0000e9efa68026fd776a8f0b653093ed4007043ffca29cc4bd07
MD5 2eb03d284a80f15a12a126a4a0c5e541
BLAKE2b-256 25d401692ec3413ff744f4b716bb61580a0b79631f0a2f3703616338bead80d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5c662b492f92c5fc589a085acde5e17a5f1edf8879fc2b563de25d8f560caa04
MD5 3174ba6b05565d786555fde74d66f3c9
BLAKE2b-256 e1de57f7899519f3befd91138975a1414109679a77f74a3a9c8f34ccfc67b7a0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 250.3 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.1.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 544d054ceb7ea15e347b1a9a99f186ecce3ab0471a7d9eed4a8a469538f76037
MD5 22ffd1739bac80fb7161ddcb54ad1982
BLAKE2b-256 6e88cc44ea6a19e4e8ecf1e72cc59f711a0ae7f7ab6ebf38d88fe67c9388ee96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c3864a6b214c0d8170ba92ef7fb5c916a7e0218228fe968ee41e61209264348a
MD5 be380aaabfb400eb14ef4ae1e12d2a6b
BLAKE2b-256 ce58067d679793afb9af47cef1ee8989abb308d45a3e52d5f2cac3af9b638eea

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.0-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.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 39a43150e8a14b8bbcbc82457627ed49a27c7c3c0bd10de975198a36bcce9e42
MD5 65e461695a30d2a53c920fd7da4d8a31
BLAKE2b-256 497e36b59d9a3009a3f8fe6823bdcf170f9bdf12c064a8c7b582ffeed738b848

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 5920985360499fd0a998b60df921a9757e4dad13c19e6c701562019a936c6738
MD5 707f94548a0cebb5862221795f51c3ab
BLAKE2b-256 2217c031bf91b5c8dcd2b8691c9e15ed5c643e299ec26ed363433ba5bb7ede1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b013a5bd53acf7b0a40b4a573383cd695292d1cb329aa5ae16e787c7122773c
MD5 7a646d5262569980e52d5fd087a6a747
BLAKE2b-256 7034c051b8da1cc41969076eee272a1dcaccaf1b4f46a5fc86c93d2035e84a3c

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