Skip to content

Fees

Every fee in the protocol, what it applies to, and how to check the current value yourself rather than trusting this page.

Summary

ActionProtocol feeGas
Deposit a skinNoneNone — you send no transaction
MintNoneNone — paid by the protocol
Approve the marketplace (once per wallet)NoneYes
List an itemNoneNone — a signature, not a transaction
Cancel a listingNoneYes
BuyRoyalty + platform fee, deducted from the priceYes
Withdraw (deTokenize)withdrawFee per token — currently 0Yes

Current values

Read from the deployed contracts on Robinhood Chain:

ParameterWhereValue
Platform feeLootMarket.platformFeeBps200 bps = 2%
Platform fee hard capLootMarket.MAX_PLATFORM_FEE_BPS1000 bps = 10%
RoyaltyLootSkins.royaltyInfo (ERC-2981)500 bps = 5%
Withdrawal feeLootSkins.withdrawFee0
Max burns per callLootSkins.MAX_BATCH50

These are current values, not guarantees

The platform fee, the royalty rate and receiver, and the withdrawal fee are all owner-settable on-chain. The cap is not — MAX_PLATFORM_FEE_BPS is a constant, so a platform fee above 10% cannot be set without replacing the contract implementation entirely.

Verify before a transaction that depends on the number. Instructions below.

Depositing is free

You pay nothing to deposit, and you send no transaction to do it. Accepting the Steam trade offer costs nothing, and the ERC-721 mint that follows is sent and paid for by the protocol.

The only cost of depositing is the wait — see Track your deposit.

Listing is free; approving is not

Creating a listing is an off-chain EIP-712 signature. No transaction, no gas, no fee. Your token does not move.

The one-time setApprovalForAll before your first listing is a transaction and costs gas — a few cents on this chain. It is charged by the network, not by LootFi, and once granted it covers every future listing from that wallet.

Cancelling costs gas too: cancel for one order, setMinimumNonce to invalidate many in a single transaction. See List & sell.

On a sale

Both deductions come out of the price the buyer pays, in one transaction. The buyer sends the price; the seller receives what is left.

   buyer sends:            price P

   ┌─────────────────────────────────────────────────┐
   │  royalty      = P × 500 / 10000   ( 5% )        │──► ERC-2981 receiver
   ├─────────────────────────────────────────────────┤
   │  platform fee = P × 200 / 10000   ( 2% )        │──► fee recipient
   ├─────────────────────────────────────────────────┤
   │  seller gets  = P − royalty − fee  (93% today)  │──► seller
   └─────────────────────────────────────────────────┘

   overpayment above P is refunded to the buyer in the same transaction

Worked example at today's rates — a listing at 1 ETH:

Buyer pays1.0000 ETH (+ gas)
Royalty (5%)0.0500 ETH
Platform fee (2%)0.0200 ETH
Seller receives0.9300 ETH

Both are computed in basis points against the order price and both are paid before the NFT transfers. The contract also refuses to settle if royalty plus fee would exceed the price, so the seller's share can never go negative.

Price your listing gross, not net

The price you sign is what the buyer pays, not what you receive. To net a specific amount at today's rates, divide by 0.93.

The royalty follows the ERC-2981 standard, so it is advisory as far as the token contract is concerned — LootMarket is what actually enforces it on sales made here. A transfer made outside the marketplace pays no royalty and no platform fee, because no contract is in a position to take one.

On a withdrawal

deTokenize charges withdrawFee per token burned. It is currently 0.

Excess value is not refunded

Unlike a marketplace purchase, deTokenize keeps anything you send above withdrawFee × count. There is no refund path.

Send exactly the fee. At 0, send 0.

You still pay gas for the burn. See Withdraw your skin.

Verifying each value yourself

Contract addresses are in Deployments — this page deliberately does not restate them.

With cast

bash
RPC=https://rpc.mainnet.chain.robinhood.com

# platform fee, in basis points (200 = 2%)
cast call <LootMarket> "platformFeeBps()(uint16)" --rpc-url $RPC

# the hard cap — a constant, not settable (1000 = 10%)
cast call <LootMarket> "MAX_PLATFORM_FEE_BPS()(uint16)" --rpc-url $RPC

# royalty on a hypothetical 10000-wei sale: returns (receiver, amount).
# amount is the bps rate directly, since the sale price is the bps denominator.
cast call <LootSkins> "royaltyInfo(uint256,uint256)(address,uint256)" 0 10000 --rpc-url $RPC

# withdrawal fee, in wei, per token
cast call <LootSkins> "withdrawFee()(uint256)" --rpc-url $RPC

On the explorer

Open the contract on robinhoodchain.blockscout.com, go to the Read tab of the proxy, and call platformFeeBps, MAX_PLATFORM_FEE_BPS, withdrawFee, or royaltyInfo.

From a past sale

Every fill emits OrderFulfilled, which carries the price, the royaltyAmount, and the platformFee actually charged. That is the strongest evidence available — not what a contract says it will charge, but what it did charge. See Events & indexing.

What is not a fee

  • Gas is paid to the network, not to LootFi, on any transaction you send.
  • Reference prices shown in the interface are third-party market data. They are informational, not quotes, and no fee is derived from them. See Reference prices.
  • Steam's holding periods cost nothing. They cost time. See Trade protection.

Next

LootFi is not affiliated with, endorsed by, or sponsored by Valve Corporation. Counter-Strike and Steam are trademarks of Valve Corporation.