> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sail.exchange/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Create your first order in under 5 minutes

### 1. Install Sail

<AccordionGroup>
  <Accordion icon="rectangle-terminal" title="sail-ts">
    <CodeGroup>
      ```bash npm theme={null}
      npm i -g sail-exchange
      ```

      ```bash yarn theme={null}
      yarn global add sail-exchange
      ```
    </CodeGroup>
  </Accordion>

  <Accordion icon="rectangle-terminal" title="sail-rs">
    <CodeGroup>
      ```bash cargo theme={null}
      cargo add sail_exchange
      ```
    </CodeGroup>
  </Accordion>
</AccordionGroup>

### 2. Install Fuels

<AccordionGroup>
  <Accordion icon="rectangle-terminal" title="fuels-ts">
    <CodeGroup>
      ```bash npm theme={null}
      npm i -g fuels
      ```

      ```bash yarn theme={null}
      yarn global add fuels
      ```
    </CodeGroup>
  </Accordion>

  <Accordion icon="rectangle-terminal" title="fuels-rs">
    <CodeGroup>
      ```bash cargo theme={null}
      cargo add fuels
      ```
    </CodeGroup>
  </Accordion>
</AccordionGroup>

### 3. Create Sail Instance

<CodeGroup>
  ```typescript sail.ts theme={null}
  import { Wallet, Provider } from 'fuels';
  import { sail, LimitOrder } from 'sail-exchange';

  // create a provider and wallet
  const testnetProvider = new Provider('https://beta-3.fuel.network');
  const tradingWallet = Wallet.fromPrivateKey(ENV_PRIVATE_KEY);

  const sail = new Sail(testnetProvider, tradingWallet);
  ```

  ```rust sail.rs theme={null}
      use sail_exchange::{Sail, LimitOrder};
      use fuels::{accounts::fuel_crypto::SecretKey, prelude::*};

      let testnet_provider = Provider::connect("beta-3.fuel.network").await.unwrap();

      // Create the wallet.
      let trading_wallet = WalletUnlocked::new_from_private_key(ENV_PRIVATE_KEY, Some(provider));

      // Build Sail
      let sail = Sail::builder
          .provider(testnet_provider)
          .wallet(trading_wallet)
          .build();
  ```
</CodeGroup>

### 4. Create Order

<CodeGroup>
  ```typescript sail.ts theme={null}

      let order = new LimitOrder(
      maker: tradingWallet.address(),
      maker_amount: 10,
      taker_amount: 10,
      maker_token: 'ETH',
      taker_token: 'USDC',
      );

      const orderId = sail.createOrder(order)
  ```

  ```rust sail.rs theme={null}
      let order = LimitOrder {
      maker: trading_wallet.address(),
      maker_amount: 10,
      taker_amount: 10,
      maker_token: 'ETH',
      taker_token: 'USDC',
      };
      const order = sail.create_order(order)
  ```
</CodeGroup>
