Drupal is a registered trademark of Dries Buytaert

Liquid Voting brings liquid democracy (proxy voting) to Drupal,
built on top of VotingAPI.
Users can vote directly on any content—or delegate their voting power
to trusted representatives who vote on their behalf.

Delegations are transitive: a delegate can delegate to someone
else, forming a chain. The system resolves chains automatically, detects
cycles, and enforces a configurable maximum depth. Vote weights are
calculated in real time so that a delegate's single vote counts for
everyone they represent.

Key features

Three delegation scopes

  • Global — “Let Alice handle all my votes.”
  • Topic — “Let Bob handle my technical votes.”
    (taxonomy-based, using the Vote Topics vocabulary)
  • Entity instance — “Let Carol vote on this one
    decision.”

Resolution priority: entity instance > topic > global.

Custom field type

Add the liquid_voting_vote field to any entity
type
(node, media, etc.) to make it votable. Each entity gets
per-instance settings:

  • Enable/disable liquid voting
  • Vote topic (optional taxonomy term)
  • Voting window (optional open/close dates)

The field formatter renders a Yay/Nay vote form with delegation status,
vote weight, and chain visualization.

Immutable vote weights

When a delegate votes, the system walks the delegation chain backward to
find all represented delegators. The vote weight (1 + delegator count) is
set once at cast time and never changes. A snapshot records
exactly which users are represented by each vote, ensuring auditability.

Delegate discovery

  • Public delegate directory with search, filtering by expertise, and
    sorting by delegation count or activity
  • Users tag themselves with expertise from the Vote Topics vocabulary
  • Smart suggestions: “Popular in [topic]” and
    “Active delegates”

Notifications

  • Email notifications for delegation received, revoked, delegate
    re-delegated, vote opened, and vote closed
  • Per-user opt-out and daily digest mode
  • Cron-based delivery for vote open/close events

Administration

  • Admin dashboard with delegation statistics and moderation alerts
  • Bulk revoke action
  • Delegation audit log (Views-based, with CSV export via
    Views Data Export)
  • Configurable limits: max delegations per user, max chain depth, and
    incoming delegation alert thresholds

Data integrity

  • Automatic cleanup when accounts are deleted, disabled, or lose
    required permissions
  • Opt-out feature (stop accepting delegations; all incoming delegations
    are removed immediately)
  • Cycle detection and prevention at both delegation creation and vote
    resolution time

Views integration

Custom Views field plugins for scope labels, vote weight, chain depth,
and expertise badges. Custom filter plugins for scope type and event type.
Ships with six optional Views:

  • User delegations
  • Admin delegations (with bulk revoke)
  • Delegation audit log
  • Delegations to me
  • Recent delegate votes
  • Top delegates

Requirements

Installation

  1. Install the module as you would normally install a
    contributed
    Drupal module
    .
  2. Go to Administration > Configuration > System >
    Liquid Voting settings

    (/admin/config/system/liquid-voting) to configure
    module-wide options.
  3. Add the Liquid voting field
    (liquid_voting_vote) to any content type or entity type
    that should be votable.
  4. Assign permissions to roles under Administration >
    People > Permissions
    .

Demo submodule

The optional Liquid Voting Demo submodule
(liquid_voting_demo) creates a “Decision”
content type with the voting field pre-configured. Enable it to evaluate
the module quickly:

drush en liquid_voting_demo

This submodule is for evaluation only. For production use, create your
own content types and attach the liquid_voting_vote field.
Uninstalling the submodule removes the Decision content type and all its
data.

Permissions

  • Administer Liquid Voting — configure module
    settings
  • Create delegations — delegate votes to other
    users
  • View own delegations — see your outgoing
    delegations
  • Edit own delegations — modify your
    delegations
  • Delete own delegations — revoke your
    delegations
  • View delegate directory — browse the delegate
    discovery page
  • View liquid voting reports — access admin
    dashboard and audit log
  • Manage any liquid voting delegations — view,
    revoke, and export any delegation

User profile fields

The module adds these fields to user accounts:

  • Accept vote delegations — opt in/out of
    receiving delegations (vacation mode)
  • Areas of expertise — taxonomy reference to
    Vote Topics
  • Receive delegation notifications — opt out of
    email notifications
  • Daily digest — batch notifications into a
    single daily email
  • Show delegation chain publicly — display your
    vote path on your public profile

API and services

Key services for integration and customisation:

  • liquid_voting.delegation_manager — CRUD for
    delegations
  • liquid_voting.delegation_resolver — resolve
    delegation chains
  • liquid_voting.vote_weight_calculator — calculate
    vote weight for a delegate
  • liquid_voting.delegate_discovery — find and filter
    potential delegates
  • liquid_voting.notification_service — send
    delegation emails
  • liquid_voting.delegation_log — audit trail
  • liquid_voting.delegation_analytics — site-wide
    statistics
  • liquid_voting.vote_representation_manager — vote
    representation snapshots

Activity

Total releases
1
First release
Mar 2026
Latest release
1 day ago
Release cadence
Stability
100% stable

Releases

Version Type Release date
1.0.0 Stable Mar 13, 2026