CSD 系統產生 Issuance Tokens credited 至發行錢包,配發 DTI(ISO 24165)與序號區間;低於品質下限者以 QUALITY_FLOOR 擋下。
發行的鏈上實作可參考 Toucan Protocol 的 SDK 與 subgraph(Polygon / Base / Celo)。傳統碳權經橋接後成為 TCO2(每個專案+年份一種 ERC-20),可存入碳池(BCT / NCT)或直接註銷取得憑證。
// Toucan SDK — 於 Polygon 上贖回碳池代幣並註銷,取得憑證 import ToucanClient from "toucan-sdk"; const toucan = new ToucanClient("polygon", provider, signer); // 1) 以碳池代幣(NCT/BCT)自動贖回底層 TCO2 await toucan.redeemAuto("NCT", amount); // 2) 註銷 TCO2 並鑄造註銷憑證(NFT) await toucan.retireAndMintCertificate(beneficiary, tco2, amount); // 3) 以 subgraph 查詢某支 TCO2 與使用者的註銷紀錄 const t = await toucan.fetchTCO2TokenByFullSymbol("TCO2-VCS-1718-2013"); const r = await toucan.fetchUserRetirements(address);
對照本平台:發行=bridge+鑄 TCO2、管理=碳池/登記與 retire、分銷=在市場流通與 DvP 交割。分銷頁已直接接上 Carbonmark 即時掛牌(多為 Toucan TCO2)。
參考 DTCC 數位資產代幣化服務的機構級控制——轉換單(DTC Classic ⇄ 數位錢包)採 maker-checker 雙人覆核、每筆帶 x-Idempotency-Key 防重、僅 Active 證券與 Idle 錢包可轉換。發行代幣本身則以「合規強制 + 可撤銷」智能合約承載(ERC-3643 / ERC-1404 精神)。
// 合規、可撤銷的碳權證券代幣(ERC-3643 / ERC-1404 精神) contract CarbonComplianceToken is ERC20 { IIdentityRegistry public identity; // KYC / 白名單 / 管轄 ICompliance public compliance; // 轉讓規則引擎(額度 / 鎖倉 / 管轄) address public agent; // 發行 / 合規代理人 // ── 合規:轉讓前強制檢查(ERC-1404 detectTransferRestriction 精神) function canTransfer(address from, address to, uint256 amt) public view returns (bool) { return !paused && !frozen[from] && !frozen[to] // 未全域暫停、雙方未凍結 && identity.isVerified(to) // 收方通過 KYC && compliance.canTransfer(from, to, amt); // 通過規則引擎 } function transfer(address to, uint256 amt) public override returns (bool) { require(canTransfer(msg.sender, to, amt), "COMPLIANCE_FAIL"); return super.transfer(to, amt); } // ── 六項管制功能(受監理代幣 vs 一般 ERC-20 最實質的差別) modifier onlyAgent() { require(msg.sender == agent, "NOT_AGENT"); _; } function mint(address to, uint256 amt) external onlyAgent { _mint(to, amt); } // 1 鑄造 function burn(address from, uint256 amt) external onlyAgent { _burn(from, amt); } // 2 銷毀 function forcedTransfer(address from, address to, uint256 amt) external onlyAgent { _transfer(from, to, amt); } // 3 強制移轉 function clawback(address from, uint256 amt, string reason) external onlyAgent { _transfer(from, agent, amt); emit Clawback(from, amt, reason); } // 4 追回 bool public paused; function pause() external onlyAgent { paused = true; } function unpause() external onlyAgent { paused = false; } // 5 暫停 / 恢復 mapping(address => bool) public frozen; function setFrozen(address a, bool f) external onlyAgent { frozen[a] = f; } // 6 凍結 / 解凍 // ── maker-checker:發行 / 轉換單需雙人覆核,對照 DTCC PendingApproval function submitOrder(bytes32 idempotencyKey, Order calldata o) external onlyAgent returns (bytes32 id) { /* → PendingApproval */ } function approveOrder(bytes32 id) external onlyChecker { /* 具名核准後執行 */ } }
重點:合規把轉讓限制寫進代幣(不合規即無法轉);可撤銷讓發行方在誤發或法院命令下能強制移轉/撤銷——這是受監理證券與純加密資產最大的差別。DTCC 服務端點:POST /v1/conversion/orders、GET /v1/conversion/securities、GET /v1/corporate-actions。
代幣合約內建六項管制功能,初期以法遵與配發控制為主,後續才往交易生命週期自動化走。這組功能是「受監理代幣」跟一般 ERC-20 最實質的差別。
依核准發行新代幣至發行錢包,受授權矩陣與品質下限約束。
永久銷毀代幣(減量沖銷、錯帳更正、註銷後回收)。
不經持有人同意強制移轉(法院命令、錯帳更正、繼承)。
自持有人強制取回代幣至代理人(誤發、詐欺、制裁)。
全域暫停所有轉讓(緊急事件、系統風險、監理指令)。
凍結特定地址或部位(制裁名單、爭議凍結、司法保全)。
誰能觸發、影響範圍多大、是否需雙人覆核、對應哪個合約函式——一張表看懂整個治理邊界。一般轉讓由持有人自行發動且自動跑合規;其餘管制皆為代理人專屬並走 maker-checker。
| 功能 | 觸發者 | 影響範圍 | Maker-Checker | 合約函式 | 平台位置 |
|---|---|---|---|---|---|
| 一般轉讓 Transfer | 持有人 | 自身部位 | 否 · 自動合規 | transfer() / canTransfer() | 分銷 |
| Mint 鑄造 | 代理人 | 單一批次 | 依授權矩陣 | mint() | 發行 |
| Burn 銷毀 | 代理人 | 指定持有 | 是 | burn() | 註銷 / 撤銷 |
| Force Transfer 強制移轉 | 代理人 | 持有 → 指定地址 | 是 | forcedTransfer() | 分銷 |
| Clawback 追回 | 代理人 | 持有 → 發行錢包 | 是 | clawback() | 管理 |
| Pause 暫停 | 代理人 | 全域 / 批次 / 功能 | 是 | pause() · pausedOps | 管理 |
| Freeze 凍結 | 代理人 | 單一地址 | 是 | setFrozen() | 管理 |