> ## Documentation Index
> Fetch the complete documentation index at: https://docs.towns.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Delegation

> Towns tokens follow the [ERC20Votes](https://docs.openzeppelin.com/contracts/4.x/api/token/erc20#ERC20Votes) standard and can be delegated to Node Operators on Base or Ethereum Mainnet to participate in rewards [distribution](distribution).

## Base Mainnet

Towns tokens are used in the Node Operator Registry and Towns DAO contracts on [Base](https://base.org).

Towns tokens can be delegated by calling the `delegate()` function on the Base [Towns.sol](https://github.com/towns-protocol/towns/blob/main/packages/contracts/src/tokens/towns/base/Towns.sol) contract. An interface is provided at [https://river.build/delegate](https://river.build/delegate).

<img src="https://mintcdn.com/hntlabs/KlENK6fTUsnI7D9v/images/delegate.png?fit=max&auto=format&n=KlENK6fTUsnI7D9v&q=85&s=09b0cd7d4b9224d9fd694f8a4a9343ca" alt="delegate" width="618" height="516" data-path="images/delegate.png" />

Connect your wallet, paste the address of the Node Operator or Space address you want to delegate to, and submit the transaction.

<Info>
  Always check that your Node Operator address is a valid node operator in the network. You can verify this by checking the node status page at [https://river.build/status](https://river.build/status).
</Info>

Any tokens received from network operation will be claimable by calling the `claim()` function from the same wallet on the RewardsDistribution.sol contract. And interface will be provided at [https://river.build/claim](https://river.build/claim).

## Ethereum Mainnet

Towns tokens held on Ethereum mainnet can also be delegated at [https://river.build/delegate](https://river.build/delegate).

Post-delegation, the details (such as delegating wallet, operator wallet, token quantity) are bridged to the Base network and referenced in the Node Operator Registry using the [L1CrossDomainMessenger](https://docs.optimism.io/app-developers/bridging/messaging) contract.

<Warning>
  Tokens rewarded for network operation are only claimable on Base. This means in the case where a user delegating from Ethereum mainnet doesn’t own the same wallet address on both Ethereum mainnet and Base, they must authorize a different wallet address that they own on Base which can claim on behalf of the Ethereum mainnet wallet.
  This can be done at [https://river.build/delegate](https://river.build/delegate) by calling the `authorizeClaimer(address)` function FROM the Ethereum Mainnet wallet that delegated tokens and passing in the Base wallet address that will claim tokens.
</Warning>
