SuiLink
SuiLink는 서로 다른 블록체인의 wallet address를 Sui wallet address에 안전하게 연결할 수 있게 해준다. SuiLink를 생성하면 연결된 wallet에 대한 소유권을 인증된 방식으로 증명하는 소울바운드 NFT를 받는다.
Key features
SuiLink는 다음 기능을 제공한다:
- Cross-chain identity verification: Ethereum에서 Sui로, Solana에서 Sui로, 그리고 다른 Sui address의 wallet을 기본 Sui wallet에 연결한다.
- Non-transferable proof of ownership: wallet 소유권을 암호학적으로 검증하는 soulbound NFT를 받는다.
- Enhanced discoverability: Sui ecosystem의 프로젝트가 연결된 모든 wallet 전반의 활동을 기준으로 사용자를 발견할 수 있다.
- Reward eligibility: Sui network 안에서 cross-chain reward, priority feature, 그리고 exclusive events를 위한 기회를 연다.
Supported networks
현재 SuiLink는 Sui와 Ethereum 사이(Sui-to-Ethereum), 그리고 Sui와 Solana 사이(Sui-to-Solana)의 wallet을 cross-chain으로 연결하는 것을 지원한다.
현재 Sui-to-Sui 연결은 Playtron wallet app을 위한 custom solution을 사용해 programmatically하게만 지원된다. 더 자세한 내용은 SuiPlay0X1 SuiLink integration guide를 참조한다.
Creating a SuiLink
SuiLink를 생성하려면 소울바운드 NFT를 mint하기 위해 Sui network에서 소량의 가스 수수료가 발생한다. 연결을 완료하려면 wallet에 SUI token이 어느 정도 들어 있는지 확인한다.
SuiLink를 생성하려면:
- https://www.suilink.io/를 방문한다.
- Connect Sui Wallet를 클릭한다.
- 연결하려는 블록체인 network를 선택한다: Ethereum 또는 Solana.
- 프롬프트를 따라 연결하려는 wallet을 인증하고 연결한다.
- transaction을 완료해 SuiLink NFT를 mint한다.
Managing SuiLink
각 SuiLink 연결은 Sui wallet 안에 별도의 SuiLink NFT를 생성한다.
연결된 address를 보려면:
- Sui wallet에서 SuiLink NFT를 본다.
network_address필드를 확인해 어떤 wallet이 연결되어 있는지 본다.- timestamp를 검토해 각 연결이 언제 생성되었는지 본다.
해당 NFT를 burn하면 wallet 연결을 영구적으로 해제할 수 있다. address 연결을 해제하려면:
- Sui wallet의 NFTs 섹션으로 이동한다.
- burn하려는 SuiLink NFT에서 "Send" 또는 "Transfer"를 선택한다.
- burn address를 입력한다:
0x0000000000000000000000000000000000000000.
또한 SUI Manager 같은 다양한 third-party tool이 NFT burn을 도와줄 수 있으며, 일부 wallet에는 burn 기능이 내장되어 있다.
Integrating SuiLink
Sui에서 애플리케이션을 구축할 때는 SuiLink를 통합해 cross-chain 소유권을 검증할 수 있다.
- Prerequisites
-
대상 network에 맞는 올바른 SuiLink package ID를 확보한다.
| Network | ETH and SOL Package ID | Sui-to-Sui Package ID |
|---|---|---|
| Testnet | 0x0025bafa2e6afa511c19bd4e95626c897e798fde629b4782fe061bdc8bd65c8a | 0x0025bafa2e6afa511c19bd4e95626c897e798fde629b4782fe061bdc8bd65c8a |
| Mainnet | 0xf857fa9df5811e6df2a0240a1029d365db24b5026896776ddd1c3c70803bccd3 | 0x73f5ab2461c5993408fff21354fa9831d4f4a66cc81382419ec29e3c80c384b5 |
Querying SuiLink objects
사용자의 SuiLink 연결을 가져오려면 다음 gRPC query를 사용한다:
const SUILINK_PACKAGE_ID_ETH_SOL = '0xf857fa9df5811e6df2a0240a1029d365db24b5026896776ddd1c3c70803bccd3';
const SUILINK_PACKAGE_ID_SUI = '0x73f5ab2461c5993408fff21354fa9831d4f4a66cc81382419ec29e3c80c384b5';
const ethSolSuiLinks = await grpcClient.listOwnedObjects({
owner: suiAddress,
type: `${SUILINK_PACKAGE_ID_ETH_SOL}::suilink::SuiLink`,
include: { json: true },
});
const suiSuiLinks = await grpcClient.listOwnedObjects({
owner: suiAddress,
type: `${SUILINK_PACKAGE_ID_SUI}::suilink::SuiLink`,
include: { json: true },
});
이 query는 지정한 Sui address가 소유한 모든 SuiLink NFT를 반환한다.
SuiLink NFT structure
각 SuiLink NFT에는 다음 필드가 들어 있다:
{
"id": "0xcafe",
"network_address": "0xdecaf",
"timestamp_ms": "1751541273947"
}
NFT 타입은 wallet이 어떤 블록체인 network에 연결되어 있는지를 나타낸다:
for (const link of ethSolSuiLinks.objects) {
const id = link.json.id as string; // "0xcafe"
const linkedAddress = link.json.network_address as string; // "0xdecaf"
const timestamp = link.json.timestamp_ms as string; // "1751541273947"
const chainType = link.type; // 전체 타입 문자열에는 generic param이 포함되며,
// 예: "...::SuiLink<...::ethereum::Ethereum>"
}
// Mainnet의 Sui-to-Sui SuiLink
0xf857fa9df5811e6df2a0240a1029d365db24b5026896776ddd1c3c70803bccd3::suilink::SuiLink<0x73f5ab2461c5993408fff21354fa9831d4f4a66cc81382419ec29e3c80c384b5::sui::Sui>
// Testnet의 Sui-to-Ethereum SuiLink
0x0025bafa2e6afa511c19bd4e95626c897e798fde629b4782fe061bdc8bd65c8a::suilink::SuiLink<0x0025bafa2e6afa511c19bd4e95626c897e798fde629b4782fe061bdc8bd65c8a::ethereum::Ethereum>
// Testnet의 Sui-to-Solana SuiLink
0x0025bafa2e6afa511c19bd4e95626c897e798fde629b4782fe061bdc8bd65c8a::suilink::SuiLink<0x0025bafa2e6afa511c19bd4e95626c897e798fde629b4782fe061bdc8bd65c8a::solana::Solana>
Verifying cross-chain asset ownership
사용자의 SuiLink object를 가져온 뒤에는 연결된 블록체인에서 특정 asset에 대한 소유권을 검증할 수 있다:
- SuiLink NFT에서
network_address를 추출한다. - Ethereum에는 Alchemy, Solana에는 Metaplex 같은 적절한 블록체인 API를 사용해 해당 address의 asset을 조회한다.
- 필요한 asset이 존재하는지 검증한다.
- 사용자의 Sui wallet을 통해 혜택을 귀속한다.
Related links
- SuiLink: SuiLink 메인 제품 페이지
- Sui gRPC Client: Full Node gRPC API 문서
- Sui JSON-RPC Migration: 더 이상 사용되지 않는 Sui JSON-RPC용 migration 가이드
- 지갑 통합 옵션: SuiPlay0X1용 wallet 전략에 대한 종합 가이드