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.5.tar.gz (78.5 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.5-cp312-cp312-win_amd64.whl (272.1 kB view details)

Uploaded CPython 3.12Windows x86-64

dao_treasury-0.1.5-cp312-cp312-win32.whl (250.1 kB view details)

Uploaded CPython 3.12Windows x86

dao_treasury-0.1.5-cp312-cp312-musllinux_1_2_x86_64.whl (484.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

dao_treasury-0.1.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (485.6 kB view details)

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

dao_treasury-0.1.5-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.5-cp312-cp312-macosx_11_0_arm64.whl (320.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dao_treasury-0.1.5-cp311-cp311-win_amd64.whl (270.4 kB view details)

Uploaded CPython 3.11Windows x86-64

dao_treasury-0.1.5-cp311-cp311-win32.whl (248.6 kB view details)

Uploaded CPython 3.11Windows x86

dao_treasury-0.1.5-cp311-cp311-musllinux_1_2_x86_64.whl (472.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

dao_treasury-0.1.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (466.0 kB view details)

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

dao_treasury-0.1.5-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (470.6 kB view details)

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

dao_treasury-0.1.5-cp311-cp311-macosx_11_0_arm64.whl (319.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dao_treasury-0.1.5-cp310-cp310-win_amd64.whl (270.8 kB view details)

Uploaded CPython 3.10Windows x86-64

dao_treasury-0.1.5-cp310-cp310-win32.whl (249.4 kB view details)

Uploaded CPython 3.10Windows x86

dao_treasury-0.1.5-cp310-cp310-musllinux_1_2_x86_64.whl (479.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

dao_treasury-0.1.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (472.2 kB view details)

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

dao_treasury-0.1.5-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl (477.9 kB view details)

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

dao_treasury-0.1.5-cp310-cp310-macosx_11_0_arm64.whl (322.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: dao_treasury-0.1.5.tar.gz
  • Upload date:
  • Size: 78.5 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.5.tar.gz
Algorithm Hash digest
SHA256 361a010803cd00be9e9e782d8052511ba64296691b9e16f3fbf641770c62fa7e
MD5 6fe601cc9f23c44df360d3f160afc14e
BLAKE2b-256 706ec9970a4047d6bd15a0323869db58941363020d551c9f2dcb6d94ea77f127

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 08e90d5af83220df39ad2c7176a82d659fef0ec745d5c4cfde1f7d5b50a43fcd
MD5 5f1451b250b67e530d0b2cd69975b495
BLAKE2b-256 b24585f3d579f6497aeded563ef423cb7ac2b9871303b729f5ca823b71b1f4f8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.5-cp312-cp312-win32.whl
  • Upload date:
  • Size: 250.1 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.5-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 9d7cf5e416cdeebd61b0a8e37215053b6b0149e9132d5b1148b861351d80bea1
MD5 3b6c8caa0cb340d635a855fc19781f34
BLAKE2b-256 75f53eb4651963ff7cb3a26e677c8f2ce96fdb04dde65db3169fb3132390bcc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 25312177f2a0c688215f0acb21f4e92cc7a8b34c201972f1b51c1df92ac37556
MD5 72a47a1c5561a1d7256b1b6ee30ac79e
BLAKE2b-256 d1fcf5d1dd5416e4a157424b2dd571aafa7797712727c56376e28709e840cbfb

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.5-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.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7325e7eb8bdca6696c5d2c2b70141b9d9628ea49b2e99d1d9fc643061e6d7a94
MD5 7ea8d38b3800f9e5e38afcbdec5193cb
BLAKE2b-256 7fe4373994b47bd412f1522aa1a645a4d16dd008ad71e24dcfa4ccc6fc9f1486

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.5-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 1f5ee922cea87bf7fc0d4198e730e52721f7c717cff4bb2fbab4b01b145c6154
MD5 8b3cf7482b09b0fe87a5eedb202b78f5
BLAKE2b-256 c3b2f1b9150bcbff244911354222d311e5fd246f1077378475386e1113a7c1ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f184fce272b7d11e41df360a4a468dbc41e186f8a0eb442c03d2860212ed625a
MD5 4574dbc0688db95109a008ee7c00c9e7
BLAKE2b-256 5a5523b9f54e82a97da557fefaeef7a91b9605f53b3187406af881341420bf35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a84ecaf286b97e8f925e78b2078084d851bd90f434f84884b08792143b59dffb
MD5 7c7ce9a5b9ba5e0220d2d850d919d5db
BLAKE2b-256 8b8cfa88483f4a53d6ece087d9c486d2dcd452d312c182b97b885a7191eaa94a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.5-cp311-cp311-win32.whl
  • Upload date:
  • Size: 248.6 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.5-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 885d034136364bbf2afa008c77785467bb6063d343c150b334a506422c4ee089
MD5 b156697a71503d772c382228e852149c
BLAKE2b-256 b976e94e9b098a455961a685255d4cce0eb6b8a0763c6a6dd590079872733ae3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1f8310287cd0022b73cc719d7bd3c72c4e6a26c460ee9409a252e5c9e4f64d10
MD5 735ebb7ac60cb89cddb579a23e4a55c4
BLAKE2b-256 19d7d0dced79f55a184b5d5862d46d6db2aab4ea4c73e93a61faba5a5ab62054

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.5-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.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ab52009964bf5a1897bc64c402237191769e677ecf28ac4bc11bd550cf207efe
MD5 166f37d267718818bd60dea437a902f6
BLAKE2b-256 0f7bdf7e69344815d11dbe282da3518053141aeb0dafacceb59c8d0fffb379fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.5-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 ded52893132315263205904ef8a710a7535625cef591dd4319cc9128548acc5b
MD5 254e7627c1e90276e40ee940373b7e6a
BLAKE2b-256 3e85a690bcb9eee25e3447348126198b1be61afe53280b1b0e409262badfd283

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b4fea2af02d625170c625387911f3ae4b390d8ff17dca797d4314f70ef9fd9b9
MD5 bae3302a0d6adffb6e554b97511836ed
BLAKE2b-256 f1cc80d1825ccbd0e49b767266268d650917ea5a7ef01c54c58fe92e289ae006

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6c78bb24d619deeff2d217536e59a24cbc69dce96944f68ee5068441b87fda6c
MD5 291678dffdae81b4dc3e891d241f9147
BLAKE2b-256 e94daa76f64426404a4c0ffd98ba9af75fec7b311f531ebc3dfe578205b37d35

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dao_treasury-0.1.5-cp310-cp310-win32.whl
  • Upload date:
  • Size: 249.4 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.5-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 b4b116e92e3bb7120b38eca8b85504a8dce2ff8f47fcd494d0003adc70184da8
MD5 8ad7fbeac35dc816d735789c7ece6ff8
BLAKE2b-256 478a6b1dc23f07b9b2aa5b03bb1155fcac5fe3b5f197f971d7b2d6e65eb950bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.5-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9d360f17f38ae7faa5ffd2ef3d10228e328b8e57d5e4126619e54649600f3fc0
MD5 ca8cdd88fc8e909281091b9f6b166870
BLAKE2b-256 bbcd92a51f9884bfadb9a9b428309a9bb0faba71b1afda5f41d44c978bb04654

See more details on using hashes here.

File details

Details for the file dao_treasury-0.1.5-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.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9983b4e97c6a36e76a12aac0d4f09f5266e096ae1605ff89f0ad1228a0ebb206
MD5 d2001fa52da9e2b8e582fe83db5bb884
BLAKE2b-256 e7e554948bbb003b464ee0636835de6c5bebac5cb2be34e3953539789755ddb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.5-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl
Algorithm Hash digest
SHA256 8a03c12c289dd2bf0510c30e297e637849649fa70fd7df0f8cd14ec7dc7eb66c
MD5 69c795d1e3bbff8fa474810748793948
BLAKE2b-256 f3be73133689faef9cbff9e06a701e0174c4b7309d8cd3795d36b0f81029f860

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dao_treasury-0.1.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c02012908d9638e074b13f433774988f7dca4a85c85afda0fa8a283cb7b4239
MD5 5435a11bedb4a58298beb79014303da1
BLAKE2b-256 667f7ee1619290648f33f4d03c47bd5b92be914d60e8eaacd8f720b00f27579a

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