# Controls

The **Controls** type contains your global copy‑trading controls. These settings act as defaults for every mirrored wallet and can be selectively overridden per mirror.

| Field                              | Type / details                                                                                                                                                                                                                        |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `tradeSizeLamports`                | **Number** – example `10000000`, lamports spent per buy                                                                                                                                                                               |
| `tradeSpeed`                       | **String** – example `"Turbo"`, valid: `Standard`, `Turbo`, `Godly`                                                                                                                                                                   |
| `buyMinPriorityFee`                | **Number** – example `0.1`, Minimum priority fee for buys. Applies to spot copy buys on Instant buy mode.                                                                                                                             |
| `sellStrategy`                     | **String** – example `"SellProportionally"`, valid: `SellAll`, `SellProportionally`, `NoSell`                                                                                                                                         |
| `maxBuysPerMirrorPerHour`          | **Number** – example `3`                                                                                                                                                                                                              |
| `maxBuysPerMirrorPerDay`           | **Number** – example `10`                                                                                                                                                                                                             |
| `maxBuysPerTokenPerDay`            | **Number** – example `1`                                                                                                                                                                                                              |
| `maxBuysPerTokenPerWeek`           | **Number** – example `5`                                                                                                                                                                                                              |
| `allowPumpFun`                     | **Boolean** – example `true`                                                                                                                                                                                                          |
| `snipeLaunchpadLaunches`           | **Boolean** – example `true`                                                                                                                                                                                                          |
| `launchpadLaunchSnipeTradeSizeSol` | **Number** – example `0.2`, size in SOL for launchpad snipes                                                                                                                                                                          |
| `mevProtection`                    | **String** – example `"Balanced"`, valid: `Fastest`, `Balanced`, `Protected`                                                                                                                                                          |
| `degenMode`                        | **Boolean** – example `false`                                                                                                                                                                                                         |
| `allowBuys`                        | **Boolean** – example `true`                                                                                                                                                                                                          |
| `buyStrategy`                      | **String** – example `"Scaling"`, valid: `Constant`, `Scaling`                                                                                                                                                                        |
| `ssMinBuy`                         | **Number** – example `0.1`, minimum SOL for scaling strategy                                                                                                                                                                          |
| `ssPercent`                        | **Number** – example `40`, percentage for scaling strategy                                                                                                                                                                            |
| `ssMaxBuy`                         | **Number** – example `0.5`, maximum SOL for scaling strategy                                                                                                                                                                          |
| `buyMode`                          | **String** – example `"Instant"`, `Instant` will copy buys instantly. `BuyTheDip` will wait for a dip after the mirror's buy before buying. `BuyTheDip` mode uses `buyDipPct` and `buyDipTimeoutSecs`., valid: `Instant`, `BuyTheDip` |
| `buyDipPct`                        | **Number** – example `5`, Only used in `BuyTheDip` mode. How much the price dips before you buy. Must be a number between 0 and 100. If empty, defaults to 5.                                                                         |
| `buyDipTimeoutSecs`                | **Number** – example `86400`, Only used in `BuyTheDip` mode. How long to wait for a dip after your mirror buys. Max 7 days. If empty, defaults to 1 day.                                                                              |
| `crossMirrorPrevention`            | **Boolean** – example `true`                                                                                                                                                                                                          |
| `pfSlippage`                       | **Number** – example `10`, pump.fun slippage percent                                                                                                                                                                                  |
| `buyExtraTipPct`                   | **Number** – example `1`, extra tip on buys (percent)                                                                                                                                                                                 |
| `sellExtraTipPct`                  | **Number** – example `0.5`, extra tip on sells (percent)                                                                                                                                                                              |
| `minMcUsd`                         | **Number** – example `10000`, minimum market cap in USD                                                                                                                                                                               |
| `maxMcUsd`                         | **Number** – example `200000`, maximum market cap in USD                                                                                                                                                                              |
| `minTokenAgeSecs`                  | **Number** – example `60`, minimum token age (in seconds)                                                                                                                                                                             |
| `maxTokenAgeSecs`                  | **Number** – example `604800`, maximum token age (in seconds)                                                                                                                                                                         |
| `onlyCopyNewPositions`             | **Boolean**, Only copy the buy if the mirror is opening a new position. A new position means the mirror's balance of the token they're buying was 0 immediately before this buy. Defaults to `false`.                                 |
| `autoSellProfileKey`               | **String** – key of an existing auto-sell profile                                                                                                                                                                                     |

### tradeSizeLamports

**Type: Number**\
Total lamports OdinBot spends per buy when no scaling strategy is in effect.\
\&#xNAN;*Example: `10000000` (≈ 0.01 SOL).*

**(optional field)**

***

### tradeSpeed

**Type: String** - `Standard`, `Turbo`, `Godly`\
Selects the speed tier for copy-trades.\
\&#xNAN;*Example: `"Turbo"`.*

**(optional field)**

***

### buyMinPriorityFee

**Type: Number**\
Minimum priority fee for buys. Applies to spot copy buys on Instant buy mode.\
E*xample: `0.1`.*

**(optional field)**

***

### sellStrategy

**Type: String** - `SellAll`, `SellProportionally`, `NoSell`\
Defines how OdinBot exits positions when the mirrored wallet sells.\
\&#xNAN;*Example: `"SellProportionally"`.*

**(optional field)**

***

### maxBuysPerMirrorPerHour

**Type: Number**\
Limits how many buys Odinbot will make for a mirrored wallet within an hour.\
\&#xNAN;*Example: `3`.*

**(optional field)**

***

### maxBuysPerMirrorPerDay

**Type: Number**\
Limits the number of buys Odin will make for a mirrored wallet within a 24-hour window.\
\&#xNAN;*Example: `5`.*

**(optional field)**

***

### maxBuysPerTokenPerDay

**Type: Number**\
Maximum number of buys allowed for the same token in a 24-hour window.\
\&#xNAN;*Example: `1`.*

**(optional field)**

***

### maxBuysPerTokenPerWeek

**Type: Number**\
Maximum number of buys allowed for the same token in a 7-day window.\
\&#xNAN;*Example: `5`.*

**(optional field)**

***

### allowPumpFun

**Type: Boolean**\
If `true`, OdinBot is allowed to copy trades on pump.fun.\
\&#xNAN;*Example: `true`.*

**(optional field)**

***

### snipeLaunchpadLaunches

**Type: Boolean**\
If `true`, OdinBot will snipe (quickly buy) the tokens that your mirror launches (or creates) on a launchpad.\
\&#xNAN;*Example: `true`.*

**(optional field)**

***

### launchpadLaunchSnipeTradeSizeSol

**Type: Number**\
Amount in **SOL** to spend on each launchpad snipe (independent of `tradeSizeLamports`).\
\&#xNAN;*Example: `0.2`.*

**(optional field)**

***

### mevProtection

**Type: String** - `Fastest`, `Balanced`, `Protected`\
Sets MEV protection.\
\&#xNAN;*Example: `"Fastest"`.*

**(optional field)**

***

### degenMode

**Type: Boolean**\
Removes slippage entirely for trades not executed on Pump.fun or PumpSwap.\
\&#xNAN;*Example: `false`.*

**(optional field)**

***

### allowBuys

**Type: Boolean**\
Master switch that disables **all** new buys when set to `false`. Sells remain unaffected.\
\&#xNAN;*Example: `true`.*

**(optional field)**

***

### buyStrategy

**Type: String** - `Constant`, `Scaling`\
`Constant` uses `tradeSizeLamports` for every buy. `Scaling` calculates size from `ssMinBuy`, `ssPercent`, and `ssMaxBuy`.\
\&#xNAN;*Example: `"Constant"`.*

**(optional field)**

***

### ssMinBuy

**Type: Number**\
Defines the smallest trade size (in SOL) that Odinbot will execute. If your buy would be below this size, no trade will be made. (only used when `buyStrategy` is set to `Scaling`).\
\&#xNAN;*Example: `0.1`.*

**(optional field)**

***

### ssPercent

**Type: Number**\
Percentage of the mirror's original buy size OdinBot should match.\
\&#xNAN;*Example: `40`.*

**(optional field)**

***

### ssMaxBuy

**Type: Number**\
Sets the largest trade size (in SOL) that Odinbot will execute. If the calculated buy size exceeds this value, Odinbot will instead use this value for the buy size.\
\&#xNAN;*Example: `0.5`.*

**(optional field)**

***

### buyMode

**Type: String** - `Instant`, `BuyTheDip`\
`Instant` will copy buys instantly. `BuyTheDip` will wait for a dip after the mirror's buy before buying. `BuyTheDip` mode uses `buyDipPct` and `buyDipTimeoutSecs`.\
\&#xNAN;*Example: `"Instant"`.*

**(optional field)**

***

### buyDipPct

**Type: Number**\
Only used in `BuyTheDip` mode. How much the price dips before you buy. Must be a number between 0 and 100. If empty, defaults to 5.\
\&#xNAN;*Example: `5`.*

**(optional field)**

***

### buyDipTimeoutSecs

**Type: Number**\
Only used in `BuyTheDip` mode. How long to wait for a dip after your mirror buys. Max 7 days. If empty, defaults to 1 day.\
\&#xNAN;*Example: `86400`.*

**(optional field)**

***

### crossMirrorPrevention

**Type: Boolean**\
When enabled, only the mirrored wallet that caused the first trade of a token can trade that token until the position is closed.\
\&#xNAN;*Example: `true`.*

**(optional field)**

***

### pfSlippage

**Type: Number**\
Allowed slippage (%) when buying on Pump.fun or PumpSwap.\
\&#xNAN;*Example: `10`.*

**(optional field)**

***

### buyExtraTipPct

**Type: Number**\
Adds a percentage-based additional tip to potentially speed up mirrored buys. The tip scales with the trade size.\
\&#xNAN;*Example: `1` (adds 1 %).*

**(optional field)**

***

### sellExtraTipPct

**Type: Number**\
Adds a percentage-based additional tip to potentially speed up mirrored sells. The tip scales with the trade size.\
\&#xNAN;*Example: `0.5`.*

**(optional field)**

***

### minMcUsd

**Type: Number**\
Minimum market cap (USD) a token must have for OdinBot to buy it.\
\&#xNAN;*Example: `10000`.*

**(optional field)**

***

### maxMcUsd

**Type: Number**\
Maximum market cap (USD) above which OdinBot will not buy.\
\&#xNAN;*Example: `200000`.*

**(optional field)**

***

### minTokenAgeSecs

**Type: Number**

Minimum token age (in seconds) a token must have for OdinBot to buy it.

*Example: `60`.*

**(optional field)**

***

### maxTokenAgeSecs

**Type: Number**

Maximum token age (in seconds) a token must have for OdinBot to buy it.

*Example: `604800`.*

**(optional field)**

***

### onlyCopyNewPositions

**Type: Boolean**\
Only copy the buy if the mirror is opening a new position. A new position means the mirror's balance of the token they're buying was 0 immediately before this buy. Defaults to false.

**(optional field)**

***

### autoSellProfileKey

**Type: String**\
Key of the auto-sell profile OdinBot should apply.

**(optional field)**

{% content-ref url="" %}
[](https://docs.odinbot.io/api-documentation/types)
{% endcontent-ref %}
