Citrea
WebsiteBlogJoin The Community
  • 👋Welcome
    • Getting started
  • ⛓️Technical Specs
    • TL;DR
    • Technical Introduction
    • Characteristics
      • Execution Environment
      • Block Production
        • Pre-Confirmations
        • Decentralized Sequencer Network
      • Proof Generation
      • Nodes
      • Bitcoin Settlement: Trust-minimized BTC Bridge
        • BitVM
        • Optimistic Verification
    • Security Properties
      • Validity
      • Data Availability
      • Re-org Resistance
      • Censorship Resistance and Force Transactions
        • Escape Hatch
  • 👤User Guide
    • Run Citrea Full Node
      • Bitcoin Testnet4
        • Testnet4 Docker Setup
        • Build Testnet4 from Source
      • Citrea Full Node
        • Citrea Binary Executable
        • Build Citrea from Source
    • Use Citrea Testnet Faucet
    • Installing an EVM Wallet
    • Taproot Recovery Address
  • 📖Developer Documentation
    • Kickstart
    • Deployment Guide
      • Deploy a Smart Contract Using Remix
      • Deploy a Token
      • Configure Hardhat
    • System Contracts
      • Bitcoin Light Client
      • Bridge
      • Fee Vaults
    • Chain Information
    • RPC Documentation
    • Deploy a Bitcoin Appchain (L3)
  • 🔎Future Research
    • Decentralized Sequencer Network
    • Lightning Integration
    • Multi Prover
    • Multi VM Approach
    • Trustless Atomic Swaps
    • Trustless Settlement
    • Volition Model
  • 🌐Community
    • Citrea Meetups
      • Meetup Guide
      • Resources
      • Code of Conduct
Powered by GitBook
On this page
  • State Structure
  • Access Control Structure
  • Functions
  • Events

Was this helpful?

  1. Developer Documentation
  2. System Contracts

Fee Vaults

Fee vaults are simple contracts that collect the three types of fees in Citrea.

You can find these contracts in the following addresses.

Fee Vault
Address

BaseFeeVault

L1FeeVault

PriorityFeeVault

Currently all these three contracts have the same logic, yet they can be upgraded in case the need arises to do a programmatic redirection of fees.

State Structure

address public recipient;

Address to send the accumulated fees.


uint256 public minWithdraw;

Minimum required fee amount to be accumulated in the contract before it can be withdrawn to the recipient address, this is 0 by default.

Access Control Structure

modifier onlyOwner()

Ensures that only the contract owner can call the function (inherited from Ownable).

Functions

function withdraw() external

Sends the accumulated fees to recipient address.


function setRecipient(address _recipient) external onlyOwner

Changes the recipient address.

Parameters
Description

address _recipient

Address of the new recipient


function setMinWithdraw(uint256 _minWithdraw) external onlyOwner

Changes the minimum withdraw amount.

Parameters
Description

uint256 _minWithdraw

New minimum withdraw amount

Events

event RecipientUpdated(address oldRecipient, address newRecipient)

Emitted when the recipient address is changed.

Parameters
Description

address oldRecipient

Old recipient address

address newRecipient

New recipient address


event MinWithdrawUpdated(uint256 oldMinWithdraw, uint256 newMinWithdraw)

Emitted when the minimum withdraw amount is changed.

Parameters
Description

uint256 oldMinWithdraw

Old minimum withdraw amount

uint256 newMinWithdraw

New minimum withdraw amount

PreviousBridgeNextChain Information

Last updated 7 months ago

Was this helpful?

📖
0x3100000000000000000000000000000000000003
0x3100000000000000000000000000000000000004
0x3100000000000000000000000000000000000005