Ana içeriğe geç

KYC API'ye Genel Bakış

Partner API'de KYC üç katmandan oluşur: platformun KYC tokenları, bir KYC tokenında bulunan KYC grupları ve her varlık tokenının KYC kuralları. Her katmanın kendi endpoint'leri ve kendi erişim kuralı vardır; setup'lar bu katmanları birbirine bağlar.

Model​

KYC tokenları. KYC tokenı, tek bir ağda deploy edilen ve cüzdanları KYC onaylı olarak işaretleyen platform düzeyinde bir kontrattır. Kendi kaydı olan bağımsız bir zincir varlığıdır (ERC1967 proxy arkasında bir UUPS implementasyonu); bir düğümün setup'ının parçası değildir. Bir ağda birden fazla KYC tokenı bulunabilir. Her tokenın bir sahip cüzdanı (wallet_id) vardır; bu cüzdan, platform sahibi düğümün o ağın zincirindeki cüzdanlarından biridir ve deploy işlemini, token üzerinde yapılan her grup değişikliğini ve yazılan her token kuralını imzalar. KYC tokenlarını yalnızca platform sahibi (kök) düğüm oluşturur; katalog, kyc:token:view iznine sahip her client tarafından okunabilir.

Setup bir KYC tokenı seçer. Bir setup (bir düğümün tek bir ağdaki deploy'u), setup oluşturulurken kyc_token_id ile belirtilen tam olarak bir KYC tokenına bağlanır; belirtilmezse ağın en eski deploy edilmiş KYC tokenı kullanılır. Setup'ın kyc_token_id ve kyc_token_address alanları hangi tokenı kullandığını gösterir. Deploy edilmiş KYC tokenı olmayan bir ağda setup oluşturulamaz, çünkü setup'ın kontratları bir KYC tokenı adresiyle deploy edilir. Bir varlık tokenı tek bir setup'a bağlıdır (tokenın setup_id alanı).

KYC grupları bir KYC tokenına aittir. Grup, tek bir KYC tokenında bulunan adlandırılmış bir adres kümesidir; bu yüzden endpoint'leri o tokenın altında yer alır: /v2/admin/kycs/{kyc_token_id}/groups/.... Gruplar platform düzeyindedir: grupları yalnızca platform sahibi düğüm listeleyebilir, okuyabilir, oluşturabilir, silebilir ve üyelerini değiştirebilir. Bir grubun iki kimliği vardır: tüm path'lerin ve token kurallarının kullandığı id (24 karakterlik hex) ve grubu zincir üzerinde tanımlayan numara olan group_id.

Tokenın KYC kuralları adreslere ve gruplara başvurur. Her varlık tokenının, setup'ının KYC tokenı üzerinde şunları vardır:

  • tekil adreslerden oluşan bir whitelist, bir blacklist ve bir dağıtım grubu (distribution);
  • whitelist'ine veya blacklist'ine bağlanmış KYC grupları.

Bu kurallar /v2/admin/tokens/{token_id}/kyc/... altında bulunur. Her yazma işlemi bir setup_id alır: tokenın kendi setup_id değerini gönderin (Token Getir yanıtından). Çağrı o setup'ın bağlı olduğu KYC tokenında çalışır ve o KYC tokenının sahip cüzdanı tarafından imzalanır. Yalnızca aynı KYC tokenında bulunan grupları bağlayın: zincir bir grubu tokendaki group_id değeriyle tanır ve API grubun nerede bulunduğunu kontrol etmez.

Endpoint'ler​

KYC tokenları​

MetotPathİzinSayfa
GET/v2/admin/kyc-tokenskyc:token:viewKYC Tokenlarını Listele
POST/v2/admin/kyc-tokenskyc:token:createKYC Tokenı Oluştur

KYC grupları​

MetotPathİzinSayfa
GET/v2/admin/kycs/{kyc_token_id}/groupskyc:group:viewKYC Gruplarını Listele
GET/v2/admin/kycs/{kyc_token_id}/groups/{group_id}kyc:group:viewKYC Grubunu ID ile Getir
POST/v2/admin/kycs/{kyc_token_id}/groupskyc:group:createKYC Grubu Oluştur
DELETE/v2/admin/kycs/{kyc_token_id}/groups/{group_id}kyc:group:deleteKYC Grubunu Sil
GET/v2/admin/kycs/{kyc_token_id}/groups/{group_id}/memberskyc:group:viewKYC Grubu Üyelerini Listele
POST/v2/admin/kycs/{kyc_token_id}/groups/{group_id}/memberskyc:group:member:createKYC Grubuna Üye Ekle
POST/v2/admin/kycs/{kyc_token_id}/groups/{group_id}/members/bulkkyc:group:member:createKYC Grubuna Toplu Üye Ekle
DELETE/v2/admin/kycs/{kyc_token_id}/groups/{group_id}/members/{user_address}kyc:group:member:deleteKYC Grubundan Üye Çıkar

Token KYC kuralları​

MetotPathİzinSayfa
GET/v2/admin/tokens/{token_id}/kyc/addresseskyc:token:viewToken KYC Adreslerini Listele
GET/v2/admin/tokens/{token_id}/kyc/addresses/{address_id}kyc:token:viewToken KYC Adresini Getir
GET/v2/admin/nodes/{node_id}/kyc/addresseskyc:token:viewDüğüm KYC Adreslerini Listele
GET/v2/admin/tokens/{token_id}/kyc/whitelistkyc:whitelist:viewToken Whitelist'ini Getir
POST/v2/admin/tokens/{token_id}/kyc/whitelistkyc:whitelist:createWhitelist'e Ekle
POST/v2/admin/tokens/{token_id}/kyc/whitelist/bulkkyc:whitelist:createWhitelist'e Toplu Ekle
DELETE/v2/admin/tokens/{token_id}/kyc/whitelist/{user_address}kyc:whitelist:deleteWhitelist'ten Çıkar
GET/v2/admin/tokens/{token_id}/kyc/blacklistkyc:blacklist:viewToken Blacklist'ini Getir
POST/v2/admin/tokens/{token_id}/kyc/blacklistkyc:blacklist:createBlacklist'e Ekle
POST/v2/admin/tokens/{token_id}/kyc/blacklist/bulkkyc:blacklist:createBlacklist'e Toplu Ekle
DELETE/v2/admin/tokens/{token_id}/kyc/blacklist/{user_address}kyc:blacklist:deleteBlacklist'ten Çıkar
GET/v2/admin/tokens/{token_id}/kyc/distributionkyc:distribution:viewToken Dağıtım Grubunu Getir
POST/v2/admin/tokens/{token_id}/kyc/distributionkyc:distribution:createDağıtım Grubuna Ekle
POST/v2/admin/tokens/{token_id}/kyc/distribution/bulkkyc:distribution:createDağıtım Grubuna Toplu Ekle
DELETE/v2/admin/tokens/{token_id}/kyc/distribution/{user_address}kyc:distribution:deleteDağıtım Grubundan Çıkar
GET/v2/admin/tokens/{token_id}/kyc/whitelist/groupskyc:token:whitelist-group:viewToken Whitelist Gruplarını Listele
POST/v2/admin/tokens/{token_id}/kyc/whitelist/groups/{group_id}kyc:token:whitelist-group:createToken Whitelist'ine Grup Ekle
DELETE/v2/admin/tokens/{token_id}/kyc/whitelist/groups/{group_id}kyc:token:whitelist-group:deleteToken Whitelist'inden Grup Çıkar
GET/v2/admin/tokens/{token_id}/kyc/blacklist/groupskyc:token:blacklist-group:viewToken Blacklist Gruplarını Listele
POST/v2/admin/tokens/{token_id}/kyc/blacklist/groups/{group_id}kyc:token:blacklist-group:createToken Blacklist'ine Grup Ekle
DELETE/v2/admin/tokens/{token_id}/kyc/blacklist/groups/{group_id}kyc:token:blacklist-group:deleteToken Blacklist'inden Grup Çıkar

Kimler çağırabilir​

Yukarıdaki izin gateway'de kontrol edilir. Endpoint'ler ardından düğümünüzün konumunu kontrol eder:

Endpoint'lerKuralRet
GET /v2/admin/kyc-tokensİzne sahip her client—
POST /v2/admin/kyc-tokens ve tüm /v2/admin/kycs/... endpoint'leriDüğümünüz platform sahibi (kök) düğüm olmalıdır403, kod 10005
/v2/admin/tokens/{token_id}/kyc/...Düğümünüz tokenın düğümü ya da onun üst düğümlerinden biri olmalıdır403, kod 10005
/v2/admin/nodes/{node_id}/kyc/addressesDüğümünüz o düğüm ya da onun üst düğümlerinden biri olmalıdır403, kod 10005

Asenkron yazma işlemleri​

Her yazma işlemi, yanıttan sonra sonuçlanan bir zincir işlemidir.

KYC tokenı oluşturma isteği, deploying durumundaki tokenla birlikte 201 döner. Deploy iki zincir adımında yürür (önce implementasyon, ardından proxy). Yalnızca deploy edilmiş tokenları listeleyen KYC Tokenlarını Listele endpoint'ini, token address değeriyle görünene kadar sorgulayın.

Diğer tüm yazma işlemleri şu yanıtı döner:

{
"requires_approval": false,
"completed": true
}

completed: true, isteğin kabul edildiği ve zincir çağrısının kuyruğa alındığı anlamına gelir; zincirin onayladığı anlamına gelmez. requires_approval her zaman false döner: KYC yazma işlemlerinin onay adımı yoktur.

Çağrı, token hangi düğüme ait olursa olsun platform sahibi (kök) düğümde, aşağıdaki type ve internal_id değerleriyle bir düğüm işlemi (node transaction) olarak kaydedilir. status değeri 1 başladı, 2 sürüyor, 3 tamamlandı, 4 hata (neden error alanındadır) ya da 5 makbuz bekleniyor olur. Düğümü platform kökü olan bir client, kök düğüm için düğüm işlemleri listesini types ve internal_id ile filtreleyerek işlemi izleyebilir. Diğer düğümler kök düğümün işlemlerini okuyamaz; yalnızca etkisini liste okumalarında görür.

İşlemtypeinternal_id
KYC grubu oluşturma37Grubun id değeri
KYC grubunu silme38Grubun id değeri
KYC grubuna üye ekleme39Grubun id değeri
KYC grubundan üye çıkarma40Grubun id değeri
KYC grubuna toplu üye ekleme41Grubun id değeri
Whitelist'e ekleme42Yeni kuralın id değeri
Whitelist'e toplu ekleme43Tokenın id'si
Whitelist'ten çıkarma44Kuralın id değeri
Blacklist'e ekleme45Yeni kuralın id değeri
Blacklist'e toplu ekleme46Tokenın id'si
Blacklist'ten çıkarma47Kuralın id değeri
Dağıtım grubuna ekleme48Yeni kuralın id değeri
Dağıtım grubundan çıkarma49Kuralın id değeri
Dağıtım grubuna toplu ekleme50Tokenın id'si
Token whitelist'ine grup ekleme51Bağlantının id değeri
Token whitelist'inden grup çıkarma52Bağlantının id değeri
Token blacklist'ine grup ekleme53Bağlantının id değeri
Token blacklist'inden grup çıkarma54Bağlantının id değeri

Bir kuralın id değeri tokenın liste okumalarından, bir bağlantının id değeri ise Token Whitelist Gruplarını Listele veya Token Blacklist Gruplarını Listele yanıtından gelir.

Liste okumaları zinciri değil, platformun kaydını gösterir:

  • Bir ekleme (grup, üye, adres, grup bağlantısı) satırını hemen yazar. Satır zincir onaylamadan listelerde görünür ve işlem error ile bitse de orada kalır. Listedeki bir satır, kuralın zincirde olduğunun kanıtı değildir; kanıt işlemdir.
  • Bir çıkarma ya da silme, satırı ancak işlemi onaylandığında listelerden kaldırır.

Adresler​

  • Adresler gönderildiği haliyle saklanır. API adreslerin biçimini kontrol etmez ve harf büyüklüğünü normalleştirmez.
  • Çıkarma işlemi, saklanan adresle harf büyüklüğü dahil birebir eşleşir. Adresi liste okumasından kopyalayın.
  • Token listelerinin ve grup üye listesinin search filtresi ile Token KYC Adreslerini Listele endpoint'inin address filtresi adresin tamamıyla eşleşir ve harf büyüklüğünü yok sayar. Düğüm KYC Adreslerini Listele endpoint'inin address filtresi adresin bir parçasıyla eşleşir.
  • Listede zaten bulunan bir adresi ya da grubu eklemek 500 / 10000 ile başarısız olur. Böyle bir adres içeren toplu ekleme hiçbir şey eklemez.

Hatalar​

Hata biçimi ve ortak kodlar için Hatalar sayfasına bakın. KYC kodları şunlardır:

KodDomainMesajAnlamı
2000100120001kyc group not foundBöyle bir grup yok ya da grup, path'te adı geçenden farklı bir KYC tokenında
2000100420001invalid kyc token idkyc_token_id geçerli bir id değil (KYC Grubu Oluştur)
2000300120003kyc token address not foundAdres, tokenın o listesinde yok
2000400120004kyc token group not foundGrup, tokenın o listesine bağlı değil

Bu kodların özel bir HTTP durumu yoktur ve 400 ile döner. Düğüm erişim retleri 10005 kodu (domain 2) ile 403 döner.