Skip to main content
Delegation allows you to assign your voting power to another address, enabling more efficient governance participation while maintaining your token ownership.

Overview

The delegation system enables:
  • Delegate voting power to trusted community members
  • Become a delegate and represent others
  • Track delegations in real-time
  • Partial delegation for granular control
  • View delegate profiles and voting history

Understanding Delegation

Delegation does not transfer token ownership - you retain full control of your tokens while giving another address the right to vote on your behalf.

How It Works

1

Choose a Delegate

Browse delegates and review their voting history, statements, and participation
2

Delegate Tokens

Assign your voting power through a simple transaction
3

Delegation Active

Your delegate can now vote using your combined voting power
4

Monitor Performance

Track how your delegate votes and their participation rate

Benefits

For Token Holders

Participate in governance without constant monitoring. Your voting power is used effectively by knowledgeable delegates.

For the DAO

Higher participation rates and more informed decisions through concentrated expertise.

Finding Delegates

Access the delegates page at /delegates to explore options:

Sorting Options

View delegates with the most delegated tokens (default sort)

Filtering Delegates

Narrow your search using filters:
  • Top Issues - Delegates focused on specific governance areas
  • Stakeholder Types - Filter by represented stakeholder groups
  • Endorsed Delegates - Community-verified representatives
  • Has Statement - Delegates with detailed platform statements
async function getDelegates({
  pagination,
  sort,
  filters,
}: {
  pagination?: PaginationParams;
  sort: string;
  filters?: {
    delegator?: `0x${string}`;
    issues?: string;
    stakeholders?: string;
    endorsed?: boolean;
    hasStatement?: boolean;
  };
}) {
  const delegates = await fetchDelegatesFromDaoNode({
    sortBy: sort,
    filters,
    limit: pagination?.limit,
    offset: pagination?.offset,
  });
  
  return delegates;
}

Delegate Profiles

Each delegate has a profile page at /delegates/[address] showing:

Profile Information

  • Voting power - Total delegated tokens
    • Direct voting power (self-delegated)
    • Advanced voting power (from partial delegations)
  • Delegator count - Number of addresses delegating
  • Participation rate - Percentage of proposals voted on
  • Voting history - Recent votes and rationale

Delegate Statement

Delegates can publish statements including:
Background, expertise, and governance philosophy
Key areas of focus and expertise
Which groups or interests they represent
type Delegate = {
  address: string;
  votingPower: {
    total: string;
    direct: string;
    advanced: string;
  };
  votingPowerRelativeToQuorum: number;
  proposalsVotedOn: bigint;
  votingParticipation: number;
  numOfDelegators: bigint;
  statement: DelegateStatement | null;
};

Delegating Your Tokens

Ensure you trust your chosen delegate - they will vote on your behalf for all proposals.

Standard Delegation

1

Connect Wallet

Ensure your wallet is connected to the platform
2

Choose Delegate

Navigate to the delegate’s profile page
3

Click Delegate Button

Select “Delegate” on their profile
4

Confirm Transaction

Sign the delegation transaction in your wallet
5

Delegation Active

Your voting power is now delegated (takes effect at next block)

Self-Delegation

You can delegate to yourself to vote directly:
// Delegate tokens to your own address
const delegateToSelf = async (address: `0x${string}`) => {
  // This gives you direct voting power instead of being inactive
  await delegate(address);
};
Self-delegation is required to vote directly with your tokens. Without delegation (to self or others), your tokens don’t contribute to governance.

Partial Delegation

Some DAOs support advanced delegation features:
  • Split delegation - Delegate to multiple addresses
  • Conditional delegation - Set rules for when delegation applies
  • Percentage-based - Delegate only a portion of your voting power
// Check if advanced delegation is supported
const { contracts } = Tenant.current();
const supportsAdvanced = !!contracts.alligator;

if (supportsAdvanced) {
  // Partial delegation to multiple delegates
  await partialDelegate([
    { delegate: address1, amount: 1000 },
    { delegate: address2, amount: 500 }
  ]);
}

Managing Delegations

Viewing Your Delegations

Check your delegation status:
  • Navigate to your profile page
  • View “Delegations” tab
  • See all addresses you’ve delegated to
  • Review amounts and delegation dates

Changing Delegates

You can change your delegate at any time:
1

Choose New Delegate

Find the delegate you want to switch to
2

Delegate Again

Click delegate on the new delegate’s profile
3

Previous Delegation Replaced

Your old delegation is automatically revoked
Delegation changes take effect in the next block. Active proposals use the delegation state at their snapshot block.

Revoking Delegation

To stop delegating:
  1. Delegate to your own address (self-delegation)
  2. Or delegate to a different address
  3. Your tokens remain in your wallet throughout

Becoming a Delegate

Creating Your Statement

1

Navigate to Create Statement

Go to /delegates/create or edit from your profile
2

Fill Out Profile

Add your background, expertise, and governance philosophy
3

Select Top Issues

Choose your areas of focus
4

Add Social Links

Connect Twitter, Discord, Warpcast for communication
5

Sign and Publish

Sign the statement with your wallet to publish

Best Practices for Delegates

  • Vote on all proposals when possible
  • Provide reasoning for your votes
  • Aim for 80%+ participation rate
  • Stay informed on governance discussions
  • Keep your statement up to date
  • Explain voting decisions publicly
  • Engage with delegators’ questions
  • Announce any conflicts of interest
  • Participate in forum discussions
  • Attend community calls
  • Review proposals thoroughly
  • Collaborate with other delegates

Delegation Analytics

Tracking Metrics

Monitor delegation health:
  • Delegation concentration - Distribution of voting power
  • Participation rates - Delegate voting activity
  • Delegation changes - Trends in delegator behavior
  • New delegators - Growing delegate base
import { fetchDelegate } from '@/app/api/common/delegates/getDelegates';

const delegate = await fetchDelegate(address);

console.log({
  votingPower: delegate.votingPower.total,
  delegators: delegate.numOfDelegators,
  participation: delegate.votingParticipation,
  votedOn: delegate.proposalsVotedOn
});

API Integration

Fetching Delegates List

import { fetchDelegates } from '@/app/api/common/delegates/getDelegates';

const result = await fetchDelegates({
  pagination: { limit: 20, offset: 0 },
  sort: 'voting_power',
  filters: {
    endorsed: true,
    hasStatement: true
  }
});

console.log(result.data); // Array of delegates

Getting Delegate Details

import { fetchDelegate } from '@/app/api/common/delegates/getDelegates';

// Works with address or ENS name
const delegate = await fetchDelegate('vitalik.eth');

console.log(delegate.statement?.payload?.delegateStatement);

Voting

Cast votes on proposals using delegated power

Proposals

Create and vote on governance proposals

Forums

Discuss governance with delegates and community

Troubleshooting

  • Wait for transaction confirmation (1-2 blocks)
  • Refresh the page
  • Check transaction status on block explorer
  • Ensure you’re on the correct network
  • Verify you have tokens in your wallet
  • Check wallet connection
  • Ensure sufficient ETH for gas fees
  • Confirm the DAO supports delegation
  • Voting power is snapshot at proposal creation
  • Recent delegations don’t affect existing proposals
  • Check delegation status at the snapshot block
  • Consider token balance at snapshot time

Build docs developers (and LLMs) love