LINE區塊鏈現況:Kaia、Unifi與在LINE上開發Web3(2026)
LINE的區塊鏈先轉為Finschia,再與Klaytn合併成Kaia。本文整理2026年10月還存在的服務(Kaia、LINE NEXT的Unifi)、在LINE裡提供Web3功能的做法,以及從智慧合約、錢包綁定到LINE通知的正確最小實作。

#重點整理:2026年的LINE區塊鏈
LINE Blockchain現在已經不是獨立運作的網路。主網資料在2022年12月移轉到Finschia,LINK幣在2023年5月更名為FNSA;2024年,Finschia再與Kakao發起的Klaytn合併為Kaia,這條相容EVM的區塊鏈主網於2024年8月29日上線。LINE旗下的Web3公司LINE NEXT目前經營Unifi,一個可以在LINE裡開啟的穩定幣錢包,並在2026年整合了Dapp Portal與Mini Dapps。至於日本LINE App內的虛擬資產交易服務LINE BITMAX,已於2026年6月1日結束服務。
對開發者來說,重點有三個:
- 沒有所謂的「LINE區塊鏈API」。 Messaging API、LIFF與LINE MINI App都沒有錢包、代幣或NFT功能,所有鏈上邏輯都是你自己的程式碼。
- 進入LINE的路有兩條。 申請加入LINE NEXT的Unifi Apps計畫,或自己開發LIFF應用程式/LINE MINI App,再自行串接Kaia或其他EVM鏈的錢包。
- 很多「區塊鏈集點」的點子,不用鏈反而做得更好。 集點卡、點數和優惠券用資料庫做更便宜也更簡單(請見下方「什麼情況不需要區塊鏈」)。
本文只寫我們在官方頁面查證過的事實,資料時間為2026年10月。如果想直接委託開發,請參考我們的LINE MINI App/LIFF開發服務。
#時間軸:從LINK Chain到Kaia
| 時間 | 發生什麼事 | 資料來源 |
|---|---|---|
| 2018年8月 | LINE發表第一個代幣LINK與自有區塊鏈網路LINK Chain。LINK不做ICO,而是作為使用LINE服務的獎勵發放;日本居民改拿「LINK Point」 | LINE |
| 2019年 | 由LINE Xenesis營運、內建於LINE App的虛擬資產交易服務LINE BITMAX在日本上線 | LY Corporation |
| 2022年12月22日 | 以Cosmos SDK打造的Finschia上線,承接原LINE Blockchain主網的狀態 | Kaia docs |
| 2023年5月 | Finschia Foundation(2023年3月由LINE Tech Plus成立)完成移轉到Finschia主網,並將LINK(LN)更名為FINSCHIA(FNSA) | Finschia Foundation |
| 2024年2月15日 | Klaytn與Finschia的持有人及治理成員通過合併提案(KGP-25/FGP-23) | Kaia blog |
| 2024年8月29日 | Kaia主網上線。KLAY餘額直接變成KAIA;FNSA可透過Kaia Portal以1 FNSA=148.079656 KAIA兌換 | Kaia blog、Kaia docs |
| 2025年1月22日 | LINE NEXT在LINE推出以Kaia為基礎的Mini Dapps與Dapp Portal | LINE |
| 2026年3月9日 | LINE NEXT正式推出穩定幣錢包Unifi(2月12日起Beta),整合Dapp Portal與Mini Dapps | LINE |
| 2026年6月1日 | LINE BITMAX結束服務 | LY Corporation |
FNSA換KAIA的服務當初公告為自Kaia上線起提供一年。如果你還持有FNSA,請先到Kaia Portal和你使用的交易所確認最新狀態。
#現在還有哪些服務(2026年10月)
| 是什麼 | 什麼情況跟你有關 | |
|---|---|---|
| Kaia | 相容EVM的Layer 1區塊鏈,原生幣為KAIA,主網Chain ID 8217,Kairos測試網1001。Kaia 2026年的更新重點是亞洲的穩定幣結算與鏈上金融 | 想用LINE NEXT錢包使用者已經在用的鏈 |
| Unifi(LINE NEXT) | 可在LINE裡開啟的非託管穩定幣錢包,可用LINE、Apple、Google或Naver登入,支援USD₮,並整合了原本的Dapp Portal與Mini Dapps | 想讓應用程式出現在Unifi使用者面前,並提供任務與獎勵 |
| LINE MINI App/LIFF | LINE讓網頁應用程式在LINE裡開啟的平台 | 使用者體驗由你打造,區塊鏈邏輯也是你自己寫 |
| Messaging API | 從你的LINE官方帳號發送訊息 | 想在鏈上事件發生時通知顧客 |
| LINE BITMAX | 已於2026年6月1日結束服務 | (沒有可以使用的基礎) |
Unifi的開發者網站developers.unifi.me將相關服務稱為Unifi Apps,包括錢包SDK(@linenext/dapp-portal-sdk),必須先送出Unifi Apps申請並同意條款才會拿到Client ID;以及Mission & Reward API:使用者完成你應用程式裡的任務後,由Unifi的獎勵錢包直接發放獎勵。這個SDK的設計是在已註冊網域的LINE MINI App或LIFF應用程式中使用。
#讓LINE使用者用到Web3功能的三種做法
| Unifi Apps(LINE NEXT) | 自己的LIFF/LINE MINI App+錢包 | 只做訊息通知 | |
|---|---|---|---|
| 要做什麼 | 使用Unifi Apps SDK和/或Mission & Reward API的網頁應用程式 | 在LINE裡開啟的網頁應用程式,加上錢包串接 | 由鏈上事件觸發的機器人訊息 |
| 使用的鏈 | Kaia | Kaia或任何你選的EVM鏈 | 不限 |
| 審核 | Unifi Apps申請、SDK條款、網域註冊 | LINE MINI App政策;想取得認證就要通過LY的審查 | 一般LINE官方帳號規範 |
| 使用者錢包 | Unifi錢包 | 你串接的錢包 | 不需要 |
| 適合 | 想爭取Unifi使用者與穩定幣獎勵的遊戲和應用程式 | 自有品牌的會員卡、票券或證書 | 「您的會員卡已發行」「晚上8點開賣」 |
選擇第二種做法時要注意:
- LIFF瀏覽器是WebView(iOS用WKWebView,Android用Android WebView),所以不能用瀏覽器擴充功能型的錢包。請改用內嵌式錢包SDK或WalletConnect類型的連線;Kaia文件列出了Reown、Web3Auth、Privy與Particle等函式庫。
- 新的應用程式請做成LINE MINI App。 因為LIFF將整合進LINE MINI App品牌,LINE從2025年2月起就建議這麼做。LINE MINI App頻道可選日本、泰國、台灣,而且從2026年3月11日起,在台灣和泰國只要符合政策資格,任何人都能發布未認證的MINI App。服務地區、認證與審查細節請看LINE MINI App完整說明。
- 設計代幣功能前先讀政策。 截至2026年10月,LINE MINI App政策沒有專門針對加密資產的條款,但不接受博弈相關業者,以及未經LY認可的募款、群眾募資等籌資行為,也禁止明顯煽動投機或射倖心理的內容,並要求遵守Apple與Google的政策。要在MINI App裡加入交易、具金錢價值的獎勵或代幣銷售,請先向LY確認。
#開發者必知的Kaia基礎
| 主網 | Kairos測試網 | |
|---|---|---|
| Chain ID | 8217 | 1001 |
| 公開RPC(僅供測試) | https://public-en.node.kaia.io | https://public-en-kairos.node.kaia.io |
| 區塊瀏覽器 | kaiascan.io | kairos.kaiascan.io |
| 測試幣 | — | faucet.kaia.io(每個帳號每24小時可領一次) |
- Kaia是Klaytn的硬分叉。 Chain ID沒有改變,Baobab測試網更名為Kairos,Cypress改稱Mainnet。JSON-RPC方法改用
kaia_命名空間,klay_仍可使用,也支援eth_命名空間。 - 相容EVM。 Solidity、Hardhat、ethers.js和MetaMask的用法跟在Ethereum上一樣。Kaia文件說明其出塊時間為1秒,交易可立即確定(immediate finality)。
- 手續費是浮動的。 Kaia硬分叉之後,基本費用(base fee)會逐區塊調整,也可以另加優先費用。請讓ethers.js自動估算,不要照抄舊Klaytn教學裡固定的
gasPrice: 250000000000(250 gkei)(Kaia docs)。 - 代幣標準。 Kaia有自己的KIP-7(同質化代幣)與KIP-17(NFT)標準,實作在由OpenZeppelin分叉而來的Kaia Contracts;一般的ERC-20與ERC-721合約也能直接部署。
- 公開節點不適合正式環境。 Kaia說明這些端點僅供測試與開發,不保證可用性,也不應用於商業用途(公開RPC列表)。正式上線請使用節點服務商或自行架設端點節點。
#實作範例:與LINE綁定的NFT會員卡
情境:一家咖啡店要發NFT會員卡給熟客。顧客打開咖啡店的LINE MINI App、連結錢包、領取會員卡,接著咖啡店的LINE官方帳號在聊天室通知發卡完成。
- MINI App執行
liff.init()並取得使用者的ID Token - 伺服器發出一次性nonce與要簽署的訊息
- 錢包簽署這段訊息
- 伺服器向LINE驗證ID Token、用ethers.js驗證簽章,然後把LINE使用者ID與錢包地址綁定儲存
- 伺服器用自己的鑄造金鑰鑄造會員卡
- 交易確認後,LINE官方帳號發送訊息
#步驟1:智慧合約(OpenZeppelin v5、Hardhat 2)
mkdir membership-pass && cd membership-pass
npm init -y
npm install --save-dev hardhat@hh2 @nomicfoundation/hardhat-toolbox@hh2 dotenv
npm install @openzeppelin/contracts
npx hardhat init
hh2標籤會安裝Hardhat 2,也就是Kaia官方Hardhat教學使用的版本;Hardhat 3的設定檔格式不同。
// contracts/MembershipPass.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
contract MembershipPass is ERC721, Ownable {
uint256 private _nextTokenId;
string private _base;
constructor(address initialOwner, string memory baseURI)
ERC721("Cafe Membership Pass", "PASS")
Ownable(initialOwner)
{
_base = baseURI;
}
function mintTo(address to) external onlyOwner returns (uint256 tokenId) {
tokenId = _nextTokenId++;
_safeMint(to, tokenId);
}
function _baseURI() internal view override returns (string memory) {
return _base;
}
}
// hardhat.config.ts
import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
import "dotenv/config";
const accounts = process.env.DEPLOYER_PRIVATE_KEY ? [process.env.DEPLOYER_PRIVATE_KEY] : [];
const config: HardhatUserConfig = {
solidity: "0.8.28",
networks: {
kairos: {
url: process.env.KAIROS_RPC_URL ?? "https://public-en-kairos.node.kaia.io",
chainId: 1001,
accounts,
},
kaia: {
url: process.env.KAIA_RPC_URL ?? "",
chainId: 8217,
accounts,
},
},
};
export default config;
// scripts/deploy.ts
import { ethers } from "hardhat";
async function main() {
const [deployer] = await ethers.getSigners();
const pass = await ethers.deployContract("MembershipPass", [
deployer.address,
"https://example.com/pass/",
]);
await pass.waitForDeployment();
console.log("MembershipPass:", await pass.getAddress());
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
先用faucet領到的測試KAIA,以npx hardhat run scripts/deploy.ts --network kairos部署到測試網。設定檔裡刻意不寫gasPrice。
#步驟2:在LINE MINI App證明使用者是誰、擁有哪個錢包
// lib/link-wallet.ts(在LIFF瀏覽器中執行)
import liff from "@line/liff";
import { BrowserProvider, type Eip1193Provider } from "ethers";
export async function linkWallet(walletProvider: Eip1193Provider) {
await liff.init({ liffId: process.env.NEXT_PUBLIC_LIFF_ID! });
if (!liff.isLoggedIn()) {
liff.login();
return;
}
const idToken = liff.getIDToken(); // 需要openid scope
if (!idToken) throw new Error("No ID token");
const { nonce, message } = await fetch("/api/wallet/nonce", { method: "POST" }).then((r) => r.json());
const signer = await new BrowserProvider(walletProvider).getSigner();
const signature = await signer.signMessage(message);
const res = await fetch("/api/wallet/link", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ idToken, address: await signer.getAddress(), nonce, signature }),
});
if (!res.ok) throw new Error("Wallet link failed");
}
walletProvider來自你選用的錢包SDK。/api/wallet/nonce應回傳隨機nonce與要簽署的完整文字,在伺服器端只保存幾分鐘且只能使用一次。千萬不要把liff.getProfile()的個人資料或使用者ID當成身分證明傳給伺服器;LINE文件的做法是傳送ID Token,由伺服器驗證(LIFF文件)。
#步驟3:伺服器兩項都驗證,再進行綁定
// app/api/wallet/link/route.ts
import { NextResponse } from "next/server";
import { isAddress, verifyMessage } from "ethers";
import { consumeNonce, saveWalletLink } from "@/lib/wallet-store"; // 你自己的儲存層
export async function POST(req: Request) {
const { idToken, address, nonce, signature } = await req.json();
if (!isAddress(address)) return NextResponse.json({ error: "Bad address" }, { status: 400 });
// 1. 請LINE驗證ID Token,client_id = LINE MINI App/LIFF頻道的Channel ID
const verify = await fetch("https://api.line.me/oauth2/v2.1/verify", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({ id_token: idToken, client_id: process.env.LINE_LOGIN_CHANNEL_ID! }),
});
if (!verify.ok) return NextResponse.json({ error: "Invalid ID token" }, { status: 401 });
const { sub: lineUserId } = await verify.json();
// 2. nonce必須存在、未過期且未使用,並回傳當初發出的訊息
const message = await consumeNonce(nonce);
if (!message) return NextResponse.json({ error: "Expired nonce" }, { status: 401 });
// 3. 錢包簽署的必須正是這段訊息
if (verifyMessage(message, signature).toLowerCase() !== address.toLowerCase()) {
return NextResponse.json({ error: "Signature mismatch" }, { status: 401 });
}
await saveWalletLink({ lineUserId, address });
return NextResponse.json({ ok: true });
}
#步驟4:鑄造會員卡,再用LINE通知顧客
// lib/issue-pass.ts(僅在伺服器端執行)
import { Contract, JsonRpcProvider, Wallet, type ContractTransactionReceipt } from "ethers";
import { messagingApi } from "@line/bot-sdk";
const provider = new JsonRpcProvider(process.env.KAIA_RPC_URL);
const minter = new Wallet(process.env.MINTER_PRIVATE_KEY!, provider);
const pass = new Contract(
process.env.PASS_ADDRESS!,
[
"function mintTo(address to) returns (uint256)",
"event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)",
],
minter,
);
const line = new messagingApi.MessagingApiClient({
channelAccessToken: process.env.LINE_CHANNEL_ACCESS_TOKEN!,
});
export async function issuePass(lineUserId: string, address: string) {
const tx = await pass.mintTo(address);
const receipt: ContractTransactionReceipt | null = await tx.wait();
if (!receipt) throw new Error("Transaction not confirmed");
const transfer = receipt.logs
.map((log) => pass.interface.parseLog(log))
.find((event) => event?.name === "Transfer");
await line.pushMessage({
to: lineUserId,
messages: [{ type: "text", text: `您的會員卡 #${transfer?.args.tokenId} 已發行完成。` }],
});
}
實際專案最常卡關的三個細節:
- 使用者ID依提供者(Provider)而不同。 ID Token裡的
sub,是MINI App頻道所屬提供者底下的使用者ID。只有當兩個頻道屬於同一個提供者,而且顧客已加入你的LINE官方帳號好友、沒有封鎖時,Messaging API頻道才能對這個ID推播。 - 推播訊息會消耗則數。 每則推播都會計入LINE官方帳號每月的訊息則數;回覆顧客傳來的訊息(Reply)則不計入。台灣、日本、泰國的方案請參考LINE官方帳號費用指南。
- 已認證的MINI App也可改用服務訊息, 但只能用來確認或回應使用者的操作,不能發促銷內容,而且僅限已認證的MINI App。
如果還不熟悉Webhook與Channel Access Token,請從LINE Messaging API教學和LIFF應用程式開發指南開始。
#資安與法規
- 金鑰。 部署與鑄造用的私鑰請存放在Secrets Manager或KMS,絕對不要放進前端程式碼或
NEXT_PUBLIC_變數。鑄造錢包只存放必要的金額,合約的Owner權限交給多簽錢包(Kaia文件有Safe的教學)。 - 不信任來自前端的資料。 ID Token與簽章都在伺服器端驗證,使用短時間失效的一次性nonce,並對API設定流量限制。
- 智慧合約。 使用OpenZeppelin等經過稽核的函式庫、撰寫測試;若牽涉實際價值,上主網前請第三方稽核。非必要不要使用可升級代理合約。
- 個人資料。 與LINE使用者ID綁定的錢包地址屬於個人資料,請寫進隱私權政策;LINE MINI App頻道也必須提供隱私權政策網址才能通過審查。
- 法規。 在日本,為顧客提供虛擬資產兌換等服務,必須向金融廳登記為暗號資產交換業者;泰國由證券交易委員會(SEC)監管數位資產業務;台灣則由金融監督管理委員會監理虛擬資產服務提供者。你的代幣或NFT是否受監管取決於設計,上線前請在各市場諮詢法律專業人士。
- 平台規範。 除了法律之外,LINE MINI App政策以及Apple、Google的規範也都適用。
#什麼情況不需要區塊鏈
| 目的 | 更簡單的做法 | 值得用鏈的情況 |
|---|---|---|
| 集點卡或點數 | LINE官方帳號的集點卡,或LIFF應用程式背後的資料庫 | 點數必須能轉讓,或能在你的店以外使用 |
| 優惠券 | LINE官方帳號的優惠券 | 幾乎沒有 |
| 會員等級 | 資料庫加上LINE官方帳號 | 會員資格要能轉售,或要向第三方證明 |
| 活動票券 | 訂位系統發出的QR票券 | 轉售紀錄必須能在不信任主辦方的情況下追溯 |
| 真品證明 | 資料庫中附簽章的紀錄 | 買家與二手買家必須能自行驗證 |
區塊鏈會帶來錢包導入、手續費、金鑰管理、無法撤回的錯誤與法律問題。如果顧客從不會把這些東西帶到你的店以外,資料庫加上LINE官方帳號就能更快、更便宜地完成。不用區塊鏈的做法請看LINE顧客管理(CRM)指南。
#LineBot.pro能幫上什麼
LineBot.pro沒有任何區塊鏈、錢包、NFT或代幣功能。區塊鏈、LIFF與LINE MINI App的專案屬於依需求客製開發,歡迎透過LINE系統開發、LINE MINI App/LIFF開發頁面或聯絡表單告訴我們需求,我們會和你一起確認範圍。
自助工具可以協助上線時LINE端的工作:
- 用AI做公告用的圖文訊息。 用文字描述內容,AI會撰寫文案、繪製1200 × 675 px的圖片,並組出附有MINI App按鈕、格式正確的Flex Message。每張8點,生成失敗會自動退點。
- 用行銷活動功能群發給好友。 可發給所有好友或貼上的LINE使用者ID清單,立即發送或預約發送。發送本身0點,但會消耗LINE每月的訊息則數。
- 加一個開啟MINI App的圖文選單按鈕。 AI圖文選單產生器會做出圖片與JSON(10點),按鈕可開啟連結或傳送文字,再由你自己上傳到LINE官方帳號管理後台。
新註冊送50點,不需綁卡。之後可購買一次性點數包:不用訂閱,點數也不會過期。
#常見問題
Q: LINE現在還有自己的區塊鏈嗎?
沒有。LINE Blockchain主網在2022年12月轉為Finschia,Finschia再與Klaytn合併成Kaia,主網自2024年8月29日運作至今。LINE NEXT的Unifi錢包也是在Kaia上運作。
Q: LINK幣後來怎麼了?
LINK在2023年5月更名為FINSCHIA(FNSA)。自2024年8月29日起,可透過Kaia Portal以1 FNSA=148.079656 KAIA的比例兌換成KAIA,這項服務當初公告提供一年。最新狀態請向Kaia Portal或你使用的交易所確認。
Q: LINE BITMAX還能用嗎?
不能。LINE BITMAX已在2026年6月1日結束服務。LY Corporation表示,帳戶中剩餘的虛擬資產會依合理公允的市價換成日圓,退還到使用者登記的金融機構帳戶。
Q: LIFF應用程式或LINE MINI App可以串接加密貨幣錢包嗎?
可以,但要當成一般網頁程式來實作,LINE沒有提供錢包API。LIFF瀏覽器是WebView,請使用內嵌式錢包SDK、WalletConnect類型的連線,或在LINE NEXT核准申請後使用Unifi Apps SDK。加入代幣功能之前,請先確認LINE MINI App政策。
Q: Unifi是什麼?
Unifi是LINE NEXT在2026年3月9日正式推出的非託管穩定幣錢包,可以在LINE裡使用。它支援USD₮、在Kaia上運作,並整合了原本的Dapp Portal與Mini Dapps。
Q: LineBot.pro有區塊鏈功能嗎?
沒有。LineBot.pro是用來製作圖文選單、圖文訊息與橫幅,發送行銷活動與設定關鍵字自動回覆的工具。區塊鏈相關需求屬於客製開發。
下一步:
- 在LINE MINI App完整說明確認開放地區與認證規則
- 用LIFF應用程式開發指南打造前端
- 用LINE Messaging API教學串接伺服器
- 想委託客製開發,請到LINE MINI App/LIFF開發頁面
關於 LineBot.pro
LineBot.pro 是專為 LINE 官方帳號打造的 AI 工具,可製作圖文選單、圖文訊息與橫幅,群發行銷活動,並依關鍵字自動回覆。這些指南由我們的團隊根據 LINE Messaging API 的實務經驗撰寫。
聯絡我們相關文章

LIFF 開發教學 2026:Next.js 與 TypeScript 實作
2026 年版 LIFF(LINE Front-end Framework)應用開發教學:頻道與 Endpoint URL 設定、liff.init 規則、伺服器端驗證 ID Token、sendMessages、shareTargetPicker、深層連結、用 LIFF CLI 測試,以及 v2.31.1 安全性更新。
閱讀更多
LINE MINI App是什麼?台灣開放開發、認證與LIFF差異(2026)
LINE MINI App是在LINE裡執行、不必下載的網頁應用程式。2026年3月11日起,台灣與泰國開放所有符合政策的企業與個人發佈。本文整理認證MINI與一般MINI的差異、和LIFF的比較、金流與服務訊息、審查時間與費用。
閱讀更多
LINE API 串接教學:Messaging API、Login 與 LIFF
給開發者的 2026 年 LINE API 全貌,以及不用 SDK 直接呼叫的方法:各 API 能做什麼、Channel 設定、用 fetch 回覆與推播、Webhook 簽章驗證、搭配 PKCE 的 LINE Login、LIFF 的 ID Token、速率限制與錯誤處理。
閱讀更多