Exit Orders (TP/SL)
Automate your sells with take-profit and stop-loss orders. Set a target price or a floor price and SnowForge will execute the trade for you.
Exit orders let you pre-set sell conditions on any token you hold. Instead of watching the chart and manually selling, you define a price target and SnowForge handles the rest.
There are two types:
- Take Profit (TP): sells when the price rises to or above your target
- Stop Loss (SL): sells when the price drops to or below your floor
When creating an exit order you choose how much of your position to sell when the order triggers. The available options are:
- 25% of your token balance
- 50% of your token balance
- 75% of your token balance
- 100% of your token balance
The percentage is applied to your balance at the time the order executes, not when you create it.
You can create a linked pair by setting both a take-profit and a stop-loss at the same time. When one order triggers and executes, the other is automatically cancelled.
This is useful when you want to lock in profit if the price goes up while also protecting against downside if it drops. Only one of the two orders will ever execute.
Exit orders use a default slippage tolerance of 5%, which you can adjust when creating the order. Higher slippage increases the chance of execution in volatile markets but may result in a worse fill price.
Before your first exit order on a token, you'll need to approve the ExitOrderExecutor contract to spend your tokens. This is a one-time on-chain transaction per token. After approval, all future orders on that token execute without additional approvals.
Each exit order moves through the following statuses:
| Status | Description |
|---|---|
| Active | Order is live and monitoring the token price. |
| Triggered | Price condition was met. The order is queued for on-chain execution. |
| Executed | The sell transaction completed successfully. |
| Cancelled | You manually cancelled the order before it triggered. |
| Failed | The order triggered but the on-chain transaction failed (e.g. insufficient balance, expired signature). |
When your price condition is met, the backend generates a signed transaction and submits it to the ExitOrderExecutor smart contract. Each signature has a 5-minute expiry window, preventing stale orders from executing at outdated prices.
The contract verifies the signature, checks your token balance and approval, then executes the swap through the appropriate router (bonding curve or SnowDex). See the Contracts page for the ExitOrderExecutor address.
