Proposal “kwvg-dev-apr26“ (Active)Back

Title:Funding kwvg for development (Apr 26 - Jun 26)
Owner:kwvg
Monthly amount: 200 DASH (8095 USD)
Completed payments: no payments occurred yet (4 month remaining)
Payment start/end: 2026-03-22 / 2026-07-15 (added on 2026-04-05)
Final voting deadline: in 4 days
Votes: 240 Yes / 0 No / 7 Abstain
Will be funded: No. This proposal needs additional 69 Yes votes to become funded.
Manually vote on this proposal (DashCore - Tools - Debugconsole):
gobject vote-many ff8c330ccb601fae24b5ef13ad65ece78e954e377d73276b378ed839bbcc4042 funding yes

Please login or create a new DashCentral account for comfortable one button voting!

Proposal description

Disclaimer: This proposal is individual in nature and is not brought forward by Dash Core Group

I'm Kittywhiskers Van Gogh (kwvg on GitHub, kittywhiskers on Keybase), I've been contributing to Dash Core since Dec, 2020 (my first pull request!), contributed through the Dash Incubator program since Jan, 2021 (pull requestIncubator claim) before transitioning to a role within Dash Core Group effective Apr, 2022.

Since then, except for a brief period, I have contributed to Dash Core in full-time capacity for 5 years.

What did I do?

I filled the role of C++ Software Engineer in the Core team. My responsibility was, beyond routine backports, implementing features needed in Dash Core sooner than sequential backports would allow.

This proposal seems familiar...

Because it is. Below are my past proposals.

Proposal NameFunding PeriodWork Period
kwvg-core-dev-nov24    Nov, 2024 - Jan, 2025 (3 months)    Dec, 2024 - Feb, 2025 (3 months)    
kwvg-core-dev-apr25Apr, 2025 (1 month)Apr, 2025 (1 month)
kwvg-core-dev-may25May, 2025 (1 month)May, 2025 (1 month)
kwvg-core-dev-jun25Jun, 2025 (1 month)Jun, 2025 (1 month)
kwvg-core-dev-jul25Jul, 2025 - Sep, 2025 (3 months)
Jul, 2025 - Sep, 2025 (3 months)   
kwvg-core-dev-oct25Oct, 2025 - Dec, 2025 (3 months)
Oct, 2025 - Dec, 2025 (3 months)   
kwvg-core-dev-jan26Jan, 2026 - Mar, 2026 (3 months)
Jan, 2026 - Mar, 2026 (3 months)


What have I done since last time?

Contributed 23 merged pull requests between Jan 6th, 2026 and Apr 5th, 2026 (source) totalling ~210 commits[1]

  • Assume UTXO
    • Separation of masternode-mode logic
      • #7065[2] (refactor: extract CActiveMasternodeManager from LLMQContext, part 3)
      • #7066[2] (refactor: extract CActiveMasternodeManager from LLMQContext, part 4)
  • Build/CI
    • #7184 (build: target aarch64 over armv7, update to macOS 15.0 SDK (Xcode 16.0), add verification step to setup-sdk)
    • #6927 merge bitcoin#30423, #27038, #31048, #31099, #31172, #31450, #31608, #31818, #29881, #32458, #32400, #32760, #33178, #33312, #33780, #33181, #34102, partial bitcoin#29023, #30454, #30509, #30510, #31105, #32922, #33489, #33445
  • Miscellaneous
    • #7098 (refactor: consolidate Dash-specific utils between C++23 polyfills (util/std23.h) and helpers (util/helpers.h))
    • #7099 (refactor(rpc): migrate composite RPCs to client conversion table, drop ParseInt{32,64}V(), lay foundation to drop ParseBoolV())
  • UI
    • #7112 (refactor(qt): runtime show/hide of "Governance" and "Masternode" tabs, split out proposal model, additional bounds checking, better QTextEdit styling)
    • #7110 (feat(qt): update "Governance" Tab layout, lifecycle icons, description dialogs, resumable proposal creation)
    • #7116 (feat(qt): update "Masternode" tab layout, status icons, description dialogs, filtering options)
      • #7148 (feat(qt): persist filter preferences in masternode list)
    • #7146 (feat(qt): introduce framework for sourcing and applying data, use for {Masternode,Proposal}Lists)
    • #7118 (feat(qt): introduce distinct widgets for Dash-specific reporting in debug window)
      • #7160 (feat(interfaces): consolidate masternode counts into one struct, expose chainlock, instantsend, credit pool, quorum statistics)
    • #7159 (feat(qt): add proposal information widget to information, donut chart for proposal allocation)
    • #7144 (feat(qt): add support for reporting OP_RETURN payloads as Data Transactions)
    • #7134 (fix(qt): avoid precision loss when generating proposal, use UniValue instead of QJsonObject, consistency in tab hiding behavior, minor bugfixes)
    • #7147 (fix(qt): prevent overview page font double scaling, recalculate minimum width correctly, SERVICE and STATUS sorting, fix common types filtering)
    • #7180 (qt: add Tahoe styled icons for macOS, runtime styling for each network type, update bundle icon, add mask-based tray icon, generation scripts)
What else are you working on?

Glad you asked!

For a fair while we've been relying on a fork of the Insight block explorer (dashpay/insight-ui) to visualize on-chain activity. Despite its shortcomings, it has served us well and while the backend half of Insight has lived in Dash Core for years (dash#914) and BitPay (the original maintainers) moved away from this architecture a decade ago (see last commit at bitpay/bitcoin), it has received some maintenance in the form of dash#5577dash#6083 and others.

Despite this, we have reached a wall where Dash has sufficiently advanced in capabilities where we are now coming at some hard limitations, namely

  • The explorer doesn't own the information it is processing, it cannot generate new projections, reshape its responses, respond to new feature additions. It depends on Dash Core for bespoke indices and creating or mutating those indices requires updating Dash Core, a breaking change that affects all operators regardless of their intentions or interests in running a block explorer.

  • Because of the above limitation, if new information needs to be presented, it needs to be assembled piecemeal through RPC, increasing query time. This can be partially mitigated through caching but for rapidly churning data (like validator or address history, which can be updated every block with new transactions), the overhead is unavoidable.

  • The original design language is quite efficient for enumerating blocks and transactions but falls short in expressing concepts like payloads, governance or masternodes. It has neither the layout nor the index shape to be able to provide historical information and can only rely on what is available on the live network. Attempting to bridge this gap would require further changes to Dash Core.
To mitigate these difficulties and to provide a visual representation of Dash's layer 1 capabilities, I've been working on a greenfield project named Hyphen. It is a knowledge explorer[3] that works towards the aim of assuming as much responsibility as possible while relying on Dash Core for four things only.

  • Raw block and transaction data
  • View of the mempool
  • View of current governance
  • Notifications of new chain events

This should give us the flexibility for improved data visualisation. As Hyphen is in early stages of development, a live instance of it connected to mainnet is available at https://hy.kw.vg (best viewed on desktop) and the deployment scripts used to manage that instance are available at kwvg/hyphen_deploy but source-availability will be deferred until the contract shape for v1 of the API can be finalised.

Some components during the development of Hyphen may be upstreamed to relevant repos like dashpay/dash and dashpay/rust-dashcore.

Why am I asking?

Due to external factors, current DCG funding would be insufficient to allow retaining me as a contractor. This proposal will allow me to continue work, while retaining my reporting structure and maintaining work output.

How much am I asking for?

200 DASH per month for the duration of the proposal period. The amount disbursed will be paid to DCG's compensation fund for conversion and payment to me and shall be treated as proposal income and compensation expense for DCG. The currently proposed amount is an increase from previous proposals by 55 DASH in light of increased responsibilities.

Verification

The below message can be verified using Keybase (source)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

https://www.dashcentral.org/p/kwvg-dev-apr26

-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQSWkYeo50/kCopIBnQwzQwGXlxKrQUCadI9TgAKCRAwzQwGXlxK
rbkIAP0W1YLKaqkhiYb+LWyCr+9uVM+hK6/Axr5/DwZHrxjDQAD9HGSgVVqc5kWx
2Lc/Oe66gS2TPHkXr0r9q9rXiADbAgE=
=Cnye
-----END PGP SIGNATURE-----

Notes

[1] - Calculated using 'git shortlog 69ec0bbf..2ca9da3c --summary --numbered --no-merges | grep "Kittywhiskers Van Gogh"', rounding down to nearest 10. Does not include contributions to repositories outside dashpay/dash.

[2] - Mentioned in previous proposal (i.e. Q1 CY2026) but included here as merged in development cycle

[3] - One of Hyphen's long term goals is to persist ephemeral data, some of which cannot be exclusively derived from on-chain data, the decision to not call it a block explorer stems from that.

Show full description ...

Discussion: Should we fund this proposal?

Submit comment