Entwickler
Eine API. Jedes Produkt.
Zuerst die Identitätsprüfung, dann ein gesponsertes Konto, dann Bind und Unlock. Ihr API-Schlüssel bleibt auf Ihrem eigenen Server: Browser oder Mobile-App sprechen mit Ihrem Backend, und Ihr Backend spricht mit uns. Funktioniert mit WharfKit-Wallet-Sitzungen und mit Passkeys.
const baseUrl = process.env.BOUND_IDENTITY_URL!;
const apiKey = process.env.BOUND_IDENTITY_API_KEY!; // server-side only
async function identityFetch(path, init) {
const res = await fetch(baseUrl + path, {
...init,
headers: {
Authorization: "Bearer " + apiKey,
Accept: "application/json",
"Content-Type": "application/json",
...init?.headers,
},
});
const body = await res.json();
if (!res.ok) throw new Error(body.message || "HTTP " + res.status);
return body;
}
// 1. Verify the person first — no chain account yet (default organization policy).
const { personDid, verificationUrl } = await identityFetch("/v1/kyc/start", {
method: "POST",
body: JSON.stringify({}),
});
// … open verificationUrl from your KYC provider …
// 2. When approved, take the one-time create token.
const { kycCreateToken } = await identityFetch(
"/v1/kyc/status?personDid=" + encodeURIComponent(personDid),
);
// 3. Sponsor the provisional account. Token replay is rejected.
const { accountDid } = await identityFetch("/v1/accounts/free", {
method: "POST",
body: JSON.stringify({
ownerPublicKey,
personDid,
kycCreateToken,
// Production also requires emailProofToken + phoneProofToken
}),
});
// 4. Bind the approved person to this account: the user signs once.
const { payloadToSign, message } = await identityFetch("/v1/bind/challenge", {
method: "POST",
body: JSON.stringify({ accountDid, personDid }),
});
await identityFetch("/v1/bind/confirm", {
method: "POST",
body: JSON.stringify({
accountDid,
personDid,
nonce: message.nonce,
signature, // WharfKit / passkey over payloadToSign
}),
});
// 5. Lift faucet limits. Done.
await identityFetch("/v1/accounts/unlock", {
method: "POST",
body: JSON.stringify({ accountDid }),
});Kein Ausweisdokument läuft durch Ihren Code, und kein Secret erreicht den Browser. Standardorganisationen verweigern die kostenlose Kontoerstellung, bis das KYC genehmigt ist. Integrieren Sie gegen die Sandbox unter sandbox.identityinc.io, kostenlose Testprüfungen, simulierte Chain, und verlagern Sie dann Produktionsverkehr auf Builder oder Growth.
Leitfäden und Referenz
Schnellstart, Authentifizierung, Webhooks und alle Fehlercodes der API. Auf Englisch veröffentlicht.
API
OpenAPI-Spezifikation: https://identityinc.io/openapi.yaml. Produktion: https://api.identityinc.io. Sandbox: https://sandbox.identityinc.io (bi_test_-Schlüssel, kostenlose Testprüfungen, simulierte Chain). Lokale Entwicklung nutzt standardmäßig http://127.0.0.1:4100.
Ein Schlüssel pro Produkt
Vergeben Sie für jedes Produkt einen eigenen API-Schlüssel: Ihre Wallet, Ihren Marktplatz, Ihre Kernbanken-Integration. Jeder Schlüssel sieht nur seine eigenen Daten; die Trennung erzwingt die API, nicht eine Konvention. Sandbox-Schlüssel sind bi_test_… über Checkout auf sandbox.identityinc.io; Produktions-Schlüssel sind bi_… über die Anmeldung auf identityinc.io: Hosts nie mischen.