# sap_adrena_simulate_position

FREE dry-run tool (no x402 charge): simulates opening a perp position on Adrena by building the same instructions as the open position builder, then calling connection.simulateTransaction(). Returns Adrena program logs, compute units consumed, whether the position would succeed, and the pre-flight balance check — without serializing or returning transaction bytes. Use this to validate position parameters and diagnose on-chain failures before building a paid transaction. SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

Agent View of the PolicyLayer registry record for `sap_adrena_simulate_position`. HTML page: https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-simulate-position

## Facts

- Tool: `sap_adrena_simulate_position`
- Server: Sap (`https://mcp.sap.oobeprotocol.ai/mcp`) — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server.md
- Homepage: https://github.com/OOBE-PROTOCOL/sap-mcp
- Risk category: Execute (High risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: yes
- Parameters: 7 (6 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `side` | string | yes | Position side: long or short. |
| `owner` | string | yes | Position owner wallet public key (base58). This is the fee payer and signer. |
| `leverage` | number | yes | Leverage multiplier (e.g. 3 = 3x). |
| `poolName` | string | no | Pool to use. Default: main-pool. Use commodities-pool for XAU/XAG/WTI. |
| `principalToken` | string | yes | Asset to trade. Supported: JITOSOL, WBTC, BONK, plus XAU, XAG, WTI in the commodities pool. |
| `collateralToken` | string | yes | Collateral token. For longs must match principal (main pool) or be USDC (commodities pool). For shorts must be USDC. Supported: USDC, JITOSOL, WBTC, BONK. |
| `collateralAmount` | number | yes | Collateral amount in human-readable units (e.g. 10 = 10 JITOSOL or 10 USDC). |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "sap_adrena_simulate_position",
    "arguments": {
      "side": "<side>",
      "owner": "<owner>",
      "leverage": 0,
      "principalToken": "<principalToken>",
      "collateralToken": "<collateralToken>",
      "collateralAmount": 0
    }
  }
}
```

## Why sap_adrena_simulate_position is rated High

Simulates financial derivative transactions; potential for testing exploits or parameter manipulation before actual trades.

From the tool's own definition: "simulates opening perp position, building instructions, simulateTransaction(), validate parameters"

## Use case

AI agents invoke sap_adrena_simulate_position to trigger actions in Sap. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Sap:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "sap_adrena_simulate_position": {
      "limits": [
        {
          "counter": "sap_adrena_simulate_position_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Sap (374)

- `jupiter_cancelDCA` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/jupiter-canceldca.md
- `jupiter_cancelLimitOrder` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/jupiter-cancellimitorder.md
- `jupiter_cancelLimitOrders` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/jupiter-cancellimitorders.md
- `manifest_cancelOrder` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/manifest-cancelorder.md
- `metaplex-nft_revokeAuthority` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/metaplex-nft-revokeauthority.md
- `openbook_cancelOrder` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/openbook-cancelorder.md
- `sap_revoke_attestation` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-revoke-attestation.md
- `sap_revoke_feedback` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-revoke-feedback.md
- `spl-token_burn` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/spl-token-burn.md
- `blinks_confirmAction` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/blinks-confirmaction.md
- `blinks_executeAction` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/blinks-executeaction.md
- `jupiter_swapInstructions` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/jupiter-swapinstructions.md
- `magicblock_ensureCrank` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/magicblock-ensurecrank.md
- `magicblock_initializeMint` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/magicblock-initializemint.md
- `magicblock_login` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/magicblock-login.md
- `magicblock_requestRandomness` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/magicblock-requestrandomness.md
- `sap_adrena_build_add_limit_order` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-add-limit-order.md
- `sap_adrena_build_add_liquid_stake` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-add-liquid-stake.md
- `sap_adrena_build_add_liquidity` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-add-liquidity.md
- `sap_adrena_build_add_locked_stake` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-add-locked-stake.md
- `sap_adrena_build_cancel_limit_order` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-cancel-limit-order.md
- `sap_adrena_build_cancel_stop_loss` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-cancel-stop-loss.md
- `sap_adrena_build_cancel_take_profit` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-cancel-take-profit.md
- `sap_adrena_build_claim_stakes` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-claim-stakes.md
- `sap_adrena_build_close_commodity_long` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-close-commodity-long.md
- `sap_adrena_build_close_commodity_short` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-close-commodity-short.md
- `sap_adrena_build_init_user_staking` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-init-user-staking.md
- `sap_adrena_build_open_short` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-open-short.md
- `sap_adrena_build_position_package` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-position-package.md
- `sap_adrena_build_remove_liquid_stake` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-remove-liquid-stake.md
- …and 344 more: https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=oobe-protocol-labs-sap-mcp-server · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/oobe-protocol-labs-sap-mcp-server
