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.9.tar.gz (78.8 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.9-cp312-cp312-win_amd64.whl (274.6 kB view details)

Uploaded CPython 3.12Windows x86-64

dao_treasury-0.1.9-cp312-cp312-win32.whl (251.8 kB view details)

Uploaded CPython 3.12Windows x86

dao_treasury-0.1.9-cp312-cp312-musllinux_1_2_x86_64.whl (486.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.1.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (488.9 kB view details)

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

dao_treasury-0.1.9-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (507.6 kB view details)

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

dao_treasury-0.1.9-cp312-cp312-macosx_11_0_arm64.whl (321.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dao_treasury-0.1.9-cp311-cp311-win_amd64.whl (272.5 kB view details)

Uploaded CPython 3.11Windows x86-64

dao_treasury-0.1.9-cp311-cp311-win32.whl (250.8 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-0.1.9-cp311-cp311-musllinux_1_2_x86_64.whl (475.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-0.1.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (468.6 kB view details)

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

dao_treasury-0.1.9-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (473.8 kB view details)

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

dao_treasury-0.1.9-cp311-cp311-macosx_11_0_arm64.whl (320.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-0.1.9-cp310-cp310-win_amd64.whl (272.9 kB view details)

Uploaded CPython 3.10Windows x86-64

dao_treasury-0.1.9-cp310-cp310-win32.whl (251.3 kB view details)

Uploaded CPython 3.10Windows x86

dao_treasury-0.1.9-cp310-cp310-musllinux_1_2_x86_64.whl (481.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.1.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (474.9 kB view details)

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

dao_treasury-0.1.9-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (481.2 kB view details)

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

dao_treasury-0.1.9-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.9.tar.gz.

File metadata

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

File hashes

Hashes for dao_treasury-0.1.9.tar.gz
Algorithm Hash digest
SHA256 730505a36a7f1a54053355a621834222e9f52003a1e48e8e08f7e3b04b6c49b0
MD5 6b8f8bedc1463a8a43bca6ccc6266c24
BLAKE2b-256 0a980f9819165758aa69cafc2e64e7be422a4a8638d0127d12dba742b35cfc8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8081b84da8da732e87172527c087f61dbf6951415759b37b26c2d3f19c41c80c
MD5 a71bc2191a5364303b589b0563e8be69
BLAKE2b-256 4456466f16a72a394122d03c88c38b0ce5931bcf66fa44be89f615b7a63f833c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dao_treasury-0.1.9-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 2c75e0e251eacf8246a81889f8375a93232f769eb6e015b7bf4b45d24294cf98
MD5 214dc050bf7b8f3aa932bda78994b9de
BLAKE2b-256 60f744a1b378dad69a11990411ed7a7564f1646b491eb1af400daa59213df6b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.9-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6503b3e54b0473fd3f111a8247ab888534280bc8605f45726493309c24dc7412
MD5 c5755d896ff87c6be4a42f56210da5ff
BLAKE2b-256 898bd06f7042c7fdb1eaf3b36539ed09f1ffe914da643d63e54809b1ec48f40c

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.9-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.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76101aca59cc803e157369da329dc22a389ff12beb9b6b2176e071a8bab473bc
MD5 b9b5869bf5a576ad243086e0a1181fda
BLAKE2b-256 cf212649e4d48b6c5021834ac0c4f4d12ac0008e65e5838903c2ce6175570b96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.9-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 6dd39a28286377bba4c4559466f9cf2d2ae383c23cacce6ed202855ea6312eea
MD5 0d5976cb2350d6fb3ce36cd03379d28a
BLAKE2b-256 81e94c10ed345e455c30a8b41fe1a6893b3c15742fddf4371dfe8409b2bf302f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cfe5779ffb7d0d8727666081d4dfe33a1574250c264d3ca1315df2a75ee3fb24
MD5 a0a8da62f8c5452b13cd5b1dde87a051
BLAKE2b-256 665aca341ca03f7f9973daa1fa06843ca544d6e7b7364f312d6b9fdcb41b1960

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2bf6a21d35ac7c1c639f4abb03e3c522786375030b07060eb079c2c2ab4278c1
MD5 9a76887add6d66c41c39cf14ea9a69bc
BLAKE2b-256 0bb58029ecfea4f597a7aa2b0ff37818408285a6373b8933003f93f5240a1334

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dao_treasury-0.1.9-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 bdec55312ad9454b69fcec98f2924318c05f4d350e5ae983cd69de79fb78e0f4
MD5 f348a83b119b24ce64f50007567289b7
BLAKE2b-256 692004405ba41da29069d9d8ad348dfea78eca1ad70b023c1132232853ca8397

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.9-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 99a9bb97aa7c2badd64e7f2902b3034e38f77c64c1517892b054a8e094ae1703
MD5 a21b7948ff98650fcbf6a928e997cb78
BLAKE2b-256 715e9393665c545c911be9f70fa05e5a3fd8ef66573dccc68b3220b81b39153f

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.9-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.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b8e342d1bb68c3ee9dd48ac3f54ebb9c1f4e34b4c3d376f677d5eef1cf7d125f
MD5 74534b750c02d7a57c645f98248dee93
BLAKE2b-256 65b1c9487eec2c97ad0a498318ea7fe81a886d5ae1a8dcf95cf8236ae1c92a8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.9-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 265bad025d45603f2b3df07efb4154dba3dcef86ccbcb75fcdf8bed0d6890886
MD5 d6c4ca962c773deb6b23f007c902b872
BLAKE2b-256 fa7353e5e6d779a3dd937c25d072e4f225e4160cb808a43d87663674629d0b6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bbbded33912920885b78b13bf130beff99549cf6f124585ecc118983ad25b013
MD5 0c48ddc8ffdf8310543d3815c6775ed7
BLAKE2b-256 8ccb38142b569c0305fefc25b6aebceb131ee1df4765fd51aa86b0a44a7f31f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bf6b19aec1ffafdd03f2de7b64d1d4f95b0c69d3df6ddd5d11ae4704e3039c17
MD5 dd9292f135a91cab16463a70f33f2b5a
BLAKE2b-256 2083e34081f8de00918221d71d929ae6a1f5274a1f1e5f535c44c5510e2da218

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dao_treasury-0.1.9-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 f56cd5bfe6c5128bf9b162f85ac97bbec38b29ba230000f0804542a0eda7603c
MD5 5b94c7e8826ec9b058cbf2580179ebbb
BLAKE2b-256 f99d7aaf10d5d6cb7b20f8374ad079a89d18e5cebd4d83be55ea5451f03a096b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.9-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0d1b1d970aebae23cffc7b5e7362aa0954489a396a35dc1aec35c87d5adfe502
MD5 f05c1a0ecf8cbc1e1b58a35eeb9fc9df
BLAKE2b-256 4738f11b5d62e6c986c3b3a635c08ada944919f254cdacafe2e66609a6793cf9

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.9-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.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 29bc95f27be382d28e7c03edf9c8ab749c1d2392e30fff77d9f906fc2ac7a63c
MD5 53da326f3a2c6157a7ebffc2fa80ba1f
BLAKE2b-256 e05eadc6357a26db1fb323eadba67c5624dc128fa8ac67f3a2993e7c3a0f3d72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.9-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 bb158180b67b528ee2fd371964ac78e9df5e12344120016a34c953c0904534b0
MD5 24437b1f589c91fb0cd61b8b4acc541c
BLAKE2b-256 7944932d8c7b77f5d34260ee05eacb40ae66f4becec5c61d7345d13f74aef06a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c9c52a20d58c4a011bd73f2f1e3c0bedb57850a00f7369011a53b92a128186ff
MD5 e9b7bc41c080bae0fb76c76f443fc5d3
BLAKE2b-256 52e32c3008d15c430d8d783f9bddd5b6cd26cbdf9d27d548d370e06d771e625f

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