Fee ledger

Read balances and claim fees from DirectFeeSplitter.

How the ledger works

The hook sends each fee to the network's DirectFeeSplitter in the same swap. The splitter credits creator, referrer, cashback, and callout balances per address, forwards the NFT share to the vault, and keeps the protocol share. Claims pay native currency to msg.sender only.

Read and claim

DirectFeeSplittersolidity

// DirectFeeSplitter — read what an address can claim
function creatorFees(address) view returns (uint256);
function referrerFees(address) view returns (uint256);
function cashbackFees(address) view returns (uint256);
function calloutFees(address) view returns (uint256);

// Claim the caller's full balance of one kind (reverts with ZeroAmount if 0)
function claimCreatorFees();
function claimReferrerFees();
function claimCashbackFees();
function claimCalloutFees();

// Token → creator, set once at launch by the factory
function creatorOf(address token) view returns (address);
function isDirectToken(address token) view returns (bool);

Totals

platformFeesAccrued()Protocol share held by the ledger
uint256
totalUserFeesPending()Sum of every unclaimed user balance
uint256
nftFeeVault()Vault that receives the NFT share
address
liveManager()Fee source the splitter reads rates and referrers from
address

Referrer registry

Fee sourcesolidity

// Arc: Arc Manager 0x861f72490Ddc2C3eDf02764CF8F027Ee64C8B791
// Robinhood Chain: DirectFeeOracle 0x7E619ea196EFb3E64A0193e27D06Db75EBfA4Ec6
function setReferrer(address referrer);            // once per trader, cannot be changed
function referrerOf(address trader) view returns (address);
event ReferrerSet(address indexed trader, address indexed referrer);

NFT holder share

ArklisNftFeeVaultsolidity

// ArklisNftFeeVault — the NFT holder share
function pending(uint256 tokenId) view returns (uint256);
function claim(uint256 tokenId) returns (uint256);               // owner of tokenId only
function claimMany(uint256[] tokenIds) returns (uint256 total);  // skips ids you do not own
event NftFeeClaimed(address indexed account, uint256 indexed tokenId, uint256 amount);

Addresses

Arc DirectFeeSplitter
0x382d…2644
Arc NFT fee vault
0xf707…9575
Robinhood Chain DirectFeeSplitter
0xD8BF…Ee81
Robinhood Chain NFT fee vault
0x5765…47D2

Older ledgers

A wallet can hold balances on more than one Arc ledger. Sum creatorFees(addr) and the others across Genesis 2 and Genesis 1, and claim on each ledger that has a balance.