> ## Documentation Index
> Fetch the complete documentation index at: https://hntlabs-feature-bot-sdk-changelog-system.mintlify.site/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-feature-bot-sdk-changelog-system/bRNpp16QJsPQyqCI/images/delegate.png?fit=max&auto=format&n=bRNpp16QJsPQyqCI&q=85&s=8e71f6929102cd7f5216ea06934c5bad" 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>
