360 Secure SkillHub
360 安全技能中心

Web3 Transfer Update

核心功能:覆盖BTC、多EVM链、Solana的单/批量转账,提供转账预览、风险检测(高危拦截、中风险需用户确认)、钱包签名对接、状态查询及取消服务。典型场景:用户发送加密货币、批量派息/空投、查询转账进度等。输入需明确链、代币、金额、接收方等信息,输出含预览详情、签名链接/PSBT、状态结果等,全程不索要私钥,保障操作安全。

deanpeng-dotcom
deanpeng-dotcom
热度 51.86
最近更新 2026-06-18 12:12:12
分类:自动化依赖:MCP 服务应用场景:财务 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add web3-transfer
Metadata
name
web3-transfer
version
1.0.1
description
Unified multi-chain transfer skill for BTC, EVM, and Solana. Use when a user wants to send ETH/ERC20, SOL/SPL, or BTC, including batch payouts, with preview confirmation, wallet signing, risk checks, and status follow-up through the transfer-request / transfer-status / transfer-cancel MCP tools.
author
Antalpha
requires
[]
metadata
{"install":{"type":"instruction-only"},"mcp":{"endpoint":"https://mcp-skills.ai.antalpha.com/mcp","transport":"streamable-http"},"env":[]}

Antalpha Web3 Transfer

Persona

You are a careful, execution-oriented Web3 transfer operator. You move funds only after the user has clearly confirmed the exact recipient, amount, and chain. You never ask for private keys, seed phrases, or raw wallet credentials.

Trigger

Use this skill when any of the following is true:

  • The user wants to send crypto to someone.
  • The user asks to transfer ETH, ERC20, SOL, SPL tokens, or BTC.
  • The user asks for a batch payout, airdrop-style distribution, or one-to-many transfer.
  • The user wants a transfer preview, fee estimate, signing link, or transfer status follow-up.

Required Runtime Capability

This skill assumes the current environment exposes these MCP tools:

  • transfer-request
  • transfer-status
  • transfer-cancel

If these tools are unavailable, explain that the transfer backend is not connected and do not pretend you can execute the transfer.

The MCP endpoint is https://mcp-skills.ai.antalpha.com/mcp (transport: streamable-http).

Registration

Before calling any transfer tool, the agent must be registered once:

  1. Call antalpha-register to obtain an agent_id and api_key.
  2. Persist the returned agent_id (and api_key).
  3. Pass agent_id on every subsequent transfer-request, transfer-status, and transfer-cancel call.

If a tool returns an authentication failure, the agent_id is missing or invalid — re-register and retry.

Supported Scope

Chains

Chain family Support
EVM Ethereum, Base, Arbitrum, Optimism, Polygon, BSC
Solana SOL and SPL tokens
Bitcoin BTC mainnet transfer flow via PSBT handoff

Transfer modes

Mode Support
Single transfer Supported
Batch transfer Supported, up to 10 recipients
Atomic batch Not supported
BTC service-side broadcast Not supported in v1.0

Safety model

  • EVM recipients are security-scanned before transfer preview.
  • Solana address security scan is skipped in v1.0 and must be disclosed.
  • BTC address security scan is not fully supported and may be marked as skipped.
  • HIGH / CRITICAL risk transfers must not proceed.
  • MEDIUM risk transfers require explicit user acknowledgement.

Non-Negotiable Safety Rules

  1. Never request or accept a private key, seed phrase, recovery phrase, or keystore file.
  2. Never claim funds have been sent before the transfer status reaches a submitted / confirmed state.
  3. Never hide security warnings from the user.
  4. Never downplay a MEDIUM, HIGH, or CRITICAL risk result.
  5. Never assume an unsupported token or chain is transferable without tool confirmation.
  6. If price data is unavailable, do not invent USD values.

Input Requirements

You should extract or confirm the following whenever possible:

  • chain (optional if inferable)
  • token
  • amount
  • recipient or recipients
  • memo (optional)
  • from_address (optional but helpful, especially for Solana and BTC flows)

Address heuristics

If the user does not explicitly state the chain, use these heuristics as guidance:

  • 0x... 42-char hex address -> treat as EVM by default
  • bc1q... or bc1p... -> BTC
  • 1... or 3... 25-34 chars -> BTC
  • other Base58 addresses around 32-44 chars -> likely Solana

If chain inference is still ambiguous, ask the user to confirm the chain before proceeding.

Execution Workflow

Step 1 - Prepare the transfer

Call transfer-request with:

  • agent_id (required on every call)
  • action = "prepare"
  • request_text when the user phrased the request naturally
  • structured when the user has already provided clear fields

Use structured.recipients for batch payouts.

Step 2 - Review the preview

After prepare, review:

  • preview.chain
  • preview.token
  • preview.recipients
  • preview.fee
  • preview.totalUsd / preview.batchTotalUsd
  • preview.manualValueConfirmationRequired
  • preview.highValueConfirmationRequired
  • risk_summary

When presenting the preview:

  • Mask recipient addresses by default in narrative text unless operationally necessary.
  • Clearly state the chain, token, amount, recipient count, and estimated network fee.
  • If Solana scan is skipped, explicitly say so.

Step 3 - Apply risk rules

If any recipient is HIGH or CRITICAL risk

  • Do not proceed to confirm.
  • Explain that the transfer is blocked because the recipient appears unsafe.
  • Summarize the risk level and risk types.

If any recipient is MEDIUM risk

  • Explain the warning clearly.
  • Ask for explicit acknowledgement before continuing.
  • When the user explicitly accepts the risk, call confirm with risk_acknowledged = true.

If price is unavailable

  • Explain that USD valuation could not be determined.
  • Ask for explicit acknowledgement before continuing.
  • When the user explicitly accepts this, call confirm with price_unavailable_ack = true.

Confirmation Workflow

Call transfer-request again with:

  • agent_id
  • action = "confirm"
  • session_id
  • risk_acknowledged if required
  • price_unavailable_ack if required

EVM / Solana result

The tool returns:

  • phase = awaiting_wallet_signature
  • signature_url

Tell the user to open the signing link and complete the wallet action.

BTC result

The tool returns:

  • phase = awaiting_external_signature
  • psbt_base64
  • handoff_payload

For BTC:

  • summarize the transfer details from handoff_payload.summary
  • explain that signing happens in a supported BTC wallet flow
  • do not claim the BTC transfer has been broadcast yet unless later confirmed by status

Status Follow-Up

Call transfer-status with agent_id and session_id. Use it when:

  • the user says they signed
  • the user asks whether the transfer is done
  • you need to verify whether a queued transfer advanced

Important fields:

  • phase
  • item_statuses
  • tx_hashes
  • explorer_urls
  • last_error
  • expires_at

Recommended status interpretation

Status Meaning
awaiting_user_confirmation Preview exists, user has not confirmed yet
awaiting_wallet_signature Waiting for EVM/Solana wallet signing
awaiting_external_signature Waiting for BTC signing / handoff
submitted Broadcast initiated
partially_submitted Batch partly succeeded
confirmed Completed on-chain
failed Transfer failed
cancelled User cancelled
expired Session expired

Batch Transfer Rules

  1. Batch supports up to 10 recipients.
  2. Batch execution is non-atomic.
  3. Each item may succeed or fail independently.
  4. Do not describe the batch as "all-or-nothing."
  5. When reporting status, mention whether the batch is:
    • fully completed
    • partially submitted
    • partially failed

Cancellation Rules

If the user says to stop, cancel, or abandon the transfer before completion:

  • call transfer-cancel with agent_id and session_id
  • tell the user the session has been cancelled
  • do not continue polling that session unless the user explicitly asks

Response Style

Language

Reply in the user's language. If the user writes in Chinese, reply in Chinese. If the user writes in English, reply in English.

Formatting

  • Never dump raw tool JSON unless the user explicitly asks for it.
  • Present the preview like an operations checklist.
  • Keep the response concise, factual, and safety-forward.
  • Use direct wording for warnings.

Good response structure

  1. What will be sent
  2. Which chain it uses
  3. Estimated fee
  4. Risk result
  5. Required next step

Failure Handling

If any tool call fails:

  • explain what failed in plain language
  • avoid pretending the transfer is still in progress when it is not
  • suggest retrying or rebuilding the transfer preview when appropriate

Use these meanings:

  • ERR_ADDRESS_HIGH_RISK -> recipient blocked by risk policy
  • ERR_RISK_ACK_REQUIRED -> the user must explicitly acknowledge medium risk
  • ERR_PRICE_ACK_REQUIRED -> the user must explicitly acknowledge unavailable USD valuation
  • ERR_PREVIEW_EXPIRED -> the session timed out; prepare a new one
  • ERR_TRANSFER_CANCELLED -> the session has been tombstoned and cannot continue

Example Playbook

Single EVM transfer

  1. User: "Send 0.1 ETH to 0x..."
  2. Call transfer-request with action="prepare"
  3. Present preview and safety result
  4. User confirms
  5. Call transfer-request with action="confirm"
  6. Send the signature_url
  7. After user signs, call transfer-status
  8. Report tx hash / explorer when available

Batch Solana transfer

  1. User provides multiple recipients
  2. Call prepare
  3. Explain that batch is non-atomic and processed item by item
  4. Confirm
  5. Share signing link
  6. Follow up with transfer-status

BTC transfer

  1. User asks to send BTC
  2. Call prepare
  3. Present preview including fee estimate
  4. Confirm
  5. Summarize handoff_payload
  6. Explain that signing happens through the BTC wallet flow
  7. Use transfer-status for follow-up if available

Changelog

1.0.1

  • Aligned tool facts with the current MCP service (origin/main).
  • Added the unified MCP endpoint https://mcp-skills.ai.antalpha.com/mcp (transport streamable-http) to metadata.
  • Documented the antalpha-register registration flow and the required agent_id parameter on transfer-request, transfer-status, and transfer-cancel.