Doichain API
RESTful API für die Doichain-Blockchain – Blöcke, Transaktionen, Name-Einträge und Double-Opt-In-Vorgänge programmatisch abfragen und steuern.
Base URL
https://api.doichain.org/api/v1Authentifizierung
API-Key-basierte Authentifizierung für schreibende Endpunkte. Lesende Abfragen sind öffentlich verfügbar.
Rate Limiting
100 Anfragen pro Minute für öffentliche Endpunkte, 1 000/min für authentifizierte Nutzer.
JSON-Format
Alle Antworten im standardisierten JSON-Format. UTF-8-Kodierung. Gzip-komprimiert.
RESTful Design
Saubere REST-Architektur mit vorhersagbaren URL-Mustern und HTTP-Statuscodes.
Authentifizierung
Für schreibende Endpunkte (POST, PUT, DELETE) ist ein API-Key erforderlich. Senden Sie diesen im Authorization-Header:
curl -X POST "https://api.doichain.org/api/v1/doi/request" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"API-Keys können über das Kontaktformular beantragt werden.
Endpunkte
/api/v1/block/{hash|height}Block abrufen
Gibt detaillierte Informationen zu einem Block zurück – wahlweise per Block-Hash oder Block-Höhe.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| hash|height | string | number | Ja | Block-Hash (hex) oder Block-Höhe (Ganzzahl) |
{
"hash": "0000000000abcdef…",
"height": 12345,
"confirmations": 48210,
"size": 342,
"time": 1700000000,
"nTx": 2,
"previousblockhash": "00000000009876…",
"nextblockhash": "00000000001234…"
}/api/v1/tx/{txid}Transaktion abfragen
Liefert vollständige Details einer Doichain-Transaktion inklusive Inputs, Outputs und Name-Operationen.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| txid | string | Ja | Transaktions-ID (64-stelliger Hex-String) |
{
"txid": "a1b2c3d4…",
"version": 2,
"size": 226,
"vout": [
{
"value": 0.01,
"nameOp": {
"op": "name_doi",
"name": "e/user@example.com",
"value": "{\"signature\":\"…\"}"
}
}
],
"confirmations": 6,
"blockhash": "0000000000abcdef…"
}/api/v1/name/{name}Name-Eintrag (DOI) abfragen
Gibt den aktuellen Zustand eines Doichain-Name-Eintrags zurück – z. B. einen Double-Opt-In-Datensatz mit Signatur und Ablaufdatum.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| name | string | Ja | Vollständiger Name-Key, z. B. e/user@example.com |
{
"name": "e/user@example.com",
"value": "{\"signature\":\"base64…\",\"validUntil\":\"2026-01-01\"}",
"txid": "a1b2c3d4…",
"height": 12345,
"expires_in": 36000,
"expired": false
}/api/v1/doi/requestDouble-Opt-In anfordern
Startet einen Double-Opt-In-Vorgang auf der Doichain. Sendet eine DOI-Anfrage, die vom Empfänger bestätigt werden muss, und schreibt die Bestätigung fälschungssicher in die Blockchain.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| sender_email | string | Ja | E-Mail-Adresse des Absenders |
| recipient_email | string | Ja | E-Mail des Empfängers, der bestätigen soll |
| data | object | Nein | Zusätzliche Metadaten (z. B. Newsletter-ID) |
{
"success": true,
"txid": "f5e6d7c8…",
"nameId": "e/user@example.com",
"message": "DOI-Anfrage wurde gesendet und in die Blockchain geschrieben."
}/api/v1/doi/verify/{nameId}DOI-Status verifizieren
Prüft, ob ein Double-Opt-In-Vorgang bestätigt wurde und liefert den Verifizierungsstatus inklusive Blockchain-Beweis.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| nameId | string | Ja | Name-ID des DOI-Vorgangs (z. B. e/user@example.com) |
{
"nameId": "e/user@example.com",
"confirmed": true,
"confirmations": 12,
"confirmedAt": "2025-12-15T14:30:00Z",
"txid": "f5e6d7c8…",
"blockHeight": 123456,
"signature": "base64…"
}/api/v1/balance/{address}Adress-Saldo abfragen
Gibt den aktuellen DOI-Coin-Saldo einer Doichain-Adresse zurück.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| address | string | Ja | Doichain-Adresse (Base58Check) |
{
"address": "NVa3e7k…",
"balance": 150.42,
"unconfirmed": 0.5
}Schnellstart – JavaScript
Beispiel: DOI-Status mit fetch abfragen.
const API = "https://api.doichain.org/api/v1";
async function verifyDoi(email) {
const res = await fetch(
`${API}/doi/verify/${encodeURIComponent("e/" + email)}`,
{ headers: { Authorization: "Bearer YOUR_API_KEY" } }
);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return res.json();
}
// Nutzung
verifyDoi("user@example.com")
.then(data => console.log("Bestätigt:", data.confirmed))
.catch(err => console.error(err));Fehlercodes
| Code | Bedeutung | Beschreibung |
|---|---|---|
| 200 | OK | Anfrage erfolgreich |
| 400 | Bad Request | Ungültige Parameter |
| 401 | Unauthorized | Fehlender oder ungültiger API-Key |
| 404 | Not Found | Ressource nicht gefunden |
| 429 | Too Many Requests | Rate-Limit überschritten |
| 500 | Server Error | Interner Serverfehler |
SDKs & Bibliotheken: Offizielle Client-Bibliotheken für JavaScript/Node.js und Python befinden sich in Vorbereitung. Den Quellcode der API finden Sie auf GitHub .