Appearance
Troubleshooting
Symptom, cause, fix. Ordered roughly by how often each one comes up.
Before anything else, two things are normal and are not bugs:
Two "problems" that are actually correct behaviour
- Your item is in neither your inventory nor the custody account's. During Steam's trade-protection window a traded item has left the sender and has not settled with the receiver. It is where Valve puts it. See Track your deposit.
- A deposit sits in
Received (Locked)for days. Steam does not issue an item's post-trade identity until the protection window ends. A healthy deposit can sit there the whole ~7 days.
My inventory is empty
By far the most common report, and almost always the same cause.
Cause 1 — inventory privacy is not Public. Your CS2 inventory is read through Steam's public inventory endpoint. On Friends Only or Private that endpoint returns nothing, so LootFi sees an account with no items.
Fix. In Steam: Profile → Edit Profile → Privacy Settings → Inventory → Public.
A public profile is not a public inventory
They are two separate settings on the same page, and Inventory defaults independently. Setting your profile to Public does not make your inventory readable.
Cause 2 — the cached copy is a few minutes old. Inventory data is cached briefly so Steam is not queried on every page view. A skin you acquired moments ago may not be visible yet.
Fix. Wait a few minutes and reload. The cache is dropped and refreshed as soon as you deposit, so deposited items do not linger as available.
Cause 3 — nothing in the inventory is tradable. Untradable items are not shown at all. See the next entry.
"Item is not depositable"
Cause 1 — the item is not tradable in Steam's terms. It is inside its trade cooldown after being acquired (from a trade, a case opening, a market purchase, or a drop), or it is permanently untradable, or your account cannot currently trade.
Fix. Check the item in Steam — it says whether and when it becomes tradable. Wait out the cooldown. If your whole account cannot trade, see Account requirements.
Cause 2 — it is not a CS2 item. Only Steam app 730, inventory context 2 is accepted. TF2, Dota 2, Rust, trading cards, and everything else are out of scope, permanently.
Fix. None. See What you can deposit.
"Items not found in inventory"
Cause. The item moved between the cached view you selected from and the attempt to send the offer — you traded it, sold it, or it entered a storage unit.
Fix. Reload your inventory and select again. Nothing was sent, so there is no orphaned offer.
A message about Steam rate-limiting
Cause. Steam throttles accounts that make too many automated requests in a short period. When that happens, deposit and withdrawal offers cannot be sent.
Retrying makes it last longer
The throttle is not a fixed penalty that ticks down regardless. Each further request restarts Steam's clock, so hammering the button turns a short pause into a long one — for you and for everyone else waiting on the same bottleneck.
Wait for the period the message states, then try once.
Fix. Wait. Do not retry early. Nothing has been sent, nothing is lost, and your items have not moved. See Limits & timing for how Steam's throttling behaves.
"Trading is temporarily unavailable"
Cause. No custody account can send offers right now — Steam is unreachable, or the session is being re-established.
Fix. Try again later. This state is transient by construction. No offer was sent and no item moved.
"Link a wallet first"
Cause. No EVM wallet is linked to your Steam account. Depositing needs one, because the mint has to have a destination.
Fix. Connect a wallet on chain 4663 and sign the wallet-link message. It costs no gas and authorizes no transaction. See Getting started.
If linking itself fails: request a fresh challenge and sign promptly — the challenge is single-use and short-lived, so a signature produced from a stale prompt is rejected. Make sure the address you signed with is the one you are connected as.
"Save your Steam trade URL first"
Cause. No trade URL on file. Without one, no offer can be addressed to you — this blocks both depositing and receiving a withdrawal.
Fix. In Steam: Inventory → Trade Offers → Who can send me Trade Offers? Copy the whole Trade URL and paste it unmodified. It must match:
https://steamcommunity.com/tradeoffer/new/?partner=<digits>&token=<token>A truncated, shortened, or hand-edited URL is rejected. If yours is rejected and looks right, you may have copied a link to the page rather than the Trade URL field itself.
The trade offer never arrived
Cause 1 — your trade URL is stale. Regenerating a trade URL in Steam permanently invalidates the previous one. If you regenerated it after saving, the saved one no longer routes to you.
Fix. Save the current URL again.
Cause 2 — your account cannot receive trade offers. A trade ban, a limited account, or a recent credential change suspends trading.
Fix. See Account requirements.
Cause 3 — Steam is throttling. See above.
Check your Steam trade offers directly rather than relying on notifications, which are unreliable.
My deposit is taking longer than seven days
Cause 1 — an escrow hold applies. Steam adds a trade hold when an account does not meet its security requirements, most often a mobile authenticator that has not been active long enough. The wait becomes the longest applicable hold.
Fix. Nothing shortens an escrow already applied to a trade — not on our side, not on yours. For future deposits, deposit from an account whose mobile authenticator has been established for a while. See Escrow & holds.
Cause 2 — it is a batch. A batch shows the least-advanced state and the latest unlock across all its items. One slow item makes the whole batch look slow.
Cause 3 — the item's type was not recognised. An item whose Steam Type tag cannot be classified is held for review rather than minted under a guessed category, because the category is permanent once it is packed into the token id.
Fix. None from your side — the item is safe in custody and is waiting on a human. See What you can deposit.
"Token is listed" on withdrawal
Cause. The token has a live, fillable order signed against it. Burning it would leave that signature valid on a token that no longer exists, so a buyer could pay gas for a fill that can only revert.
Fix. Cancel the listing, then withdraw. Use cancel for that one order, or setMinimumNonce to invalidate a batch of your orders at once. An order that has already expired does not block a withdrawal. See List & sell.
Withdrawal preflight refused
Every refusal is a specific condition, and none of them burn anything:
| Message | Meaning | Fix |
|---|---|---|
| not the on-chain owner | The token is owned by another address. | Withdraw from the wallet that owns it. |
| could not confirm ownership right now | Chain read failed; it refuses rather than assumes. | Retry shortly. |
| token is listed | A live order exists. | Cancel it first. |
| no trade URL on file | Nowhere to send the return offer. | Save your trade URL. |
| token not withdrawable | Already burned, or not in a redeemable state. | Check ownerOf on the explorer. |
| Steam unavailable / throttled | Custody could not be verified right now. | Wait and retry. |
See Withdraw your skin.
The burn succeeded but no offer arrived
Cause. Usually a stale trade URL, an account that cannot currently receive trades, or Steam throttling.
Fix. Confirm your saved trade URL is the current one and that your account can receive trades. Withdrawals are tracked durably and retried — a delay is not a lost skin. See Withdrawal lifecycle.
Wrong network
Symptom. A transaction fails immediately, your wallet warns about the network, or the interface shows no tokens for a wallet you know holds some.
Cause. Your wallet is on a different chain. LootFi is deployed only on Robinhood Chain, chain id 4663. There is no testnet deployment.
Fix. Switch networks:
| Network | Robinhood Chain |
| Chain ID | 4663 (0x1237) |
| RPC | https://rpc.mainnet.chain.robinhood.com |
| Currency | ETH |
| Explorer | https://robinhoodchain.blockscout.com |
Contract addresses are not portable across chains
An address that holds LootSkins on chain 4663 is meaningless on any other chain. Sending to it there loses the funds. Always confirm the chain id before signing.
A listing vanished from the marketplace
Cause. Any of: it expired · someone bought it · the seller cancelled the nonce or raised their minimum nonce · the seller transferred the token away · the seller revoked the marketplace's approval.
The last two require no transaction and leave no on-chain trace until someone tries to fill the order — the listing simply stops being fillable.
Fix. Nothing to fix. This is the safe failure: nobody can buy a skin its seller no longer owns. See Buy.
My token has no float or stats
Cause 1 — the item type has none. Graffiti, cases, capsules, agents, stickers, and music kits are not inspectable in the way guns and knives are. There is no float to show.
Cause 2 — the lookup has not resolved. Stats come from third-party data and can attach after the token mints, or fail to resolve at all during an outage.
Fix. A token without stats is not defective — the token id and its binding to the physical asset are unaffected.
null is not zero
Absent stats mean "not looked up". paintSeed: 0 is a real seed, sometimes a valuable one, and treating it as "no seed" is a costly mistake if you are pricing off it.
See Metadata and Reference prices.
Still stuck
- FAQ — shorter answers to common questions.
- Track your deposit — what each deposit status means.
- Steam rules & limits — everything Valve imposes on this flow.