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/v1

    Authentifizierung

    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

    GET
    /api/v1/block/{hash|height}

    Block abrufen

    Gibt detaillierte Informationen zu einem Block zurück – wahlweise per Block-Hash oder Block-Höhe.

    ParameterTypPflichtBeschreibung
    hash|heightstring | 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…"
    }
    GET
    /api/v1/tx/{txid}

    Transaktion abfragen

    Liefert vollständige Details einer Doichain-Transaktion inklusive Inputs, Outputs und Name-Operationen.

    ParameterTypPflichtBeschreibung
    txidstring
    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…"
    }
    GET
    /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.

    ParameterTypPflichtBeschreibung
    namestring
    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
    }
    POST
    /api/v1/doi/request

    Double-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.

    ParameterTypPflichtBeschreibung
    sender_emailstring
    Ja
    E-Mail-Adresse des Absenders
    recipient_emailstring
    Ja
    E-Mail des Empfängers, der bestätigen soll
    dataobjectNeinZusä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."
    }
    GET
    /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.

    ParameterTypPflichtBeschreibung
    nameIdstring
    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…"
    }
    GET
    /api/v1/balance/{address}

    Adress-Saldo abfragen

    Gibt den aktuellen DOI-Coin-Saldo einer Doichain-Adresse zurück.

    ParameterTypPflichtBeschreibung
    addressstring
    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

    CodeBedeutungBeschreibung
    200OKAnfrage erfolgreich
    400Bad RequestUngültige Parameter
    401UnauthorizedFehlender oder ungültiger API-Key
    404Not FoundRessource nicht gefunden
    429Too Many RequestsRate-Limit überschritten
    500Server ErrorInterner 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 .