> For the complete documentation index, see [llms.txt](https://docs.deriw.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.deriw.com/deriw-mainnet/api-for-developers.md).

# API for Developers

### RPC

#### Test Environment

* **RPC**: `https://relayer.test.deriw.com`
* **ChainId**: 2885
* **Explorer**: [https://explorerv2.test.deriw.com](https://explorerv2.test.deriw.com/)

#### Mainnet

* **RPC**: `https://rpc.deriw.com`
* **ChainId**: 2886
* **Explorer**: <https://explorer.deriw.com/>

***

### Notes

1. For opening a new position with no existing positions, margin must be **greater than 10 USDT**.
2. For closing a position, order amount must be **greater than 10 USDT**.

***

### 1. Faucet (Testnet Only)

In the **test environment**, users must claim test tokens. This is not required on mainnet.

#### 1.1 Claim Test Tokens

* **Airdrop Contract**: `0xb207FD6D1136b0a32E2077754C971A82C7E54545`
* Call the function: `claim()` to receive test USDT.

📌 Example Transaction: [View](https://explorerv2.test.deriw.com/tx/0xb538243f0c2606b43060d558306bedd8172f20411db357b4ca5edc7fe3fcf7ca)

#### 1.2 Token Approval

* **USDT (6 decimals)**: `0x8059298AD3f2153EC1B0FA0d233342e834E06737`
* Approve Router: `0x871cC36e0C52d3e41f896FF9D4eE03BC81E452e4`

**Mainnet USDT (6 decimals)**: `0x3B11A54514A708CC2261f4B69617910E172a90B3`

* Approve Router: `0x1eB6Dfc3316012C5795E1060f8BD1CEa10df30F5`

***

### 2. PositionRouter – Market Orders

* **Testnet**: `0x9E649615947e2bd1462A4b5D66645912b7740DB1`
* **Mainnet**: `0x80257F37d327FA0EF464eFa64DdFb755dE111262`

#### 2.1 Market Open Position

📌 Example Transaction: [View](https://explorerv2.test.deriw.com/tx/0x6485a3e2108bbb64b02359d1ac9f9baffb23cfc7b7453a2856a175f4c4f36d4e)

```solidity
function createIncreasePosition(
    address[] memory _path,        // Path (USDT address: 0x8059...)
    address _indexToken,           // Index token, see section 4
    uint256 _amountIn,             // USDT amount (1 USDT = 1,000,000 due to 6 decimals)
    uint256 _sizeDelta,            // Position size with leverage (1e30)
    bool _isLong,                  // Long = true, Short = false
    uint256 _acceptablePrice,      // Acceptable price (1e30)
    bytes32 _referralCode,         // Fixed value: 0x00...
    address _callbackTarget        // Fixed value: 0x0000000000000000000000000000000000000000
)
```

#### 2.2 Market Close Position

📌 Example Transaction: [View](https://explorerv2.test.deriw.com/tx/0xf00e62d7badcce643a4b455f12ab4b286f1837392b1c4ae39563a22cb9c10c5b)

```solidity
function createDecreasePosition(
    address[] memory _path,        // Path (USDT address: 0x8059...)
    address _indexToken,           // Index token, see section 4
    uint256 _collateralDelta,      // Usually 0
    uint256 _sizeDelta,            // Closing position size (1e30)
    bool _isLong,                  // Long = true, Short = false
    address _receiver,             // Receiver (usually tx sender)
    uint256 _acceptablePrice,      // Acceptable price
    address _callbackTarget        // Fixed value: 0x0000000000000000000000000000000000000000
)
```

***

### 3. OrderBook – Limit Orders

* **Testnet**: `0x300cAD4a61E6785F75E6deEbCC29b5f2708ab327`
* **Mainnet**: `0x86A0D906c6375846b05a0EF20931c1B4d2489C13`

#### 3.1 Limit Open Position

📌 Example Transaction: [View](https://explorerv2.test.deriw.com/tx/0xa0cc209e8fdcec47ce2d6f51ff1d453e05406ec0bee82c2d6468d64873ae6a5c)

```solidity
function createIncreaseOrder(
    address[] memory _path,        // Path (USDT address)
    uint256 _amountIn,             // USDT amount (1 USDT = 1,000,000 due to 6 decimals)
    address _indexToken,           // Index token, see section 4
    uint256 _sizeDelta,            // Position size with leverage (1e30)
    address _collateralToken,      // USDT (6 decimals)
    bool _isLong,                  // Long = true, Short = false
    uint256 _triggerPrice,         // Trigger price
    bool _triggerAboveThreshold,   // Default true
    uint256 _lever                 // Leverage
)
```

#### 3.2 Take Profit / Stop Loss Orders

📌 Example Transaction: [View](https://explorerv2.test.deriw.com/tx/0x87fed27568573a578b1b420f23699d2031f7f4826e2684b55b740577a65cf826)

```solidity
function batchCreateDecreaseOrder(DecreaseOrderFor[] memory orders) 

struct DecreaseOrderFor {
    address indexToken;        
    uint256 sizeDelta;         
    address collateralToken;   
    uint256 collateralDelta;   // Usually 0
    bool isLong;               
    uint256 triggerPrice;      
    bool triggerAboveThreshold;// Take profit = true, Stop loss = false
    uint256 lever;             
}
```

#### 3.3 Limit Close Position (TP/SL)

```solidity
function createDecreaseOrder(
    address _indexToken,        
    uint256 _sizeDelta,         
    address _collateralToken,   
    uint256 _collateralDelta,   // Usually 0
    bool _isLong,               
    uint256 _triggerPrice,      
    bool _triggerAboveThreshold,// Take profit = true, Stop loss = false
    uint256 _lever              
)
```

***

### 4. Index Token List

#### Mainnet

* **XAUt**: `0xFbD3AE1b32fcCe9EdD86519223Ef773Dbc399795`
* **ASTER**: `0xb2d98323AD400B711e49f131086783d3471AcAd8`
* **WBTC**: `0x9cAaCD673fd5C6C4b3Aa3c4E55e930ca5A4f32fe`
* **DOGE**: `0x2fDC17Dca642BBA2f4ad5DD51E891A277670B556`
* **WETH**: `0x8892549DdcA0f14ee3b4B0dE9A5b6dE5087FE12f`
* **SOL**: `0xB7e20EE2392f940Df344a1A940c37030DF0363A0`
* **LINK**: `0x83Fbf275A3B79F062a4deb7b876fB17D11b22815`
* **SUI**: `0x3C02bFeFC774364a1B2DBa7Dfa093A4b2eAa98db`
* **XRP**: `0xc48566c3A2A4358f34BeF026B1148f1A2cD47856`
* **BNB**: `0x881E8ef8a6aC1fD7f850978361d9FF67902F0Cac`
* **MNT**: `0xAb49AA1FfAbdd69B812163Ac01B8762c1D435342`
* **OKB**: `0xF88f37DF527855440424B52CBDda0BcE510fa261`
* **PAXG**: `0x653d3D23F5a09DD38990691fbf47432977b1Bad8`
* **AVAX**: `0x644F2FD0476402359B9233B101663E706493A145`
* **LTC**: `0x3845E1d4DCDd0694BB9919F9dd87CF06148eacE3`
* **WLD**: `0x3Af24C47fe884653D64dc2edF00b8A07e2CBC764`
* **ONDO**: `0x56104434bFF98bE272997262098092d37d074e0B`
* **CRV**: `0xbAF2a9eD3d52B83730c66801891E79F9aE764Bdd`
* **ADA**: `0x6a8E5074000D16e865ab72B10Af401D96EF07628`
* **AAVE**: `0x7a895267FfDEFF5cb3331ac3D45A0c8Cc8257aba`
* **DOT**: `0x74759d2a55BC8e920c1f2ab9b0AD93c62c028B08`
* **UNI**: `0xc5B66dc0604a440155689015B1a577d7cF23e3d5`
* **TRUMP**: `0x7C823734F32A6Ba9eA7a5537AA05fc8147AC0464`
* **SOMI**: `0xfa4bdAD5B858263DEadCbD826AD1b4e9a5f43D62`
* **PENDLE**: `0xa0750EF1fA99A393ca82771bf91ba80e709ca692`
* **ENS**: `0xC0C5630B8B57C88F48626A5aFf0ab4dE5bCfD8a2`
* **TSLA**: `0x69ed5C59Cc40c98857860322a47630D2c0d1a022`
* **XAU**: `0xca6C998D3807dDa6e323eBa71AD26910e56C2F2e`
* **XAG**: `0x66913b13E2010B5474882aF2C14E66c6f8F334b1`
* **INTC**: `0x078A3f7F28766D10Fb9b9E92138D142bC8513083`
* **NVDA**: `0x8D1Db0131633f0E2097aDaEbF95f8AAac87e04a2`
* **MSTR**: `0x652606B80b4e7d5A7F709B1B0D382E7d8d9E187D`
* **CRCL**: `0x1F1441E6C7528dd1F1241b47BE31Cf09769Ed311`
* **SPY**: `0xb3a9C17447783F357EBBBf919a5e9c657E9Ef440`
* **SPCX**: `0xDD392aD454beD8aBC6AD49469Cee37F07f3B5feA`
* **HOOD**: `0xD3da1a0592ca6C7f40dBc3753f75ECf294Bc5804`
* **AMZN**: `0x8F0b88c57792e8ea53098Dd08176F723925a234a`
* **COIN**: `0x69D1EBD1887Ff6953C986D69c45529C7988Bd514`
* **QQQ**: `0x839290C64c5fF4e157d9dd84e5846EBD6Dcda1Eb`

#### Testnet

* **WBTC**: `0x09A3136D50E375F3bfd35b0Ec7982721d3d6A54F`
* **DOGE**: `0x6e465324A7d113389De95183Db8Cfb76d411625c`
* **WETH**: `0x89b80e784F85028C75A00971B1A3f5827DC0d0aa`
* **SOL**: `0xD389ba94FC0Fb63Ee529D133aE03777eae861cb9`
* **LINK**: `0x00218834263b0a15b4dD70850E19A428e0d58fE3`
* **SUI**: `0xa7Dc854728C68b63c5504BB3f13ff5aC87f4a6C1`
* **XRP**: `0x75490283ed7494cC56aaCd362E0F9227ADA4D959`
* **BNB**: `0xBC7575878D6c4a06DdB0c62bc0F866A4493A80b4`
* **LTC**: `0x477fA0030757DcDb496595E54159F28ea5E7a190`
* **WLD**: `0x8568C0C8867363dd03Feae85e5b6563A1913A5D9`
* **CRV**: `0xd34BBB62B94cb2e80579E5F6FdE56BA7CA6B1Ac6`
* **ADA**: `0x0f3B0a998515918A46b6B740881CA475DB6512b7`
* **AAVE**: `0xc073ca0Bca8F79e970f9aD2191471EB85892d6a8`
* **UNI**: `0xF873c66e26B16cf3C489062C25d27715Ad18a678`
* **TRUMP**: `0x432357a752879A33C0D5d5ffEa40EF878524022F`
* **XAU**: `0xc16B53114997d17a8D8e23B4Fe3C48DB9b7378e4`
* **XAG**: `0x10d503Db5AFF07A85566E189cA5e1aF222857F43`
* **TSLA**: `0x411d41f5Eb2858cc78001357069c9CE21e46Efb4`
* **INTC**: `0x14E6B0D24f90A9D7320FcE44e20263d1363A6E18`
* **NVDA**: `0x68f20035F385FB57d1051D3a5d78863143EF0C97`
* **MSTR**: `0xFB8BBF9Eb50A042b01c378BfB5392995579Ae7A3`
* **CRCL**: `0x27c3B15A67EBA48072199EB3Cfc994578C9A3118`
* **BCH**: `0x2b45DAA43A52ce55950eE4f9a5Cbf10225803EBE`
* **FIL**: `0x09FD0Feec20E2F9dD5cf4F5aB2372CD80B14116a`
* **ORDI**: `0xeAAF0f68F94620919f57a7079169684e902917F9`
* **ARB**: `0xF66e0aBaba7e61968bF31fd75eEb39b379EEC954`
* **TRX**: `0xA5cFbf1908837c81127D0cC0Ff57C289bf4B311d`
* **SAND**: `0xaE7203eBA7E570A6B5C7A303987B6C824dF5A325`
* **OP**: `0xC88F5eE7D4ECb5033fCB5c60525587E72Cd1A36e`
* **APE**: `0x7B47509E3fd234F82df3373E35C3c8470FF77dC2`
* **MASK**: `0x3680c176bEFb73cFE6008269358819180a7a7A9F`
* **TIA**: `0x301A099287D53c1C14C273a0E02B8fe21886F8dc`
* **AXS**: `0x766BcAAAE1b774F5AA919D8969737927B904F9F3`
* **CFX**: `0xcDfABaA9990F41b4d8Da785EB37306A0ab97EC49`
* **BLUR**: `0x327C4F29833FFe483c94145430B372996B6DFb5d`
* **DYDX**: `0xecE9556e91223DA81b8C29739cFdfaF51218E488`
* **CAKE**: `0xE321f86907641dF968027A628243547F2e84F2A5`
* **GMT**: `0xdB5E2b2AEf6b8B8F58F9fc2Eef6eD134e49de065`
* **GMX**: `0xCd8ec06684D758E735CF3655c3ddDa808Da0e741`
* **PYTH**: `0x54289258403B72bFC0e652B677560b0C5ccAfabE`
* **GAS**: `0x78E1F9a9c4921A0f91ED0F02DEb4234f9E0e579d`
* **COMP**: `0x21d185b9dcB60bc58Fc4cC7d082e2e34ED1d2dA1`
* **1INCH**: `0x5A78f68b9eE1Ae995738dC2F7f96bEf8b558CDB4`
* **1000SATS**: `0xd37B3e43CC0Ad1574479b27f9427c6632995Cb2f`
* **PEOPLE**: `0x542abD3F77D41db0bc19F9b6bE51Ee5370022D0A`
* **NOT**: `0x4C2c677863627f0bA66B5F6658662970702c6156`
* **W**: `0x82e610e5cfD1B58DE683c446c96bf4FEFC20aB9E`
* **ENA**: `0xd6b09Bf968F1Fb6971C6f636D08870b22fCb2B8a`
* **WIF**: `0x1C8a3e1Da66B5a85A56A34b5754dcde92aBC3dA1`
* **TON**: `0xBb1132D675A0281Df1097CF4CB10B22D2A70A65e`
* **HYPE**: `0x227C16ef02eD6f4AB8Dc16a9cA49747BCbc6025D`
* **KAITO**: `0x24EafbFFF825d36C77216063b34e6c9ef4392c0f`
* **IP**: `0xF650DE55bFF297d5F98Ba71667Bfb4243C705ed0`
* **BERA**: `0x223fF8E6435De4F1476bAA3384Da952e504F1dB8`
* **MOVE**: `0x2e5ba971963da78F46B1E7cCbD790ff5Bf0b8A94`
* **NEIRO**: `0xde8689172cF9a5b9DBa6A1AB0bdf4D573E67050B`
* **AIXBT**: `0x8eF5c700De1A700b4b2002D65db842CB784A0556`
* **SONIC**: `0x60C2014A9f6Be6597775489dE12caa7CE3095d71`
* **SEI**: `0x7c2130CF1F9bcCEf8E6b72FD86402A1F89e944C4`
* **LAYER**: `0x8693F1f7cF61378F37fcD6a8aDC5c045Feb06067`
* **SPY**: `0xb20818cDceb716F1F48023eC2f1abDcd28025F5f`
* **SPCX**: `0x969292C5F967A58a80BaCf3CD2Db74b2f2BDA7C6`
* **HOOD**: `0x80018520345a1C2E26ECbA0D446bA1f879C71dDF`
* **AMZN**: `0xDa979CbC9867a79ff81344500FE6a76a2EE509fF`
* **COIN**: `0x17b0b8E035a4EA5B8d122136BCcbDE98252ef0E2`
* **QQQ**: `0x4667e695Ab767A218C6f3C0919dC6846139c7810`
