Skip to content
INVARIANTSReference · PlatformYürürlüktesürüm 1.1.02026-09-28T00:00:00.000Z

Nasıl kullanılır ​

Değişmez kodları doküman kapsamlıdır. Farklı dokümanlarda aynı kod bulunabilir — bu yüzden çapraz atıf her zaman doküman kimliğiyle yapılır:

✓ [[SPEC-CRED-0003]]/S1        doğru
✗ S1                            belirsiz

Adım kodları değişmez değildir. Doğrulama hattının A1…E4 adım kodları (SPEC-API-0001 §1) kanoniktir ve failed_step alanında kullanılır; değişmez tablolarıyla karıştırılmamalıdır. Çerçeve belgelerinin (docs/framework/) RB-* kuralları da değişmez değildir; kaynak koda atıf verirler (D-GOV-6).

Bu dosya üretilir. Bir değişmezi değiştirmek için kaynak dokümanı değiştir, sonra node scripts/sync-invariants.mjs ile bu indeksi yeniden üret. Elle düzenleme yapılmaz.

Toplam: 264 kodlanmış değişmez, 27 dokümanda. Ayrıca bir Draft spec (SPEC-ID-0001) doküman-kapsamlı kısa kod atanmamış numaralı değişmez listesi taşır; SPEC-ID-0002 ile superseded olduğu için kodlanmadı ve aşağıda "Kodlanmamış Değişmez Listeleri" altında not olarak izlenir (sayıya dahil değil).


ADR-0013 ​

Kimlik Attestation'ı için mdoc Çift Formatı (SD-JWT VC + ISO 18013-5)

KodAçıklama
ADR-0013/MD1mdoc yalnızca SD-JWT VC'nin ikinci temsilidir; SD-JWT VC birincil kalır (ADR-0006 değişmez). Bir tipin mdoc'u varsa alanları, iat/exp ve holder anahtarı SD-JWT ile birebir aynıdır.
ADR-0013/MD2mdoc deviceKey = SD-JWT cnf.jwk (aynı holder anahtarı, aynı cihaz bağlaması). Ayrı anahtar üretilmez.
ADR-0013/MD3mdoc issuerAuth (COSE_Sign1) yalnızca ES256; issuer sertifikası x5chain'de taşınır ve SPEC-TRUST-0001 güven listesiyle (issuer_id) eşlenir — SD-JWT ile aynı güven çapası.
ADR-0013/MD4Doğrulama üç değerli sonucu (SPEC-API-0001) korur; digest uyuşmazlığı/süre/iptal REJECTED, altyapı erişilemezliği INDETERMINATE. Sonuç nesnesinde ham CBOR ve açıklanmayan alan bulunmaz.
ADR-0013/MD5mdoc kişisel veri değerini yalnızca IssuerSignedItem içinde taşır; MSO, çapa günlüğü ve loglar yalnızca digest/anahtar/tarih içerir (DP1/AP3 korunur).

ADR-0014 ​

IssuerCategory Kümesine EVENTS (Etkinlik) Eklenmesi

KodAçıklama
ADR-0014/IC1IssuerCategory kapalı kümedir; yeni değer yalnızca ADR ile ve enum'un sonuna eklenir (sıra numaraları değişmez).
ADR-0014/IC2Kategori kaba filtredir, yetki değildir: bir issuer'ın belgesinin kabulü vct + zaman pencereli şema yetkisiyle (SPEC-TRUST-0001) belirlenir; kategori tek başına kabul sebebi olamaz.
ADR-0014/IC3Kategori değişikliği yeni bir güven listesi sürümüyle yayınlanır ve belgenin iat'ına göre değerlendirilen yetkiyi geriye dönük değiştirmez (D-BC-3).

ADR-0015 ​

İstemciler Dahil Tek Güven Arayüzü (TrustSource Çekirdeğinin Taşınabilir Hâli)

KodAçıklama
ADR-0015/TS1Her istemci ve servis güven sorusunu yalnızca TrustSource arayüzünden sorar; liste/zincir biçimi arayüz dışında yorumlanmaz (BT4'ün istemcilere genişletilmesi).
ADR-0015/TS2Liste doğrulama kuralları tek gerçeklemededir (trust/core); başka paket kopyasını tutmaz.
ADR-0015/TS3İstemci güven sorusu için Tamga'ya kullanıcıya bağlanabilir çağrı yapmaz; listeler toplu çekilir.

ADR-0016 ​

Barındırılan İhraç Servisine Dış Kurum Erişimi (Kiracı API Anahtarı)

KodAçıklama
ADR-0016/HA1Dış erişim yalnızca kiracıya bağlı, kapsamlı API anahtarıyla; ortak yönetici anahtarı dışarı açılmaz.
ADR-0016/HA2API anahtarı sunucuda yalnızca özetiyle saklanır; loglarda ve denetim kaydında anahtarın kendisi yer almaz.
ADR-0016/HA3Bir anahtar yalnızca kendi slug'ının yollarında ve kapsamındaki işlemlerde geçerlidir.

ADR-0017 ​

Barındırılan Doğrulayıcıda Sonuca Erişim — Doğrulayıcı (RP) Kimlik Doğrulaması ve Tek Seferlik Okuma

KodAçıklama
ADR-0017/HV1Barındırılan doğrulayıcı değer döndüren her ucu yalnızca K1 beyanını doğrulanmış RP'ye açar.
ADR-0017/HV2Sunum oluşturan client_id dışındaki bir RP sonuç ya da değer alamaz; cevap varlığı sızdırmaz (404).
ADR-0017/HV3Değerler en fazla bir kez okunur ve sonuçtan en geç 5 dakika sonra bellekten silinir.
ADR-0017/HV4Tarayıcıya giden hiçbir jeton ya da adres değer okuma yetkisi taşımaz.
ADR-0017/HV6Aracı doğrulayıcı üzerinden gelen istekte cüzdan asıl RP'nin kayıtlı adını gösterir ve kapsamı onun kaydına göre denetler.
ADR-0017/HV5RP beyanı: exp − iat ≤ 60 s, jti tekrar reddi, imzacı sertifika parmak izi güven listesindeki RP kaydıyla eşleşir.

ADR-0018 ​

Belge Yayın Düzeni — Üç Kapı (Genel · Geliştirici · Tamga ARF) ve arf.tamga.network

KodAçıklama
ADR-0018/DY1Çerçeve belgelerinin (FW-*) kamuya açık tek yayın yeri Tamga ARF sitesidir; başka site kopyasını yayınlamaz, bağlantı verir.
ADR-0018/DY2Tamga ARF'nin İngilizce çevirisi Türkçe kaynağın aynı sürümünü taşır; sürüm farkı varken yayın yapılmaz.
ADR-0018/DY3Tamga ARF sayfaları özel depo yollarına, konuşmalara ya da kiracı verisine bağlantı vermez.

ADR-0019 ​

Kurum Konsolu (console.tamga.network) ve Operatör Veritabanı — Öğrenci Portalının Kaldırılması

KodAçıklama
ADR-0019/KC1Konsol kullanıcısı yalnızca bağlı olduğu kurumun verisini görür ve değiştirir.
ADR-0019/KC2Konsola giriş passkey iledir; parola saklanmaz. Davet tek kullanımlıktır ve süreli; yalnızca özeti saklanır.
ADR-0019/KC3Konsol ve veritabanı günlükleri kişisel veri, claim değeri, status idx içermez; kayıt defteri kişisel veriyi yalnızca kurum adına eşleştirme için tutar.
ADR-0019/KC4Kayıt defteri "örnek kayıt defteri" olarak işaretlenir; kurumun kendi sistemi (API ya da kaynak bağlantısı) bağlanınca yerini ona bırakır.

ARCH-0003 ​

Bileşen Mimarisi — İndeksleyici, Issuer/Verifier Servisleri, Cüzdan ve Güven Sınırları

KodAçıklama
ARCH-0003/CMP1Verifier servisi zinciri doğrudan sorgulamaz; indeksleyiciden okur (§2.1).
ARCH-0003/CMP2İndeksleyici bilinmeyen bir implementasyon sürümü görünce durur ve alarm verir (§2.2).
ARCH-0003/CMP3İndeksleyici kişisel veri saklamaz (§2.4).
ARCH-0003/CMP4Bayat indeksleyici INDETERMINATE üretir, REJECTED değil (§2.5).
ARCH-0003/CMP5OBS adaptörü eşlemede karşılığı olmayan veri için ihracı durdurur; tahmin üretmez (§3.2).
ARCH-0003/CMP6Status yayını değişiklik olmasa da sabit aralıkta çalışır (§3.4).
ARCH-0003/CMP7Verifier doğrulama başına status çekmez; ön çekim kullanır (§4.2).
ARCH-0003/CMP8Cüzdan şemaları toplu çeker, kullanım anında değil (§6).
ARCH-0003/K1Credential ve status imzalama anahtarları ayrıdır (§8).
ARCH-0003/CMP9Doğrulama sonucu üç değerlidir: ACCEPTED / REJECTED / INDETERMINATE.

ARCH-0004 ​

Sunucu Envanteri, Dağıtım ve Gözlemlenebilirlik

KodAçıklama
ARCH-0004/O18545 JSON-RPC hiçbir koşulda internete açılmaz (§3).
ARCH-0004/O2Yükseltmeler önce staging'de aynı adımlarla prova edilir (§1).
ARCH-0004/O3Credential imzalama anahtarı çevrimdışı HSM'de; status anahtarı ayrı ve çevrimiçi (§4).
ARCH-0004/O4Doğrulama logları claim değerlerini ve idx'i saklamaz (§5.2, §5.3).
ARCH-0004/O5CDN erişim logu tutulmaz veya IP'siz ve 7 günlüktür (§5.4).
ARCH-0004/O6Issuer DB yedeği zincir yedeğinden önceliklidir (§7.3).
ARCH-0004/O7İndeksleyici her zaman sıfırdan yeniden oynatılabilir olmalıdır (§8).
ARCH-0004/SEV1Zincir durdu; credential anahtarı sızdı
ARCH-0004/SEV2İndeksleyici bayat > 15 dk; status yayını 2 döngü kaçtı
ARCH-0004/SEV3Şema CDN 5xx; tek issuer service down

ARCH-0005 ​

SDK Mimarisi ve Paket Yayınlama — Sürüm Bağlaşımı ve Tedarik Zinciri Güvenliği

KodAçıklama
ARCH-0005/P1Hiçbir Tamga paketi postinstall betiği içermez.
ARCH-0005/P2Yayın yalnızca CI'dan, OIDC ile; uzun ömürlü npm token'ı yoktur.
ARCH-0005/P3Her sürüm provenance ve imza taşır.
ARCH-0005/P4Spec MAJOR'u artarsa etkilenen SDK MAJOR'u da artar.
ARCH-0005/P5Doğrulama sonucu checks_performed / checks_skipped taşır.
ARCH-0005/P6SDK, tanımadığı kontrat sürümü görünce INDETERMINATE döner, kabul etmez.
ARCH-0005/P7Taahhüt testleri (T1–T8) yayın öncesi zorunludur.
ARCH-0005/P8@tamga-network/schemas her şema için contentHash taşır.
ARCH-0005/P9İş mantığı TypeScript'te kanoniktir; diğer diller aynı test vektörleriyle doğrulanır.

PM-GOV-0001 ​

Yönetişim ve İşletim Politikası — Kodla Sınırlanamayan Yetkiler

KodAçıklama
PM-GOV-0001/G1Barındırılan hizmetlerde imzalama anahtarı asla vakıfta olmaz.
PM-GOV-0001/G2Hiçbir Tamga altyapısı IP adresi loglamaz.
PM-GOV-0001/G3Vakıf barındırılmış indeksleyici hizmeti sunmaz.
PM-GOV-0001/G4Şema istatistikleri kova boyutu < 50 ise yayınlanmaz.
PM-GOV-0001/G5Alan adı gerçek kişi adına kayıtlı olamaz.
PM-GOV-0001/G6Her yumuşak yetkinin ölçülebilir bir tripwire eşiği vardır.
PM-GOV-0001/G7Faz 0 sınırları katılımcılara yazılı bildirilir.
PM-GOV-0001/G8Şeffaflık raporu üç ayda bir, gecikmesiz yayınlanır.

PM-GTM-0001 ​

Pilot Planı — Üniversite Diploma Pilotu, Ön Koşullar ve Durdurma Ölçütleri

KodAçıklama
PM-GTM-0001/GT1Ö1–Ö6 tamamlanmadan gerçek mezun verisi işlenmez.
PM-GTM-0001/GT2Pilot, üniversite personeline düzenli yeni iş yüklemez.
PM-GTM-0001/GT3Faz 0 sınırları bildirimi sadeleştirilmeden imzalatılır.
PM-GTM-0001/GT4P2 (sahte veriyle uçtan uca) atlanamaz.
PM-GTM-0001/GT5Pilot 6 ayı aşarsa yazılı gerekçe ve yeni ölçüt gerekir.
PM-GTM-0001/GT6Durdurma koşulu oluştuğunda pilot durur; "izleyip görelim" seçeneği yoktur.
PM-GTM-0001/GT7Katılım gönüllüdür; rıza geri alınabilir ve credential iptal edilir.

SPEC-AGENT-0001 ​

Agent Delegasyonu ve Credential-Gating — Faz 0 Kapsamı ve Gelecek Açılma Yolu

KodAçıklama
SPEC-AGENT-0001/AG1Agent'ın kendi kimliği yoktur; yalnızca türetilmiş işlemsel yetkisi vardır.
SPEC-AGENT-0001/AG2Süresiz delegasyon yoktur; her delegasyon validUntil taşır.
SPEC-AGENT-0001/AG3Delegasyon koşulsuz ve anında iptal edilebilir (kill switch); iptal ileriye dönük kesindir, geçmiş işlemleri geri almaz.
SPEC-AGENT-0001/AG4Delegasyon sorumluluğu velide (principal) kalır.
SPEC-AGENT-0001/AG5Her agent işlemi delegasyon referansıyla loglanır.
SPEC-AGENT-0001/AG6Agent kimlik credential'ı sunamaz; yalnızca işlemsel yetki taşır.
SPEC-AGENT-0001/AG7scope genişletilebilir tasarlanır; pay:* Faz 0'da tanımlı değildir.
SPEC-AGENT-0001/AG8Faz 0'da zincir üstü credential-gating yoktur; hiçbir kontrat bir credential'ın geçerliliğini zincirde kontrol etmez.
SPEC-AGENT-0001/AG9Zincir bir credential'ın iptal durumunu göremez (ADR-0008, SPEC-CRED-0003/S1); gating "credential doğrulama" olarak zincirde uygulanamaz.
SPEC-AGENT-0001/AG10Gelecekte gating açılırsa zincir credential'ı doğrulamaz; yalnızca kayıtlı bir verifier'ın imzalı beyanına güvenir (güven kayması dokümante edilir).
SPEC-AGENT-0001/AG11Beyanı üreten verifier RelyingPartyRegistry'de ACTIVE olmalıdır; beyan verifier'ın kayıtlı sertifikasıyla (accessCertFingerprint) doğrulanır.
SPEC-AGENT-0001/AG12Beyan taze olmalıdır (azami yaş, ör. ≤ 15 dk) ve tek kullanımlık nonce taşır; nonce tüketimi atomiktir.

SPEC-API-0001 ​

Servis API Yüzeyi ve Kanonik Doğrulama Algoritması

KodAçıklama
SPEC-API-0001/AP1Adım kodunun anlamı asla değişmez; kaldırılan kod yeniden kullanılmaz.
SPEC-API-0001/AP2INDETERMINATE, REJECTED ile aynı kovaya konmaz.
SPEC-API-0001/AP3Sonuç nesnesi claim değerlerini değil adlarını taşır.
SPEC-API-0001/AP4idx hiçbir API yanıtında veya kayıtta bulunmaz.
SPEC-API-0001/AP5HTTP durum kodu doğrulama sonucunu kodlamaz.
SPEC-API-0001/AP6Politikanın required_claims'i RP'nin zincirdeki scope'unu aşamaz.
SPEC-API-0001/AP7Hata detail alanı kişisel veri içermez.
SPEC-API-0001/AP8C2 (şema yetkisi) hiçbir yapılandırmayla atlanamaz.
SPEC-API-0001/AP11C1 ve C2 credential'ın iat'ını alır; ihraç-zamanı sorguları doğrulamada kullanılmaz.
SPEC-API-0001/AP12issuerId x5c yaprak parmak izinden türetilir, iss claim'inden değil.
SPEC-API-0001/AP13Geçiş kartı jetonu doğrulaması (ADR-0012 B): imza pass_grant'taki kopya anahtarıyla, aud = terminalin RP client_id'si, exp ≤ 60 s, jti tekrar listesi (terminal grubu içinde çevrim içi paylaşılır); jetondan kişisel veri çıkarılmaz ve loglanmaz.
SPEC-API-0001/AP9E4 (denetim kaydı) reddedilen doğrulamalarda da çalışır.
SPEC-API-0001/AP10tx_code yanıt dışında hiçbir yerde saklanmaz.

SPEC-BC-0001 ​

Güven Katmanı Akıllı Kontratları — Veri Şeması, Arayüzler ve Değişmezler

KodAçıklama
SPEC-BC-0001/N1Namespace sahibi olmayan çağıran yazamaz; tek istisna Governance yürütmesi.
SPEC-BC-0001/GV1Çıkarma/çıkış mevcut kayıtları ve credential'ları geçersiz kılmaz.
SPEC-BC-0001/GV2NETWORK şeması yalnızca Governance üzerinden kaydedilir.
SPEC-BC-0001/CA1certFingerprint bir kez yazılır; yeni sertifika = yeni caId.
SPEC-BC-0001/CA2RETIRED CA: operasyon ve eski credential'lar sürer; REVOKED CA: credential'lar düşer, operasyon sürer.
SPEC-BC-0001/CA3Yeni issuer yalnızca ACTIVE CA'ya bağlanabilir.
SPEC-BC-0001/I1Şema yetkisi allowlist'tir; varsayılan false.
SPEC-BC-0001/I2Doğrulama isCredentialAcceptable(id, iat) kullanır; isValidIssuer yalnızca ihraçtır.
SPEC-BC-0001/I3Şema yetkisi zaman penceresidir; doğrulama iat'a göre bakar.
SPEC-BC-0001/I4REVOKED issuer'ın listesini halefi yayınlayabilir.
SPEC-BC-0001/SC1Şemanın vctURI ve contentHash'i asla güncellenmez.
SPEC-BC-0001/SC3DEPRECATED şema doğrulanabilir kalır.
SPEC-BC-0001/L1Status list version monoton artar.
SPEC-BC-0001/L2listSize >= 100.000.
SPEC-BC-0001/L3bitsPerEntry == 2.
SPEC-BC-0001/R1Issuer delegate anahtarı ulusal kayıtlara yazamaz.
SPEC-BC-0001/R2Askıya alınmış issuer status list yayınlayamaz.
SPEC-BC-0001/GA1Ücretsiz gas, maliyet yokluğu değildir.
SPEC-BC-0001/GV3Asgari mutlak oy 2; iki üyeli ağda çıkarma imkânsızdır.
SPEC-BC-0001/GV4Çıkarılmış/çekilmiş devlet yeniden kabul edilebilir.
SPEC-BC-0001/DP1Hiçbir kontrat kişisel veri, credential içeriği veya credential hash'i saklamaz.

SPEC-BC-0002 ​

Guardian Escrow ve Accountable Disclosure — Kontrat ve Protokol Yüzeyi

KodAçıklama
SPEC-BC-0002/GD1Zincirde sır yok: kişisel veri, eşleştirme, pay, ciphertext, düz-metin sonuç asla zincirde — yalnızca commitment/hash, kompozisyon, policy, denetim izi.
SPEC-BC-0002/GD2Devlet-bazlı anahtar: bir devletin seti yalnızca kendi vatandaşını çözer (kriptografik); başka devletin anahtarı çözemez.
SPEC-BC-0002/GD33-of-5 + yürütme-dışı: threshold ≥ 3, size = 5, executiveSeats ≤ threshold−1, her execute'ta nonExecutiveApprovals ≥ 1.
SPEC-BC-0002/GD4Egemenlik: seti yalnızca home-state kurar/günceller (onlyOwnerState, ADR-0002); kompozisyon on-chain yayınlanır.
SPEC-BC-0002/GD5DKG + threshold: anahtar hiç yeniden kurulmaz; merkezî üretim yok.
SPEC-BC-0002/GD6Escrow-geçerlilik: escrow makbuzu olmayan pseudonym ağ-geçersiz; escrow verifiable-encryption ile doğrulanır.
SPEC-BC-0002/GD7Yasal tetik zorunlu: geçerli court token olmadan execute yok; hukuki + kriptografik kenetli.
SPEC-BC-0002/GD8Mutlak ret / temyiz yok: subjectState gerekçesiz reddedebilir; ağ seviyesinde üst merci yoktur.
SPEC-BC-0002/GD9Dar kapsam: yalnızca pseudonym↔kimlik; credential/geçmiş/canlı-izleme yok.
SPEC-BC-0002/GD10Silinemez iz + bildirim: her talep/onay/ret/açma append-only; bildirim tavanı kontratta sabit (2/3 ile değişir).

SPEC-CRED-0002 ​

SD-JWT VC Tel Seviyesi Profili — Disclosure Üretimi, _sd, cnf, KB-JWT

KodAçıklama
SPEC-CRED-0002/C1alg her zaman ES256.
SPEC-CRED-0002/C2_sd_alg her zaman sha-256, açıkça yazılır.
SPEC-CRED-0002/C3Salt ≥ 128 bit, her disclosure için benzersiz.
SPEC-CRED-0002/C4Digest, disclosure dizesinin hash'idir; yeniden serileştirme yapılmaz.
SPEC-CRED-0002/C5_sd dizisi sıralıdır.
SPEC-CRED-0002/C6Decoy digest kullanılmaz.
SPEC-CRED-0002/C7x5c zorunlu; kök sertifika dahil edilmez.
SPEC-CRED-0002/C8KB-JWT istisnasız zorunlu.
SPEC-CRED-0002/C9sd_hash, sunulan set üzerinden ve sondaki ~ dahil hesaplanır.
SPEC-CRED-0002/C10Eşleşmeyen disclosure reddedilir.
SPEC-CRED-0002/C11İç içe seçici açıklama en fazla 2 seviye.
SPEC-CRED-0002/C12Gizlemek = dizeden çıkarmak; JWT hiçbir zaman yeniden imzalanmaz.
SPEC-CRED-0002/C13typ her zaman dc+sd-jwt; Tamga issuer'larından vc+sd-jwt kabul edilmez.
SPEC-CRED-0002/C14Doğrulayıcı disclosure'ı çözüp yeniden serileştirmez (§3.5).
SPEC-CRED-0002/C15issuerId yaprak sertifika parmak izinden türetilir; iss yalnızca tutarlılık kontrolüdür.
SPEC-CRED-0002/C16cnf claim'i olmayan SD-JWT VC reddedilir.
SPEC-CRED-0002/C17KB-JWT iat penceresi ±300 saniyedir.
SPEC-CRED-0002/C18category claim'i yalnızca kayıt sınıfı PUB/QUALIFIED olan issuer'larda ve yalnızca `urn:tamga:eaa:pub

SPEC-CRED-0003 ​

Status List ve İptal — Token Status List Profili, Yayın Döngüsü, Zincir Çapası

KodAçıklama
SPEC-CRED-0003/S1Zincirde hiçbir iptal biti yoktur; yalnızca çapa.
SPEC-CRED-0003/S2bits her zaman 2'dir.
SPEC-CRED-0003/S3version monoton artar; azalan sürüm reddedilir.
SPEC-CRED-0003/S4Yayın CDN'e yazıldıktan sonra zincire kaydedilir (§5.2).
SPEC-CRED-0003/S5Değişiklik olmasa da sabit aralıkta yayınlanır (§5.1).
SPEC-CRED-0003/S6Aralık dışı ("acil") yayın yapılmaz.
SPEC-CRED-0003/S7idx rastgele tahsis edilir; sıralı sayaç kullanılmaz (§6.1).
SPEC-CRED-0003/S8Liste URI'si opaktır; yıl, bölüm, kohort kodlamaz (§6.3).
SPEC-CRED-0003/S9Listeler tip dışında hiçbir ölçütle bölünmez (§6.4).
SPEC-CRED-0003/S10Liste kapasitesi ≥ 100.000; doluluk ≤ %80.
SPEC-CRED-0003/S11Status anahtarı, credential imzalama anahtarından ayrıdır (§3.4). Status anahtarının sertifika parmak izi güven listesinde kurum kaydının delegate_keys[] alanında purpose: "status_list" ile yayınlanır; doğrulayıcı D3'te token imzacısını bu kayıtla eşler (kayıt yoksa INDETERMINATE, eşleşmezse REJECTED). Liste dışı idx geçerli okunmaz (D6 RED).
SPEC-CRED-0003/S12Verifier doğrulama başına çekim yapmaz; toplu ön çekim kullanır (§9.1).
SPEC-CRED-0003/S13exp/ttl claim'leri HTTP önbellek başlıklarını geçersiz kılar.
SPEC-CRED-0003/S14"Geçersiz" ile "doğrulanamadı" kullanıcıya farklı gösterilir (§7.1).

SPEC-ID-0002 ​

X.509 Kurumsal Kimlik Metodu — Root CA Çıpalama, issuerId, Doğrulama, Rollover

KodAçıklama
SPEC-ID-0002/XC1Kurumsal kimlik daima devletinin çıpalı Root CA'sına zincirlenir.
SPEC-ID-0002/XC2issuerId sertifika fingerprint'ine bağlıdır; sertifika değişince kimlik yeni issuerId + successorId ile devam eder.
SPEC-ID-0002/XC3Zincir yalnızca kişisel-olmayan veri tutar (kök/kurum public anahtarı, durum).
SPEC-ID-0002/XC4Vatandaşın küresel tanımlayıcısı yoktur (yalnızca pairwise pseudonym).
SPEC-ID-0002/XC5Entity↔kimlik bağı yalnızca accountable disclosure eşiğiyle çözülür.

SPEC-ID-0003 ​

Kimlik İspatı Profili — T1–T3 Yolları, ETSI TS 119 461 Eşlemesi ve Uzaktan Doğrulama Sağlayıcı Entegrasyonu

KodAçıklama
SPEC-ID-0003/IDP1Holder kimlik ispatı seviyesi ve yolu credential'a yazılmaz; yalnızca issuer denetim kaydında tutulur.
SPEC-ID-0003/IDP2Tipin asgari seviyesi sağlanmadan offer üretilmez; seviye tahminle yükseltilmez.
SPEC-ID-0003/IDP3IDV sağlayıcı entegrasyonu yalnızca Tamga kimlik attestation servisindedir (id.tamga.network, ADR-0011); kurum issuer'ları, cüzdan ve verifier sağlayıcıyla konuşmaz. (v0.1: "yalnızca issuer tarafında" — D-ID-6 ile yeniden ifade edildi.)
SPEC-ID-0003/IDP4Issuer, IDV sonucundan yalnızca özet kaydı saklar; belge görüntüsü, portre, video, OCR ham verisi saklanmaz.
SPEC-ID-0003/IDP5Webhook imza ve zaman damgası doğrulanmadan işlenmez; karar her zaman decision API'den teyit edilir.
SPEC-ID-0003/IDP6vendor_data/metadata alanlarına kişisel veri yazılmaz; yalnızca opak referans.
SPEC-ID-0003/IDP7T3 hiçbir uzaktan IDV sonucuyla verilmez; T3 imza (NES/mobil imza) veya PID gerektirir ve pre-authorized akışla bağdaşmaz.
SPEC-ID-0003/IDP8Sağlayıcı kesintisi seviyeyi düşürmez; gerektiren ihraç durur.
SPEC-ID-0003/IDP9Kimlik servisi IDV sonucundan kişi alanlarını yalnızca ihraç anına kadar tutar; ihraçtan sonra yalnızca opak subject_ref, belge numarası hash'i, süre ve status indeksleri kalır; görüntü, selfie, video, OCR ham verisi Tamga'da hiç saklanmaz (K4).
SPEC-ID-0003/IDP10Ulusal kimlik numarası (personal_administrative_number) yalnızca urn:tamga:id:IdentityAttestation:1 tipinde ve seçici açıklamalı taşınır; başka hiçbir tipe yazılmaz; kurum eşleştirmeden sonra saklamaz ve loglamaz.
SPEC-ID-0003/IDP11Kimlik attestation'ı ihraç edilmeden önce aydınlatma metni gösterilir ve açık rıza alınır; rıza verilmeyen oturumda IDV başlatılmaz (access_denied).

SPEC-PROTO-0001 ​

İhraç Protokolü — OpenID4VCI 1.0 Tamga Profili

KodAçıklama
SPEC-PROTO-0001/PR1Pre-authorized akışta tx_code atlanamaz.
SPEC-PROTO-0001/PR2Metadata'daki her vct, issuer'ın zincirde yetkilendirildiği bir şemadır.
SPEC-PROTO-0001/PR3Credential offer URI tek kullanımlık, 5 dakika ömürlü.
SPEC-PROTO-0001/PR4c_nonce tüketimi atomiktir.
SPEC-PROTO-0001/PR5Kanıt ve credential imzası yalnızca ES256.
SPEC-PROTO-0001/PR6Batch'teki her kopya farklı cihaz anahtarına bağlanır.
SPEC-PROTO-0001/PR7Bağlama yöntemi denetim kaydına yazılır, credential'a yazılmaz.
SPEC-PROTO-0001/PR8Hata yanıtları kişisel veri içermez.
SPEC-PROTO-0001/PR9Erişim belirteci ömrü ≤ 5 dakika.
SPEC-PROTO-0001/PR10Kopya↔indeks eşlemesi issuer'da kalır, asla dışarı çıkmaz.
SPEC-PROTO-0001/PR11İhraçtan önce Wallet Unit Attestation + PoP doğrulanır; WUA imzacısı güven listesindeki wallet provider anahtarlarından biridir; key_storage kiracı politikasını karşılamıyorsa ihraç yapılmaz (§11.1).
SPEC-PROTO-0001/PR12out-of-band offer'da tx_code offer ile farklı kanaldan iletilir; üç yanlış deneme offer'ı geçersiz kılar; kanal adresi yalnızca kurumun kayıtlı verisinden gelir (§3.3).
SPEC-PROTO-0001/PR13Authorization code akışında PAR ve PKCE (S256) zorunludur; istemci kimliği Wallet Unit Attestation'dır (client_secret yok); redirect_uri PAR'da bağlanır ve /authorize'da değiştirilemez; code tek kullanımlık ve ≤ 60 s (§11.2).
SPEC-PROTO-0001/PR14Kurum issuer'ı cüzdan-başlatmalı ihraçta kimliği yalnızca kimlik attestation'ının sunumu ile ve tam doğrulama hattından (T0 + A–E) geçerek eşler; eşleştirme anahtarları (TCKN, doğum tarihi) saklanmaz ve loglanmaz; eşleşmezse belge verilmez (§11.2, ADR-0011 K3/K6).
SPEC-PROTO-0001/PR15Cüzdan kurum dizinini yalnızca güven listesinden alır; listede olmayan issuer'a PAR göndermez (§11.2).
SPEC-PROTO-0001/PR16Kimlik attestation'ı yanıtında her credentials[] nesnesi, credential (SD-JWT VC) ile aynı proof anahtarına bağlı bir mso_mdoc (base64url IssuerSigned, ISO 18013-5) taşır; iki temsil aynı istekte üretilir, aynı status bitini paylaşır; cüzdan mdoc'u SD-JWT kopyasıyla çapraz doğrulamadan (aynı issuer sertifikası, aynı alanlar, deviceKey = cnf) saklamaz (ADR-0013 MD1–MD3).

SPEC-PROTO-0002 ​

Sunum Protokolü — OpenID4VP 1.0 Tamga Profili, DCQL ve Aşırı Talep Denetimi

KodAçıklama
SPEC-PROTO-0002/PV1presentation_definition (PE) reddedilir; yalnızca DCQL.
SPEC-PROTO-0002/PV2Cüzdan, client identifier'ı zincir kaydına çözmeyi dener (§2.3).
SPEC-PROTO-0002/PV3Şifresiz yanıt modu kullanılmaz.
SPEC-PROTO-0002/PV4origin prefix'i istek içinde client identifier olarak kabul edilmez.
SPEC-PROTO-0002/PV5Ret sebebi verifier'a sızmaz.
SPEC-PROTO-0002/PV6İstek nesnesi imzalı olmalıdır; redirect_uri prefix'i reddedilir.
SPEC-PROTO-0002/PV7KB-JWT aud değeri client identifier'ın tamamıdır (prefix dahil).
SPEC-PROTO-0002/PV8Sunum kaydı cihazda kalır; sunucuya gönderilmez.
SPEC-PROTO-0002/PV9Bir istekte en fazla 3 credential, 2 credential_sets.
SPEC-PROTO-0002/PV10nonce tek kullanımlıktır; verifier tekrar kabul etmez.
SPEC-PROTO-0002/PV11mso_mdoc sunumunda cihaz imzası, client identifier'ın tamamını (prefix dahil), nonce'u ve response_uri'yi bağlayan SessionTranscript üzerindedir; başka bir isteğe taşınan DeviceResponse A6'da reddedilir.

SPEC-SCHEMA-0001 ​

Şema Kayıt Defteri — schemas.tamga.network Mimarisi ve SchemaRegistry Kontratı

KodAçıklama
SPEC-SCHEMA-0001/D1Yayınlanmış bir Type Metadata / JSON Schema dosyasının (metadata_url) içeriği asla değişmez; minor/patch yeni metadata_url + hash, major yeni vct URN'i (ADR-0010 K7).
SPEC-SCHEMA-0001/D2contentHash (zincir) = vct#integrity (credential) = SHA-256(yayınlanan baytlar).
SPEC-SCHEMA-0001/D3Type Metadata içindeki vct, credential'daki vct ile aynı olmalıdır.
SPEC-SCHEMA-0001/D4Kök tip dışında her tipte extends + extends#integrity bulunur.
SPEC-SCHEMA-0001/D5extends zinciri döngüsüzdür ve en fazla 5 seviyedir.
SPEC-SCHEMA-0001/D6Hiçbir kişisel veri alanı sd: "never" olamaz.
SPEC-SCHEMA-0001/D7Her NETWORK şeması en az tr-TR ve en-US display taşır.
SPEC-SCHEMA-0001/D8Zincir kaydı, CDN yayınından sonra yapılır (§6 sıra kuralı).
SPEC-SCHEMA-0001/D9isAuthorizedForSchema varsayılanı false'tur (allowlist).

SPEC-SCHEMA-0002 ​

Eğitim Şemaları — TamgaStudentCredential ve TamgaDiplomaCredential

KodAçıklama
SPEC-SCHEMA-0002/E1Ulusal kimlik numarası bu iki NETWORK şemasında yer almaz (§1.2).
SPEC-SCHEMA-0002/E2grade ve thesis_title her zaman sd: always'tir (§3.3).
SPEC-SCHEMA-0002/E3is_graduate sabit true'dur; false bir diploma anlamsızdır.
SPEC-SCHEMA-0002/E4StudentCredential exp taşır; DiplomaCredential taşımaz.
SPEC-SCHEMA-0002/E5DiplomaCredential status taşır; StudentCredential taşımaz.
SPEC-SCHEMA-0002/E6Her iki şemada additionalProperties: false.
SPEC-SCHEMA-0002/E7isced_f_code her iki şemada zorunludur; 2, 3 veya 4 hane olabilir.
SPEC-SCHEMA-0002/E8Her LangString alanı en az kurumun resmî dilini içerir.
SPEC-SCHEMA-0002/E9StudentCredential.exp - iat ≤ 90 gün (tavan, §2.1.2).
SPEC-SCHEMA-0002/E10Hiçbir NETWORK eğitim şeması ulusal kimlik numarası alanı içermez (§1.2).
SPEC-SCHEMA-0002/E11Eşleme tablosunda karşılığı olmayan program için ihraç durur; tahmini kod üretilmez (§6.4.2).

SPEC-SCHEMA-0003 ​

Sektör Şemaları — Tüzel Kişilik, Sağlık, Ehliyet, Seyahat, Ticaret (İskelet)

KodAçıklama
SPEC-SCHEMA-0003/SK1Yedi koşullu kontrol listesi tamamlanmadan domain açılmaz.
SPEC-SCHEMA-0003/SK2health domaininde hiçbir kişisel veri alanı sd: "never" olamaz.
SPEC-SCHEMA-0003/SK3mDL, SD-JWT VC'ye çevrilmez; mdoc olarak kalır.
SPEC-SCHEMA-0003/SK4Devredilebilir ticaret belgeleri normal credential olamaz; ayrı ilkel gerekir.
SPEC-SCHEMA-0003/SK5Bir tüzel kişi kendi LE credential'ını kendine veremez.
SPEC-SCHEMA-0003/SK6Kimlik numarası hiçbir NETWORK şemasında yer almaz — domain fark etmez.
SPEC-SCHEMA-0003/SG1Uluslararası referans model seçilmiş ve RS-SCHEMA-0001 benzeri bir araştırmayla gerekçelendirilmiş
SPEC-SCHEMA-0003/SG2Taşıyıcı format kararı verilmiş (SD-JWT VC / mdoc / karma)
SPEC-SCHEMA-0003/SG3Türetilmiş boolean claim seti tanımlanmış
SPEC-SCHEMA-0003/SG4Seçici açıklama politikası (sd: always olacak alanlar) belirlenmiş
SPEC-SCHEMA-0003/SG5TTL ve status list kullanımı kararlaştırılmış
SPEC-SCHEMA-0003/SG6Asgari issuer kategorisi ve assurance seviyesi belirlenmiş
SPEC-SCHEMA-0003/SG7Sektöre özgü hukuki inceleme yapılmış

SPEC-TRUST-0001 ​

Faz B Güven Listeleri — lotl / tl-{cc} / anchors Formatı, Kadans ve TrustSource Eşdeğerliği

KodAçıklama
SPEC-TRUST-0001/TL1Her listede operator.status vardır ve Faz B boyunca "provisional"dır; on_behalf_of boş bırakılmaz.
SPEC-TRUST-0001/TL2Liste ve çapa günlüğü sürümleri monoton artar; her sürüm bir öncekinin hash'ini taşır; hiçbir satır/kayıt silinmez (statü değişikliği status_history'ye eklenir).
SPEC-TRUST-0001/TL3Liste ve çapa imzası ≥2 kaydırmalı sertifikayla yapılır; rotasyon ≥30 gün önce duyurulur; yeni anahtar eskisiyle imzalanır. (Demo sapması S-6 beyanlı.)
SPEC-TRUST-0001/TL4TrustSource dışında hiçbir bileşen liste dosyalarını yorumlamaz.
SPEC-TRUST-0001/TL5next_update geçmiş veya erişilemeyen liste ile doğrulama INDETERMINATE üretir; asla ACCEPTED, asla REJECTED.
SPEC-TRUST-0001/TL6Bilinmeyen list_format_version gören yükleyici durur ve alarm verir; kabul etmez.
SPEC-TRUST-0001/TL7Ulusal listeyi yalnızca o namespace'in imza anahtarı imzalar; operatör vekâleti operator.on_behalf_of ile beyan edilir.
SPEC-TRUST-0001/TL8Tamga PID vermez; pid_providers[] Faz B boyunca boştur. Tamga'nın geçici kimlik attestation'ı (ADR-0011) bir issuers[] kaydıdır (category: IDENTITY, class: QUALIFIED) ve devlet PID sağlayıcısı atanınca successor_id ile süpersede edilir.
SPEC-TRUST-0001/TL9Şema registered_at ve status_history.since kalıcıdır; yeniden derleme bunları değiştiremez (ilk çapa zamanı).
SPEC-TRUST-0001/TL10Zincire geçiş, liste arşivinin replay'i ve eşdeğerlik testi geçmeden tamamlanmış sayılmaz.
SPEC-TRUST-0001/TL11Hiçbir liste, çapa günlüğü veya değişiklik günlüğü kişisel veri, credential veya credential hash'i içermez.
SPEC-TRUST-0001/TL12Çapa günlüğü yalnızca imzalı checkpoint ile arşivlenir: arşivlenen satırlar archive/ altında kalır (silinmez), kontrol noktası previous_hash ile arşivin son satırına, archive.sha256 ile arşiv dosyasına bağlanır ve arşive giden satırların ürettiği son durumu (state) taşır; yükleyici ilk satırdaki kontrol noktasının imzasını, seq = seq_to + 1 koşulunu ve state'in varlığını doğrulamadan zinciri sürdürmez; arşivleme bir listenin ya da şemanın bilinirliğini asla düşürmez; tam geçmiş her zaman arşivlerden yeniden kurulabilir (TL10).

SPEC-WALLET-0001 ​

Tamga Wallet — Anahtar Yönetimi, Yedekleme, Onay Yüzeyi ve Batch Kullanımı

KodAçıklama
SPEC-WALLET-0001/WL1Holder anahtarları seed'den türetilmez; güvenli bölgeden çıkmaz.
SPEC-WALLET-0001/WL2Yedek belgeleri ve manifestoyu taşır; anahtarları taşımaz — cihaz değişiminde yeniden ihraç gerekir.
SPEC-WALLET-0001/WL3W1 (yazılım anahtarlı) cüzdan desteklenmez.
SPEC-WALLET-0001/WL4presentation_log cihazdan çıkmaz; yedeğe girmez.
SPEC-WALLET-0001/WL5Bir verifier'a her zaman aynı batch kopyası; farklı verifier'a farklı kopya.
SPEC-WALLET-0001/WL6Aynı verifier + aynı vct için disclosure seti tutarlıdır.
SPEC-WALLET-0001/WL7Otomatik yenileme yoktur.
SPEC-WALLET-0001/WL8Aşırı talep uyarısı ayrı görsel blok + gecikmeli düğme gerektirir.
SPEC-WALLET-0001/WL9Sunum anında şema sunucusuna istek yapılmaz.
SPEC-WALLET-0001/WL10Tamga kullanıcı adına kurtarma anahtarı tutmaz.
SPEC-WALLET-0001/WL11Her sunum PIN veya biyometri onayı gerektirir.
SPEC-WALLET-0001/WL12Geçiş kartı jetonu (tamga-pass+jwt) kişisel veri taşımaz: yalnızca iss (opak pass_id), aud, iat, exp (≤ 60 s), jti; belge içeriği ve claim'ler QR'a girmez (ADR-0012).
SPEC-WALLET-0001/WL13Geçiş kartı yalnızca güven listesinde kayıtlı bir RP/terminal grubu için üretilir ve kayıt anında verilen rıza süreli (≤ 6 ay) ve kapsamlıdır; kullanıcı rızayı istediği an geri alır (grant silinir). WL11'in tek istisnasıdır.
SPEC-WALLET-0001/WL14Her geçiş kartı gösterimi presentation_log'a yazılır (WL4 kapsamında, cihazda); Göster ekranı canlı saat ve süre gösterir.
SPEC-WALLET-0001/W1Yazılım (güvenli bölge yok)
SPEC-WALLET-0001/W2Cihaz güvenli bölgesi (Secure Enclave / StrongBox)
SPEC-WALLET-0001/W3Sertifikalı WSCD

Kodlanmamış Değişmez Listeleri ​

DokümanKonumDeğişmez sayısıNot
SPEC-ID-0001§7 Değişmezler5Superseded, kodlanmadı. Entity profili SPEC-ID-0002 ile superseded; kod ataması yapılmaz. Atıf madde numarasıyla yapılır (ör. SPEC-ID-0001 §7/2).

Kod Çakışmaları ​

Şu an çakışma yok. 264 kodlanmış değişmezin DOC-ID/KOD uzayında yinelenen giriş yoktur (üretici aynı dokümanda aynı kodu iki kez kabul etmez). Prefix uzayı (doküman kapsamlı): AG, AP, C, CA, CMP, D, DP, DY, E, G, GA, GD, GT, GV, HA, HV, I, IC, IDP, K, KC, L, MD, N, O, P, PR, PV, R, S, SC, SEV, SG, SK, TL, TS, W, WL, XC.


Durum ​

Üretilen dosya — 2026-09-28 (scripts/sync-invariants.mjs). Toplam 264 kodlanmış değişmez, 27 dokümanda.