Dokumentasi

SignChain API

API SignChain.id memungkinkan Anda mendaftarkan hash dokumen ke SUI Blockchain dan memverifikasinya secara programatik — langsung dari aplikasi atau script Anda, tanpa perlu membuka browser.

â„šī¸
API ini dirancang untuk register hash, bukan upload file. File Anda tidak pernah meninggalkan komputer Anda — hanya sidik jari digitalnya (SHA-256) yang dikirim ke blockchain.
Format
JSON (REST)
Autentikasi
X-API-Key header
Network
SUI Mainnet

Autentikasi

API Key

Setiap request ke API register harus menyertakan API Key di header. API Key didapatkan setelah KYC Anda disetujui oleh tim SignChain.id.

âš ī¸
API Key bersifat rahasia. Jangan share atau commit ke repository publik. Jika bocor, segera regenerate di /dashboard/profile.
Header yang diperlukan
HTTP Header
X-API-Key: sc_your_api_key_here Content-Type: application/json
Cara mendapatkan API Key
1
Daftar akun
2
Lengkapi KYC
Upload dokumen identitas di Dashboard → KYC Status
3
Tunggu persetujuan
Tim SignChain.id akan mereview dalam 1×24 jam
4
Ambil API Key
Setelah approved, API Key tersedia di Dashboard → Profil & API Key

Quick Start

Daftarkan dokumen dalam 30 detik

Contoh paling sederhana: hash file lalu daftarkan ke blockchain.

Python
Python
import hashlib, requests # 1. Hitung SHA-256 file def sha256(path): h = hashlib.sha256() with open(path, 'rb') as f: for chunk in iter(lambda: f.read(65536), b''): h.update(chunk) return h.hexdigest() # 2. Register ke blockchain res = requests.post( "https://signchain.id/api/register.php", headers={"X-API-Key": "YOUR_API_KEY"}, json={ "file_hash": sha256("dokumen.pdf"), "file_name": "dokumen.pdf", "ref_id": "INV-2026-001", } ) print(res.json())
cURL
cURL
curl -X POST https://signchain.id/api/register.php \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"file_hash":"a3f5d9...","file_name":"dokumen.pdf","ref_id":"INV-001"}'

Endpoint

Register Dokumen

Mendaftarkan hash dokumen ke SUI Blockchain secara permanen. Setiap hash yang berhasil didaftarkan akan membuat ProofRecord object on-chain yang dapat diverifikasi kapanpun.

POST /api/register.php Memerlukan API Key
Request Body (JSON)
FieldTipeWajibKeterangan
file_hashstringYASHA-256 hash file dalam format hex (64 karakter)
file_namestringopsionalNama file asli, maks 500 karakter
file_typestringopsionalEkstensi file, contoh: pdf, docx
ref_idstringopsionalNomor referensi internal Anda, contoh: INV-2026-001
descriptionstringopsionalDeskripsi dokumen, maks 1000 karakter
Contoh Request
JSON
{ "file_hash": "a3f5d9c2e1b4a7f8d0e3c6b9a2f5d8e1b4a7c0f3b0a3f6c9...", "file_name": "RFQ-ABC-2026-v1.pdf", "file_type": "pdf", "ref_id": "RFQ-ABC-2026-v1", "description": "Laporan penetration testing PT ABC periode Q1 2026" }
Response
JSON Response — 200
{ "status": "success", "data": { "file_hash": "a3f5d9c2e1b4a7f8d0e3c6b9a2f5d8...", "file_name": "RFQ-ABC-2026-v1.pdf", "file_type": "pdf", "reference_id": "RFQ-ABC-2026-v1", "object_id": "0xdc9db8...c53d8", "tx_digest": "CWs9FyMZXd2UJHvUFwJH...", "registered_at": "2026-05-07 14:12:00", "network": "mainnet", "explorer_url": "https://suivision.xyz/txblock/CWs9Fy...", "object_url": "https://suivision.xyz/object/0xdc9db8...", "quota_remaining": 7 } }
JSON Response — 409 Duplicate
{ "status": "error", "code": "DUPLICATE_HASH", "message": "Hash ini sudah terdaftar sebelumnya.", "data": { "object_id": "0xdc9db8...c53d8", "tx_digest": "CWs9FyMZ...", "registered_at": "2026-05-07 14:12:00", "explorer_url": "https://suivision.xyz/object/0xdc9db8..." } }
JSON Response — 429 Quota
{ "status": "error", "message": "Quota bulan ini sudah habis.", "data": { "quota_used": 10, "quota_total": 10 } }
JSON Response — 401 Unauthorized
{ "status": "error", "message": "API Key tidak valid." }

Endpoint

Verifikasi Hash

Memverifikasi apakah suatu hash sudah terdaftar di blockchain. Endpoint ini tidak memerlukan API Key — siapapun bisa memverifikasi.

POST /api/verify.php Publik — tanpa API Key
Request Body (JSON)
FieldTipeWajibKeterangan
file_hashstringYASHA-256 hash yang ingin diverifikasi (64 hex char)
Contoh Request
cURL
curl -X POST https://signchain.id/api/verify.php \ -H "Content-Type: application/json" \ -d '{"file_hash":"a3f5d9c2e1b4a7f8..."}'
Response
JSON Response — 200
{ "status": "success", "data": { "file_hash": "a3f5d9c2e1b4a7f8...", "status": "VALID", "object_id": "0xdc9db8...c53d8", "tx_digest": "CWs9FyMZ...", "registered_at": "2026-05-07 14:12:00", "reference_id": "RFQ-ABC-2026-v1", "publisher": { "name": "Andika Mahesa", "organization": "PT Sarahma Global Informatika", "kyc_status": "APPROVED" }, "explorer_url": "https://suivision.xyz/object/0xdc9db8..." } }
JSON Response — 404
{ "status": "error", "message": "Hash tidak ditemukan di blockchain." }

Referensi

Kode Error

HTTP CodeKondisiSolusi
200Sukses—
400file_hash tidak valid (bukan 64 hex char)Pastikan hash adalah SHA-256 hex lowercase
401API Key tidak ada atau tidak validCek header X-API-Key, pastikan KYC sudah APPROVED
405Method tidak diizinkanGunakan POST
409Hash sudah terdaftar (DUPLICATE_HASH)Hash ini sudah ada di blockchain sebelumnya
429Quota bulan ini habisHubungi tim SignChain.id untuk upgrade quota
500Server error / TX blockchain gagalCoba lagi dalam beberapa menit

Referensi

Rate Limit & Quota

Setiap akun memiliki quota register dokumen per bulan sesuai plan. Quota direset setiap awal bulan.

PlanQuota/BulanAPI Access
Free10 dokumen✓ (setelah KYC)
Starter100 dokumen✓
Pro1.000 dokumen✓
EnterpriseCustom✓

Field quota_remaining di response register menunjukkan sisa quota bulan ini.


Tool

Python CLI Tool

Script Python siap pakai untuk register dokumen dari PC Anda. Tidak perlu buka browser — cukup jalankan dari terminal.

Instalasi
1
Install dependensi
Terminal
pip install requests
2
Download script
Terminal
curl -O https://signchain.id/assets/signchain-cli.py
3
Simpan API Key
Terminal
python signchain-cli.py config --api-key YOUR_API_KEY
Penggunaan
Terminal
# Hitung hash saja python signchain-cli.py hash dokumen.pdf # Register dokumen ke blockchain python signchain-cli.py register dokumen.pdf # Register dengan referensi dan deskripsi python signchain-cli.py register dokumen.pdf \ --ref "RFQ-ABC-2026-v1" \ --desc "RFQ-ABC-2026-v1C" # Verifikasi dokumen python signchain-cli.py verify dokumen.pdf # Register semua file dalam folder python signchain-cli.py batch ./dokumen/
âŦ‡ī¸ Download signchain-cli.py