Skip to content

调研:Solana Blinks

Blinks(Blockchain Links)让链上交易可以在任何互联网平台上直接完成,无需打开 Dapp。


传统链上交易被锁在 Dapp 的复杂界面中。Blinks 让交易可以"嵌入"到任何网页中(如 Twitter),用户直接在卡片上点击就能完成链上操作。

graph LR
    subgraph "传统方式"
        T1["看到推文"] --> T2["打开 Dapp"] --> T3["连接钱包"] --> T4["操作交易"]
    end

    subgraph "Blinks 方式"
        B1["看到推文"] --> B2["推文内直接显示操作卡片"] --> B3["点击按钮 → 钱包签名 → 完成"]
    end

工作原理

四个角色

graph TB
    USER["👤 用户"]
    PLATFORM["🌐 平台<br/>(如 Twitter)"]
    CLIENT["🔍 Action Client<br/>(Blink / Phantom)<br/>爬取网页 → 检测 URL → 渲染卡片"]
    PROVIDER["⚙️ Action Provider<br/>(Dapp API 服务)<br/>返回元数据 → 处理交易"]

    USER -->|"浏览"| PLATFORM
    CLIENT -->|"检测 URL"| PLATFORM
    CLIENT -->|"获取元数据"| PROVIDER
    PROVIDER -->|"返回交易数据"| CLIENT
    CLIENT -->|"渲染 UI 卡片"| PLATFORM
    USER -->|"点击操作"| CLIENT

完整交互流程

sequenceDiagram
    participant User as 用户
    participant Twitter as Twitter
    participant Blink as Blink Client
    participant API as Action Provider
    participant Wallet as 钱包
    participant Solana as Solana

    User->>Twitter: 浏览包含 URL 的推文
    Blink->>Twitter: 检测帖子中的 URL
    Blink->>API: 匹配有效链接 → 获取 actions.json
    API-->>Blink: 返回 Action 元数据
    Blink->>Twitter: 渲染 UI 卡片嵌入 DOM
    User->>Blink: 点击操作按钮(如 "Vote Yes")
    Blink->>API: 请求交易数据
    API-->>Blink: 返回待签名交易
    Blink->>Wallet: 唤起钱包签名
    Wallet-->>User: 显示交易详情
    User->>Wallet: 确认签名 ✅
    Wallet->>Solana: 发送交易
    Solana-->>User: 交易完成 🎉

URL 解析流程

  1. 解析 Twitter 短链(t.co)获取真实 URL
  2. 判断是否为 interstitial URL(嵌入式链接)
  3. 读取目标域名的 actions.json 获取 API 映射规则
  4. 请求 Action API 获取渲染数据
  5. 渲染 React 组件

Action 响应结构

json
{
  "title": "Realms DAO Platform",
  "icon": "<url-to-image>",
  "description": "Vote on DAO governance proposals #1234.",
  "label": "Vote",
  "links": {
    "actions": [
      { "label": "Vote Yes",  "href": "/api/proposal/1234/vote?choice=yes" },
      { "label": "Vote No",   "href": "/api/proposal/1234/vote?choice=no" },
      { "label": "Abstain",   "href": "/api/proposal/1234/vote?choice=abstain" }
    ]
  }
}

安全机制

graph TB
    subgraph "接入安全"
        S1["应用必须经过审核"]
        S2["维护可信名单"]
    end

    subgraph "交易安全"
        S3["依托钱包已有的<br/>Dapp 合约检测能力"]
    end

多链支持

通过 HTTP 响应头 X-Blockchain-Ids 指定目标链:

Blockchain ID
以太坊主网eip155:1
Solana 主网solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp