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

# Access the IXS Vault

> How to deposit into and redeem from the IXS Permissionless Vault on BNB Chain, using the Studio, the API, or an AI agent.

The IXS Permissionless Vault is an RWA yield vault on BNB Smart Chain, backed by BlackRock's SHYG high-yield corporate-bond ETF. You deposit USDC and earn the vault's yield. It's non-custodial: you sign every transaction with your own wallet.

There are three ways to use it: the API, an AI agent, or the Compass widget. They all do the same thing.

<Info>
  The IXS vault is part of the **Tokenized Assets** product, on **BNB Chain**. Deposits and redemptions run through your Tokenized Assets Account.
</Info>

## Before you start

<Steps>
  <Step title="A wallet on BNB Chain">
    Any EVM wallet that can connect to BNB Smart Chain (MetaMask, Rabby, or an embedded wallet).
  </Step>

  <Step title="USDC on BNB Chain">
    Deposits are in USDC on BNB, the Binance-Peg token at `0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d`. If your USDC is on another chain, bridge it over or buy it with the [On-Ramp](/v2/Products/On-Ramp).
  </Step>

  <Step title="A little BNB for gas">
    BNB Chain fees are paid in BNB; a dollar or two is enough. With [gas sponsorship](/v2/Products/gas-sponsorship), your users need none.
  </Step>

  <Step title="A Compass API key (API and agent lanes)">
    Get a free key from the [login page](https://www.compasslabs.ai/login). The Studio lane doesn't need one; each tab below shows where to use it.
  </Step>
</Steps>

<Warning>
  Deposits mint instantly. Redemptions don't. You submit a request and the vault operator settles it later, within a defined window. There is no instant sell for this vault, so don't expect a same-second withdrawal. Each tab below covers the redemption steps.
</Warning>

## How to use the vault

Each tab covers the whole flow: deposit, check your position, redeem.

<Tabs>
  <Tab title="API">
    Send your API key as the `x-api-key` header on every call (shown below). Each call returns an unsigned transaction (or an EIP-712 payload) that you sign. Full reference: [Tokenized Assets](/v2/Products/Tokenized-Assets).

    **Deposit**

    <Steps>
      <Step title="Create your account on BNB">
        Idempotent. If the account already exists, `transaction` comes back `null`.

        ```bash theme={"system"}
        curl -X POST https://api.compasslabs.ai/v2/tokenized_assets/create_account \
          -H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
          -d '{"sender": "0xYourWallet", "owner": "0xYourWallet", "chain": "bsc"}'
        ```
      </Step>

      <Step title="Fund it">
        Send USDC on BNB to the `tokenized_assets_account_address` from the previous step. Trades settle from that account, not your wallet.
      </Step>

      <Step title="Deposit into the vault">
        Pass the vault address as `token_out`.

        ```bash theme={"system"}
        curl -X POST https://api.compasslabs.ai/v2/tokenized_assets/transact/buy \
          -H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
          -d '{
            "token_in": "USDC",
            "token_out": "0xc975a3EeF2e49F8eDdEf585340C43f15300fCB82",
            "amount_in": "1000",
            "slippage": 0.005,
            "owner": "0xYourWallet",
            "chain": "bsc"
          }'
        ```
      </Step>
    </Steps>

    **Redeem**

    <Steps>
      <Step title="Request a redemption">
        Call `transact/sell` with the vault address as `token_in`. It returns `settlement: "async"`.

        ```bash theme={"system"}
        curl -X POST https://api.compasslabs.ai/v2/tokenized_assets/transact/sell \
          -H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
          -d '{
            "token_in": "0xc975a3EeF2e49F8eDdEf585340C43f15300fCB82",
            "token_out": "USDC",
            "amount_in": "500",
            "slippage": 0.005,
            "owner": "0xYourWallet",
            "chain": "bsc"
          }'
        ```
      </Step>

      <Step title="Poll until finalized">
        While the request is `pending`, `expected_net_assets` shows what it will settle for at the current NAV.

        ```bash theme={"system"}
        curl "https://api.compasslabs.ai/v2/tokenized_assets/redemptions?owner=0xYourWallet&chain=bsc&vault=ixv1" \
          -H "x-api-key: YOUR_API_KEY"
        ```
      </Step>

      <Step title="Withdraw">
        Once finalized, move the USDC from your account back to your wallet with the `transfer` endpoint (`action: WITHDRAW`).
      </Step>
    </Steps>

    <Tip>To look up the vault address: `GET /v2/tokenized_assets/markets?provider=ixs&chain=bsc`.</Tip>
  </Tab>

  <Tab title="AI agent">
    Have an AI agent (Claude Code, Cursor, Codex) run the flow. It builds the transactions; you sign them.

    The **Agent Skill** is the easiest way in — it sets up the tooling for you (either the `compass` CLI or the Compass MCP server) and turns your plain-English request into the right commands. You don't have to set up MCP or the CLI yourself; the two sections after the Skill just explain what it connects to.

    **Agent Skill (start here).** In your terminal, set the key first, then start your agent from that same terminal — the order matters, because the agent only picks up the key if it was set before the session began. Swap `<key>` for the key you got above:

    ```bash theme={"system"}
    export COMPASS_API_KEY_AUTH=<key>   # 1. set the key
    # 2. then start your agent here — Claude Code (`claude`), Codex, Cursor, or any other
    ```

    (If your agent is already open, restart it here so it inherits the key.) Installing the Skill is a one-time step that happens inside your agent, not the terminal — in Claude Code, for instance, you type `/plugin install` right in the chat. It's a little different per agent, so the [Agent Skill page](/v2/Agents/Agent-Skill) has the exact steps for Claude Code, Cursor, Codex, and others. Once it's installed, it sets up the CLI or MCP for you and turns plain English into commands. Then just ask:

    ```text theme={"system"}
    "Deposit 100 USDC into the IXS vault
    (0xc975a3EeF2e49F8eDdEf585340C43f15300fCB82) on BNB Chain, then show my position."

    "Request a redemption of my IXS vault shares on BNB, tell me when it's finalized,
    then withdraw my USDC."
    ```

    **MCP server.** The [Compass MCP server](/v2/Agents/MCP-Server) plugs into any MCP client (Claude Code, Cursor). The Skill can connect it for you, or you can add it yourself with your key as the `X-API-Key` header. Nothing to install — every Compass product becomes a tool the agent can call.

    **CLI.** The [`compass` CLI](/v2/Agents/CLI) is a command-line tool the agent runs in your terminal. The Skill installs it for you, or you can install it yourself; either way it reads the `COMPASS_API_KEY_AUTH` you set above. The IXS flow is:

    ```bash theme={"system"}
    # One-time: create your account on BNB, then send USDC on BNB to that address
    compass tokenized-assets create-account --sender 0xYourWallet --owner 0xYourWallet --chain bsc

    # Deposit into the IXS vault, then check your position
    compass tokenized-assets buy \
      --token-in USDC --token-out 0xc975a3EeF2e49F8eDdEf585340C43f15300fCB82 \
      --amount-in 1000 --slippage 0.005 --owner 0xYourWallet --chain bsc
    compass tokenized-assets positions --owner 0xYourWallet --chain bsc

    # Redeem, then poll until finalized
    compass tokenized-assets sell \
      --token-in 0xc975a3EeF2e49F8eDdEf585340C43f15300fCB82 --token-out USDC \
      --amount-in 500 --slippage 0.005 --owner 0xYourWallet --chain bsc
    compass tokenized-assets redemptions --owner 0xYourWallet --chain bsc --vault ixv1
    ```

    Each write command returns an unsigned transaction `{ to, data, value, gas }`. You sign and broadcast it yourself. From the terminal, use Foundry's `cast` with an encrypted keystore so no private key sits on the command line:

    ```bash theme={"system"}
    # one-time: import your key into an encrypted keystore named "my-keystore"
    cast wallet import my-keystore --interactive

    # sign and broadcast the tx the compass command returned
    cast send <to> <data> \
      --value <value> \
      --gas-limit <gas> \
      --rpc-url $BSC_RPC_URL \
      --account my-keystore
    ```

    <Warning>Pass the API's `gas` value through as `--gas-limit`. The transaction runs through your Tokenized Assets Account, which is a smart account, and `cast`'s own gas estimate can come in too low. When it does, the transaction reverts with `GS013`.</Warning>

    <Tip>`--dry-run` previews any `compass` command without sending it; `--help` lists the flags.</Tip>
  </Tab>

  <Tab title="Studio (demo)">
    <Info>
      The Studio is a demo for previewing the widget, not a frontend your users transact through. To offer this flow to your own users, embed the Compass widgets (`@compass-labs/widgets`) in your own app. See [Widgets](/v2/Products/Widgets).
    </Info>

    You can try the flow yourself in the [Compass Studio](https://studio.compasslabs.ai/tokenized-assets) (no API key needed), which opens on the Tokenized Assets widget. This is what the widget does:

    **Deposit**

    <Steps>
      <Step title="Connect a wallet">
        Click **Connect** and approve it in your wallet.
      </Step>

      <Step title="Switch to BNB Chain">
        Set the chain switcher to **BNB Chain**. The IXS vault only appears on BNB.
      </Step>

      <Step title="Deposit USDC">
        Tap **Deposit**, enter an amount, and confirm. This moves USDC from your wallet into your Tokenized Assets Account.
      </Step>

      <Step title="Buy the vault">
        Open the IXS vault, enter an amount, and confirm. Your USDC becomes vault shares. The balance shows under your holdings.
      </Step>
    </Steps>

    **Redeem**

    <Steps>
      <Step title="Request a redemption">
        Open your IXS holding, tap **Sell / Redeem**, enter an amount, and confirm.
      </Step>

      <Step title="Withdraw once it settles">
        The widget shows the request status. When it settles, tap **Withdraw** to send the USDC back to your wallet.
      </Step>
    </Steps>
  </Tab>
</Tabs>

## FAQ

<AccordionGroup>
  <Accordion title="Why hasn't my redeemed USDC arrived yet?" icon="clock">
    Redemptions settle asynchronously. The vault operator finalizes them on its own schedule, not instantly. Poll `GET /v2/tokenized_assets/redemptions` until the request reads `finalized`, then withdraw. There is no instant secondary market for this vault.
  </Accordion>

  <Accordion title="Does Compass hold my funds?" icon="lock">
    No. Every deposit, redemption, and withdrawal comes back as an unsigned transaction (or EIP-712 payload) that you sign with your own wallet.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={3}>
  <Card title="Tokenized Assets" icon="building-columns" href="/v2/Products/Tokenized-Assets">
    The product reference: equities, RWA yield, managed vaults, and deRWA.
  </Card>

  <Card title="Product Accounts" icon="wallet" href="/v2/Products/Accounts">
    How the per-product account that holds your vault shares works.
  </Card>

  <Card title="Gas Sponsorship" icon="gas-pump" href="/v2/Products/gas-sponsorship">
    Let users transact without holding BNB for gas.
  </Card>
</CardGroup>
