# sap_phoenix_build_place_limit_order

Build an unsigned Phoenix limit order transaction. Pass authority, symbol, side, priceUsd (human limit price, e.g. "106.50"), baseUnits (human size). Raw priceInTicks/numBaseLots also accepted. Returns transactionBase64 for browser approval. Builder fee applies. SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. 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_phoenix_build_place_limit_order`. HTML page: https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-phoenix-build-place-limit-order

## Facts

- Tool: `sap_phoenix_build_place_limit_order`
- 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: Financial (Critical risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: yes
- Parameters: 12 (3 required)
- Recommended policy verdict: Approval-gated

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `side` | string | yes | Order side: bid (buy) or ask (sell) |
| `size` | string | no | Alias of baseUnits |
| `price` | string | no | Alias of priceUsd |
| `symbol` | string | yes | Market symbol (e.g. SOL) |
| `priceUsd` | string | no | Human limit price in USD (e.g. "106.50") |
| `authority` | string | yes | Trader authority public key (base58) |
| `baseUnits` | string | no | Human size in base units (e.g. "0.01") |
| `holderTier` | string | no | Caller $STEVE holder tier — lowers the builder fee (bronze −10%, silver −20%, gold −30%, platinum −50%). Omit for the standard fee. |
| `limitPrice` | string | no | Alias of priceUsd |
| `reduceOnly` | boolean | no | Reduce-only: order can only decrease an existing position (OrderFlags.ReduceOnly) |
| `numBaseLots` | string | no | Raw base lots (overrides baseUnits) |
| `priceInTicks` | string | no | Limit price in ticks (raw integer; overrides priceUsd) |

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_phoenix_build_place_limit_order",
    "arguments": {
      "side": "<side>",
      "symbol": "<symbol>",
      "authority": "<authority>"
    }
  }
}
```

## Why sap_phoenix_build_place_limit_order is rated Critical

Builds financial order transactions committing to market trades with real monetary value.

From the tool's own definition: "Phoenix limit order transaction, side, priceUsd, baseUnits"

Risk signals: High parameter count (15 properties)

## Use case

AI agents use sap_phoenix_build_place_limit_order to commit financial operations through Sap, usually the final step of a payment, billing, or trading workflow. A call moves real money.

## Recommended policy (PolicyLayer)

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

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "sap_phoenix_build_place_limit_order": {
      "deny_if": [
        {
          "conditions": [],
          "on_deny": "Requires human approval."
        }
      ]
    }
  }
}
```

## Other tools on Sap (452)

- `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_liquid_stake` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-add-liquid-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_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_long` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-open-long.md
- `sap_adrena_build_set_stop_loss` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-set-stop-loss.md
- `sap_adrena_build_swap` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-swap.md
- `sap_adrena_build_trailing_stop` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-trailing-stop.md
- `sap_adrena_simulate_position` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-simulate-position.md
- `sap_build_agent_lifecycle_transaction` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-build-agent-lifecycle-transaction.md
- `sap_meteora_build_launchpad_migration` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-meteora-build-launchpad-migration.md
- `sap_meteora_build_launchpad_trade` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-meteora-build-launchpad-trade.md
- …and 422 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
