The exchange already shows "filled," and the position appears in your holdings list, but a USDC transfer has been stuck for half an hour without confirmation. When you open your wallet, the balance hasn't changed and the position is still empty. This situation has a special name on Polymarket: Ghost Fill.

A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!
Core Conclusion: Off-Chain "Filled" Does Not Mean On-Chain Ownership
Whether you actually have the position depends on whether the on-chain settlement ultimately succeeds. To give you an experience close to a centralized exchange, Polymarket uses a hybrid architecture of "off-chain matching, on-chain settlement." The moment you place an order and see it filled, it has only been matched successfully in the off-chain order book. The actual fund transfer and position delivery need to be packaged and submitted on-chain by the system afterward.
As long as there is a time gap between these two steps, the situation of "off-chain showing filled, but on-chain ultimately failing" can occur.
Step 1: Check the Transaction Status On-Chain First
[What to do]: Determine whether this order actually completed on-chain settlement.
[How to do it]:
Open Polymarket's order history or transaction records and find this order.
Look in the order details. There is usually a "Tx Hash" or "On-chain Transaction Hash" field.
Click the hash to jump to a blockchain explorer such as Polygonscan and check the transaction status.
Case A: Transaction status shows "Success"
This means the order was indeed settled successfully on-chain. The position truly belongs to you. If the frontend display is inconsistent, it may just be a data loading delay. Refresh the page.
Case B: Transaction status shows "Reverted" or "Failed"
This is a typical ghost fill. Off-chain matching succeeded, but on-chain execution failed, so this position does not belong to you. The reason is that when the order was submitted on-chain, your wallet balance was insufficient (possibly used up by other operations or transfers), the signature became invalid, or an attack occurred. The "fill" you see is only a record in the system database and has already been withdrawn due to the on-chain rollback.
[Completion standard]: You can confirm the final settlement status of this order on a blockchain explorer, whether it is Success or Reverted.
Step 2: Distinguish "Ghost Fill" from Ordinary Order Invalidation
Ordinary order invalidation, such as when your limit order was placed but the price never reached it and you canceled it, has no impact on your account.
But a ghost fill has already created a "fill illusion." You will see the position and corresponding profit and loss, thinking the trade is complete, but this information will eventually be cleared by the system. What you get is not a holding, but a "canceled" or "withdrawn" status.
Polymarket's Response and Current Status
Ghost fills were a very common problem in the V1 version. Attackers could exploit an extremely low cost of less than 0.1 dollars to cancel orders or move funds during the window between off-chain matching and on-chain settlement, causing trades to fail while profiting by clearing innocent market makers' resting orders.
To address this problem, Polymarket launched the V2 version in late April 2026, removing the global nonce mechanism that was most easily exploited by attackers and significantly reducing the frequency of the problem. However, both official sources and industry analysis point out that as long as the off-chain matching and on-chain settlement model remains unchanged, ghost fills cannot be completely eliminated.
Risk reminder: Before an order finally completes on-chain settlement, do not fully rely on the "filled" status shown on the frontend to make subsequent decisions. Especially in short-term markets with violent price fluctuations, if a ghost fill causes you to misjudge your actual position, you may miss the best opportunity to actually open or stop out of a position.

A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!
Troubleshooting Checklist
Check the Tx Hash: After an order is filled, go to a blockchain explorer to confirm the transaction status.
Confirm account balance: Check whether your wallet balance is sufficient to pay for the order. If the balance happens to be insufficient, the transaction will most likely fail.
Confirm the operating environment: If you use automated trading tools, attackers may exploit ghost fills to mislead your bot's hedging signals and put you in a passive position.


