Solana Blinks Actions: Tương Tác Blockchain Trên Mọi Nơi

Solana Blinks Actions: Tương Tác Blockchain Trên Mọi Nơi

Solana Blinks (Blockchain Links) và Actions là chuẩn mới chuyển đổi trải nghiệm Web3 từ “kết nối ví → ký giao dịch” thành “click link → hành động on-chain ngay lập tức”. Được công bố năm 2024, Blinks cho phép nhúng bất kỳ Solana Action nào (swap, vote, mint, pay, stake) vào URL, button, QR code hoặc embed — hoạt động trên mọi platform hỗ trợ hyperlink.

Solana logo chính thức minh họa brand identity blockchain
Solana logo chính thức minh họa brand identity blockchain

Blinks và Actions Là Gì

Actions (Solana Actions) là spec chuẩn hóa để định nghĩa một hành động on-chain dưới dạng API REST. Mỗi Action trả về metadata (title, icon, description) và các trường transaction cần thiết. Client (ví, bot, website) đọc metadata, hiển thị UI, user xác nhận, client sign và broadcast transaction.

Blinks (Blockchain Links) là URL đặc biệt encode Action ID và parameters. Format: https://dial.to/?action=solana-action:. Khi user click Blink link, wallet/dial.to resolve Action, render UI, user sign — hoàn thành trong một luồng liền mạch.

Thành Phần Vai Trò
Action Provider Server expose GET /actions/ (metadata) và POST /actions/ (transaction)
Blink URL Link chia sẻ encode action + params (query string hoặc path)
Client (Wallet/Dial.to) Resolve Blink → fetch Action metadata → render UI → sign tx → broadcast
User Click link, review details, approve signature trong wallet

Kiến Trúc Chi Tiết

1. Action Specification (GET)

Endpoint: GET https://api.example.com/actions/swap

{
  "title": "Swap SOL → USDC",
  "icon": "https://example.com/swap-icon.png",
  "description": "Swap 1 SOL for USDC at current market rate",
  "label": "Swap",
  "links": {
    "actions": [
      {
        "label": "Confirm Swap",
        "href": "/actions/swap?amount=1&input=SOL&output=USDC",
        "parameters": [
          {"name": "amount", "label": "SOL Amount", "type": "number", "required": true},
          {"name": "slippage", "label": "Slippage %", "type": "number", "required": false}
        ]
      }
    ]
  }
}

2. Transaction Building (POST)

Client POST đến href với parameters, server trả về unsigned transaction(s):

POST /actions/swap?amount=1&input=SOL&output=USDC
{
  "account": "user_wallet_public_key"
}

Response:
{
  "transaction": "base64_encoded_unsigned_transaction",
  "message": "Swap 1 SOL → USDC (est. 145.23 USDC)"
}

3. Blink URL Format

# Dial.to format (canonical)
https://dial.to/?action=solana-action:https://api.example.com/actions/swap?amount=1&input=SOL&output=USDC

# Direct action URL (if client supports)
solana-action:https://api.example.com/actions/swap?amount=1&input=SOL&output=USDC
Blockchain workflow diagram minh họa luồng Blink từ user click đến on-chain confirmation
Blockchain workflow diagram minh họa luồng Blink từ user click đến on-chain confirmation

Các Loại Actions Phổ Biến

  • Token Swap: Jupiter, Orca, Raydium actions — swap ngay trong tweet/email
  • Governance Vote: Realms, SPL Governance — vote proposal bằng 1 click
  • NFT Mint/Buy: Magic Eden, Tensor — mint collection hoặc buy listing
  • Payments: Solana Pay integration — pay invoice, tip creator, donate
  • Staking: Marinade, Jito, Lido — stake/unstake SOL liquid staking
  • DeFi Actions: Borrow/lend (Kamino, MarginFi), provide LP, claim rewards
  • Identity/Social: Follow on Farcaster, claim handle, verify credential

Ví Dụ Code: Tạo Action Swap Đơn Giản

Dưới đây là implement tối giản cho Action swap SOL→USDC dùng Jupiter API:

# Python (FastAPI) - Action Provider
from fastapi import FastAPI, Query
from pydantic import BaseModel
import httpx, base64

app = FastAPI()

class ActionResponse(BaseModel):
    title: str
    icon: str
    description: str
    label: str
    links: dict

@app.get("/actions/swap")
async def get_swap_action():
    return ActionResponse(
        title="Swap SOL → USDC",
        icon="https://example.com/jupiter-icon.png",
        description="Instant swap SOL for USDC via Jupiter Aggregator",
        label="Swap",
        links={
            "actions": [{
                "label": "Confirm Swap",
                "href": "/actions/swap/execute",
                "parameters": [
                    {"name": "amount", "label": "SOL Amount", "type": "number", "required": True},
                    {"name": "slippage", "label": "Slippage %", "type": "number", "required": False, "default": 0.5}
                ]
            }]
        }
    )

@app.post("/actions/swap/execute")
async def execute_swap(account: str, amount: float = Query(...), slippage: float = Query(0.5)):
    # 1. Fetch quote from Jupiter
    async with httpx.AsyncClient() as client:
        quote_resp = await client.get(
            "https://quote-api.jup.ag/v6/quote",
            params={
                "inputMint": "So11111111111111111111111111111111111111112",  # SOL
                "outputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",  # USDC
                "amount": int(amount * 1e9),  # lamports
                "slippageBps": int(slippage * 100)
            }
        )
        quote = quote_resp.json()
    
    # 2. Get swap transaction
    swap_resp = await client.post(
        "https://quote-api.jup.ag/v6/swap",
        json={"quoteResponse": quote, "userPublicKey": account}
    )
    swap_tx = swap_resp.json()["swapTransaction"]
    
    return {"transaction": swap_tx, "message": f"Swap {amount} SOL → USDC"}

# Blink URL để chia sẻ:
# https://dial.to/?action=solana-action:https://your-api.com/actions/swap?amount=0.5

Tích Hợp Vào Ứng Dụng

1. Website/Blog: Button Blink


  

2. Social Media: Tweet với Blink

Twitter/X hỗ trợ render Blink card khi detect URL dial.to. User click card → mở wallet popup → sign.

3. Email/Newsletter: QR Code Blink

Generate QR từ Blink URL, user scan bằng mobile wallet (Phantom, Backpack, Solflare) → sign ngay.

4. Discord/Telegram Bot: Slash Command

/swap sol 1 usdc
# Bot reply với Blink button hoặc direct link
Blockchain process diagram minh họa transaction flow từ Action POST đến on-chain
Blockchain process diagram minh họa transaction flow từ Action POST đến on-chain

So Với Solana Pay Và Wallet Adapter

Tiêu Chí Solana Pay Wallet Adapter Blinks/Actions
Scope Payments only Kết nối ví + sign tx Bất kỳ action on-chain nào
Shareability QR code, URL Chỉ trong app URL, button, QR, embed — universal
Discoverability Thấp Thấp Cao (metadata + Blink registry)
Composability Khó Manual Chuẩn REST, dễ compose
Client Support Wallets implement React/JS apps Wallets, Dial.to, bots, browsers

Lợi Ích Cho Developer Và User

  • Zero-friction UX: Không cần connect wallet, switch network, copy address — click và sign
  • Distribution miễn phí: Blink là URL, lan truyền tự nhiên qua social, email, QR, NFC
  • Composability: Actions có thể chain nhau (swap → stake → vote trong 1 flow)
  • Analytics: Track click-through, conversion, drop-off tại từng step
  • Multi-wallet: Phantom, Backpack, Solflare, Glow, Brave Wallet đều hỗ trợ

Thách Thức Và Lưu Ý

  • Trust: User phải trust Action provider (tx được build bởi server). Cần verify transaction trước khi sign
  • Simulation: Wallet nên simulate tx hiển thị balance changes trước khi user approve
  • Rate limiting: Action providers cần protect khỏi spam/abuse
  • Mobile UX: Deep link vào wallet app cần handle tốt trên iOS/Android
  • Spec evolution: Spec vẫn đang phát triển (v1/v2), breaking changes có thể xảy ra

Tương Lai: Actions Registry Và Discovery

Solana Foundation đang xây dựng Actions Registry — catalog searchable các Actions đã verify, tương tự npm cho Web3. Developer publish Action, user discover qua category, rating, audit status. Kết hợp với Agent Registry (AI agents discover và execute Actions tự động) mở ra tiềm năng agentic payments trên Solana.

Tài Liệu Tham Khảo

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

DeFi 2.0: Từ Yield Farming đến Real Yield và Liquid Staking Cách tài phi tập trung mới phát triển

Sau đợt bùng nổ “DeFi Summer” 2020 với phénomène yield farming và token incentive absurd (APY 1.000%+), hệ sinh thái tài phi tập trung (DeFi) đã trải qua giai đoạn…

Xem thêm

Bitcoin Lightning Network: Giải Pháp Mở Rộng Layer-2 Cho Thanh Toán Nhanh

Bitcoin Lightning Network là giải pháp layer-2 quan trọng nhất giúp Bitcoin vượt qua hạn chế khả năng mở rộng (scalability) của blockchain layer-1. Với thiết kế payment channel off-chain,…

Xem thêm

Binance Agent OS: AI agent tự động giao dịch crypto trên subaccount sandbox

Binance, sàn giao dịch crypto lớn nhất thế giới với hơn 300 triệu người dùng đăng ký, vừa ra mắt Agent OS — nền tảng cho phép AI agent tự…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất