Skip to Content
SDK@solidus-network/sdk

@solidus-network/sdk

Ana SDK paketi. createSdk fabrikası, üç isim alanına sahip bir istemci döndürür: did, credentials ve auth.

import { createSdk } from '@solidus-network/sdk' const sdk = createSdk({ mode: 'testnet', rpcUrl: 'https://rpc.solidus.network', signerPrivateKey: '0xabc...def', })

Yapılandırma

interface SolidusConfig { mode: 'stub' | 'testnet' | 'mainnet' rpcUrl?: string // JSON-RPC endpoint URL (testnet/mainnet modes; default http://127.0.0.1:9944) signerPrivateKey?: string // Hex-encoded Ed25519 private key — only required by did.create() }

mode: 'stub', ağ çağrısı yapılmadan yerel Postgres destekli bir stub’a karşı çalışır (yerel geliştirme). mode: 'testnet' ve 'mainnet', JSON-RPC üzerinden bağlanır. signerPrivateKey üst seviyede isteğe bağlıdır — did.create() dışındaki her imzalama işlemi, anahtarını bunun yerine açık bir çağrı başına argüman olarak alır (ör. credentials.issue({issuerPrivateKey, ...}), credentials.revoke(id, issuerKey)).

İşlem imzalama, BLAKE3(publicKey || nonce_le || json(payload)) üzerinden Ed25519 kullanır.

Adres türetme, BLAKE3(publicKey)’i hesaplar, ilk 20 baytı alır ve sonucu base58 ile kodlar.


did.create

SDK’nın yapılandırılmış signerPrivateKey’inin sahip olduğu açık anahtar için zincir üzerinde bir DID kaydeder. signerPrivateKey, sağlanan açık anahtara sahip değilse hata fırlatır — farklı bir anahtarın imzaladığı bir DID’i aktarmak (relay) için bunun yerine did.buildCreate() + did.submitCreate() kullanın (ör. bir ön uç yerel olarak imzalar, bir arka uç aktarır).

sdk.did.create(publicKey: string): Promise<DID>

Parametreler

NameTypeDescription
publicKeystringHex kodlanmış Ed25519 açık anahtarı (32 bayt) — yapılandırılmış imzalayanla eşleşmelidir

Döndürür bir DID tanımlayıcısı — {id, controller, created, updated, network} — tam bir DIDDocument değil. Tam belgeyi almak için did.resolve() kullanın.

Örnek

const did = await sdk.did.create(publicKeyHex) console.log(did.id) // "did:solidus:testnet:7Kf9xB2..." const document = await sdk.did.resolve(did.id) console.log(document.verificationMethod[0].type) // "Ed25519VerificationKey2020"

did.resolve

Mevcut bir DID’i belgesine çözümler.

sdk.did.resolve(did: string): Promise<DIDDocument | null>

Parametreler

NameTypeDescription
didstringÇözümlenecek DID (ör. did:solidus:testnet:7Kf9...)

Döndürür bulunursa DIDDocument’ı, DID mevcut değilse veya devre dışı bırakılmışsa null.

Örnek

const doc = await sdk.did.resolve('did:solidus:testnet:7Kf9xB2...') if (doc) { console.log(doc.authentication) // ["did:solidus:testnet:7Kf9xB2...#key-1"] } else { console.log('DID not found') }

did.deactivate

Bir DID’i kalıcı olarak devre dışı bırakır. Devre dışı bırakmadan sonra, did.resolve null döndürür ve bu DID’e düzenlenmiş herhangi bir kimlik bilgisi artık doğrulanamaz.

sdk.did.deactivate(did: string, signerKey: string): Promise<void>

Parametreler

NameTypeDescription
didstringDevre dışı bırakılacak DID
signerKeystringDID’in mevcut denetleyicisinin hex kodlanmış Ed25519 özel anahtarı

Örnek

await sdk.did.deactivate('did:solidus:testnet:7Kf9xB2...', signerPrivateKeyHex) // DID is now permanently deactivated

credentials.issue

Zincir üzerinde yeni bir doğrulanabilir kimlik bilgisi düzenler.

sdk.credentials.issue(params: IssueCredentialParams): Promise<VerifiableCredential>

Parametreler

NameTypeRequiredDescription
subjectDidstringEvetKimlik bilgisi konusunun DID’i
issuerDidstringEvetDüzenleyicinin DID’i
issuerPrivateKeystringEvetDüzenleyicinin hex kodlanmış Ed25519 özel anahtarı
typestring[]EvetKimlik bilgisi türleri (ör. ['VerifiableCredential', 'KYCCredential'])
claimsRecord<string, unknown>EvetcredentialSubject’e dahil edilecek iddialar
expiresInDaysnumberHayırSon kullanmaya kadar geçecek gün sayısı (son kullanma yoksa atlayın)
networkstringHayırAğ geçersiz kılma ('testnet' veya 'mainnet')

Döndürür kriptografik bir kanıt eklenmiş bir VerifiableCredential.

Örnek

const credential = await sdk.credentials.issue({ subjectDid: 'did:solidus:testnet:subject123', issuerDid: 'did:solidus:testnet:issuer456', issuerPrivateKey: '0xabc...def', type: ['VerifiableCredential', 'KYCCredential'], claims: { level: 2, country: 'DE', documentType: 'passport', verifiedAt: '2026-05-07T12:00:00Z', }, expiresInDays: 365, }) console.log(credential.id) // "urn:uuid:a1b2c3d4-..." console.log(credential.proof.type) // "Ed25519Signature2020"

credentials.verify

Zincir üzerinde bir kimlik bilgisini kimliğine göre arar ve imzasını, son kullanma tarihini ve iptal durumunu kontrol eder. Kimlik bilgisi nesnesini değil, kimlik bilgisinin kimliğini alır.

sdk.credentials.verify(vcId: string): Promise<VerificationResult>

Parametreler

NameTypeDescription
vcIdstringDoğrulanacak kimlik bilgisi kimliği (ör. credential.id)

Döndürür genel geçerlilik ve bireysel kontrol sonuçlarına sahip bir VerificationResult. Zincir, imzaları gönderim sırasında doğrular ve Solidus kimlik bilgileri zincir üzerinde son kullanma tarihine sahip olmadığından, bulunan herhangi bir kimlik bilgisi için signature ve expiry true bildirir; revocation geçerli zincir üzerindeki iptal durumunu yansıtır.

interface VerificationResult { valid: boolean credentialId?: string error?: string checks: { signature: boolean expiry: boolean revocation: boolean } }

Örnek

const result = await sdk.credentials.verify(credential.id) if (result.valid) { console.log('Credential is valid') console.log('Credential ID:', result.credentialId) } else { console.log('Verification failed:', result.error) console.log('Not revoked:', result.checks.revocation) }

credentials.revoke

Bir kimlik bilgisini kimliğine göre iptal eder. İptal edildikten sonra, credentials.verify checks.revocation: false döndürür.

sdk.credentials.revoke(credentialId: string, issuerKey: string): Promise<void>

Parametreler

NameTypeDescription
credentialIdstringKimlik bilgisi kimliği (ör. urn:solidus:credential:...)
issuerKeystringDüzenleyicinin hex kodlanmış Ed25519 özel anahtarı

Örnek

await sdk.credentials.revoke('urn:solidus:credential:...', issuerPrivateKeyHex) // Credential is now revoked on-chain

credentials.query

Belirli bir DID’e düzenlenmiş tüm kimlik bilgilerini sorgular.

sdk.credentials.query(subjectDid: string): Promise<VerifiableCredential[]>

Parametreler

NameTypeDescription
subjectDidstringKimlik bilgilerinin sorgulanacağı DID

Döndürür bir VerifiableCredential nesneleri dizisi.

Örnek

const credentials = await sdk.credentials.query( 'did:solidus:testnet:subject123' ) for (const cred of credentials) { console.log(cred.type, cred.validFrom) } // ["VerifiableCredential", "KYCCredential"] "2026-05-07T12:00:00Z"

auth.createChallenge

Bir alan adına kapsamlanmış bir kimlik doğrulama meydan okuması oluşturur ve kimliğini düz bir dize olarak döndürür (testnet/mainnet modunda SDK, meydan okumayı bu kimlikle anahtarlanmış olarak sunucu tarafında izler).

sdk.auth.createChallenge(domain: string): Promise<string>

Parametreler

NameTypeDescription
domainstringMeydan okumanın kapsamlandığı güvenen taraf (relying-party) alan adı

Döndürür meydan okuma kimliğini bir dize olarak.

Örnek

const challengeId = await sdk.auth.createChallenge('myapp.example.com')

sdk.auth, bağımsız @solidus-network/auth paketinin createChallenge/verifyPresentation fonksiyonlarından (tam bir Challenge nesnesi döndüren ve açık bir açık-anahtar çözümleyicisi alan) farklı, daha üst seviyeli bir yüzeydir. DID’e bağlı meydan okuma/nonce ayrıntılarına ihtiyacınız varsa, @solidus-network/auth referansına bakın.


auth.verifyPresentation

Zincirden sahibinin DID belgesini çözümleyerek imzayı kontrol eden, imzalanmış bir doğrulanabilir sunumu (bir JSON dizesi olarak) daha önce düzenlenmiş bir meydan okuma kimliğine karşı doğrular.

sdk.auth.verifyPresentation( vp: string, challenge: string, domain: string, ): Promise<AuthResult>

Parametreler

NameTypeDescription
vpstringJSON dizgesine dönüştürülmüş, imzalanmış VerifiablePresentation
challengestringauth.createChallenge tarafından döndürülen meydan okuma kimliği
domainstringGüvenen taraf alan adı

Döndürür bir AuthResult:

interface AuthResult { valid: boolean did?: string claims?: Record<string, unknown> error?: string }

Örnek

const result = await sdk.auth.verifyPresentation( JSON.stringify(signedPresentation), challengeId, 'myapp.example.com', ) if (result.valid) { console.log('Authenticated as:', result.did) } else { console.log('Auth failed:', result.error) }
Last updated on