# magicblock_transfer

Build an unsigned SPL token transfer (public or private) through an Ephemeral Rollup. Supports base/ephemeral source and destination, delayed settlement, split transfers, and gasless mode. Private mode defaults: minDelayMs=0, maxDelayMs=0, split=1 — override for delayed or split settlements. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Builder fee applies. SAP MCP execution guidance: Intent: local-signer write workflow. 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 `magicblock_transfer`. HTML page: https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/magicblock-transfer

## Facts

- Tool: `magicblock_transfer`
- 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 (5 required)
- Recommended policy verdict: Approval-gated

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `to` | string | yes | Recipient wallet pubkey |
| `from` | string | yes | Sender wallet pubkey |
| `memo` | string | no | Optional memo appended to the transaction |
| `mint` | string | yes | SPL mint pubkey |
| `split` | number | no | Private only. Number of queue entries to split across (1-15, default 1) |
| `amount` | number | yes | Base-unit amount to transfer (integer, minimum 1) |
| `legacy` | boolean | no | Skip lookup-table compilation, return a legacy transaction (default false) |
| `cluster` | string | no | Cluster: 'mainnet', 'devnet', or custom RPC URL |
| `gasless` | boolean | no | When true, uses configured sponsor as fee payer (default false) |
| `authToken` | string | no | Bearer token from login (required for private transfers) |
| `toBalance` | string | yes | Where the recipient should receive funds |
| `validator` | string | no | Optional ER validator pubkey |

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": "magicblock_transfer",
    "arguments": {
      "to": "<to>",
      "from": "<from>",
      "mint": "<mint>",
      "amount": 0,
      "toBalance": "<toBalance>"
    }
  }
}
```

## Why magicblock_transfer is rated Critical

Moves cryptocurrency tokens and commits financial obligations via blockchain transactions.

From the tool's own definition: "SPL token transfer, payments finalize transaction, builder fee applies."

Risk signals: High parameter count (20 properties)

## Use case

AI agents use magicblock_transfer 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": {
    "magicblock_transfer": {
      "deny_if": [
        {
          "conditions": [],
          "on_deny": "Requires human approval."
        }
      ]
    }
  }
}
```

## 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
