# BaseLaunchFeeEscrow

The pull-payment record of every fee in a launcher set: curves, the hook and the buyback vault credit recipients here, and each recipient claims its own balance. No owner, no rescue path.

Pull-payment balance record for all launcher revenue. Bonding curves, the launch hook and the buyback vault credit recipients here, and each recipient claims its own balance. Paying through a balance record means a recipient that cannot receive (a contract that rejects ETH, a blocklisted address) can never block a trade, a sweep or a graduation: its credit simply waits. There is no owner, no admin and no rescue path. Every balance can only ever leave to the address it was credited to. Plain ETH transfers are refused, so the contract never holds value that is not booked to someone.

Part of the [contract reference](https://baselaunch.app/docs/reference).

### Deployed at

BaseLaunchFeeEscrow (2.1.0)`0x03132BD55D1c189B4e5AC0895628cAB0Beb72bfB`[](https://basescan.org/address/0x03132BD55D1c189B4e5AC0895628cAB0Beb72bfB)

BaseLaunchFeeEscrow (2.0)`0xad62A3881aF9291CD94622Ef4BbF4BC41f782CfF`[](https://basescan.org/address/0xad62A3881aF9291CD94622Ef4BbF4BC41f782CfF)

### Read functions (4)

| Function | What it does |
| --- | --- |
| [balanceOf](#balanceOf) `balanceOf(address recipient) view returns (uint256)` selector 0x70a08231 Anyone | Native ETH currently claimable by `recipient`. |
| [balanceOfToken](#balanceOfToken) `balanceOfToken(address recipient, address token) view returns (uint256)` selector 0xf59e38b7 Anyone | Amount of `token` currently claimable by `recipient`. |
| [totalNativeOwed](#totalNativeOwed) `totalNativeOwed() view returns (uint256)` selector 0x30f3afa0 Anyone | Native ETH owed across all recipients. Never exceeds this contract's ETH balance. |
| [totalTokenOwed](#totalTokenOwed) `totalTokenOwed(address token) view returns (uint256 amount)` selector 0x26564d8f Anyone | Amount of `token` owed across all recipients. Never exceeds this contract's holding. |

### Write functions (6)

| Function | What it does |
| --- | --- |
| [claim](#claim) `claim() returns (uint256)` selector 0x4e71d92d Any recipient (claims the caller's own balance) | Pays the caller its entire native balance. |
| [claim](#claim-1) `claim(uint256 amount) returns (uint256)` selector 0x379607f5 Any recipient (claims the caller's own balance) | Pays the caller `amount` of its native balance. |
| [claimToken](#claimToken-2) `claimToken(address token, uint256 amount) returns (uint256)` selector 0x1698755f Any recipient (claims the caller's own balance) | Pays the caller `amount` of its balance of `token`. |
| [claimToken](#claimToken) `claimToken(address token) returns (uint256)` selector 0x32f289cf Any recipient (claims the caller's own balance) | Pays the caller its entire balance of `token`. |
| [credit](#credit) `credit(address recipient) payable` selector 0xd5d44d80 Anyone | Books the attached ETH to `recipient`; zero value is a no-op and a zero recipient reverts. |
| [creditToken](#creditToken) `creditToken(address recipient, address token, uint256 amount)` selector 0x09ad4dd9 Anyone (pulls the tokens from the caller) | Pulls `amount` of `token` from the caller and books what was actually received to `recipient`. Books what actually arrived, so a fee-on-transfer token can never leave the balance record promising more than it holds. |

### Events (2)

| Event | What it means |
| --- | --- |
| [Claimed](#event-Claimed) `Claimed(address indexed recipient, address indexed token, uint256 amount)` topic0 0xf7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683 | A recipient claimed part or all of its balance; token is zero for ETH. Emitted by [claim](#claim), [claim (1 args)](#claim-1), [claimToken](#claimToken), [claimToken (2 args)](#claimToken-2) |
| [Credited](#event-Credited) `Credited(address indexed recipient, address indexed token, uint256 amount)` topic0 0x4e45da441832cf53bdaa69235704fc0575e68210f459ee1562911024b12967d5 | A balance was credited to a recipient; token is zero for ETH. For an ERC-20 the amount is what actually arrived. Emitted by [credit](#credit), [creditToken](#creditToken) |

Two launcher sets on Base

Addresses are listed for launcher 2.1.0, where new coins launch, and for launcher 2.0, which keeps serving the coins launched before the cutover. A coin stays on the set that launched it. The functions and events are the 2.1.0 contracts'; the 2.0 contracts are an earlier version of the same code and have no interface registry, so check a 2.0 contract's verified source on Basescan before relying on a detail listed here.

How the fees are split is on [fees](https://baselaunch.app/fees), what the owner can and cannot change is on [security](https://baselaunch.app/security), and short answers are in the [FAQ](https://baselaunch.app/faq).

Meme coins are highly speculative and most lose their value. Nothing here is financial advice.

Last updated 2026-10-21.

Canonical page: https://baselaunch.app/docs/reference/escrow
