> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Handel mit Vorbestätigungen

> "Reagieren Sie auf Solana-Transaktionen, bevor sie eintreffen: Abonnieren Sie PreconfirmSubscribe-Filter, dekodieren Sie die binäre Nutzlast und handeln Sie mit Sender Max."

[Vorbestätigungen](/docs/de/pre-confirmations/overview) streamen Transaktionen, bevor sie fragmentiert werden — Helius bestätigt Vorbestätigungen, sobald der Leader sie ausführt, zusammen mit ihrem Ausführungsstatus. Dieser Leitfaden erstellt einen Listener, der ein Zielkonto überwacht, jede Transaktion dekodiert und mit [Sender Max](/docs/de/sending-transactions/sender-max) reagiert.

<Tip>
  Vorbestätigungen erfordern einen [Professional-Plan oder höher](/docs/de/billing/plans) und kosten 10 Credits pro Nachricht.
</Tip>

## Legen Sie den Umfang des Streams vor dem Verbinden fest

Ein ungefilterter `preconfSubscribe` liefert jede Transaktion für 10 Credits, also filtern Sie serverseitig und zahlen Sie nur für das, worauf Sie handeln.

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "preconfSubscribe",
  "params": [
    {
      "failed": false,
      "regionInclude": ["ewr"],
      "accountInclude": ["TARGET_WALLET_OR_PROGRAM"]
    }
  ]
}
```

Drei Filter decken die meisten Trading-Listener ab:

* `failed: false` lässt Transaktionen fallen, von denen bereits bekannt ist, dass sie zurückgesetzt wurden, auf die Sie nicht eilen müssen.
* `regionInclude` pinnt den Stream an die [Region](/docs/de/pre-confirmations/preconf-subscribe#standortfiltern), die Ihrer Infrastruktur am nächsten liegt, sodass ein regionsübergreifender Sprung den Vorsprung nicht zunichte macht.
* `accountInclude` passt auf jede Transaktion, die auf Ihr Ziel verweist: eine Wallet, ein AMM-Pool, ein Programm usw. Helius löst Adressnachschlagetabellen serverseitig auf, sodass der Filter auch passt, wenn das Konto über ein ALT geladen wird.

## Verbinden, abonnieren und dekodieren

`preconfSubscribe` wird vom Gatekeeper-Endpunkt (`wss://beta.helius-rpc.com`) bereitgestellt, und Benachrichtigungen kommen als binäre Frames, nicht als JSON.

Jeder Frame ist ein festes 18-Byte-Präfix, gefolgt von der bincode-serialisierten Transaktion:

```javascript listener.js theme={"system"}
const WebSocket = require('ws');
const { VersionedTransaction } = require('@solana/web3.js');

const ws = new WebSocket('wss://beta.helius-rpc.com/?api-key=YOUR_API_KEY');

ws.on('open', () => {
  ws.send(JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'preconfSubscribe',
    params: [{
      failed: false,
      regionInclude: ['ewr'],
      accountInclude: ['TARGET_WALLET_OR_PROGRAM']
    }]
  }));
  setInterval(() => ws.ping(), 30_000); // keep the connection alive
});

ws.on('message', (data, isBinary) => {
  if (!isBinary) {
    const msg = JSON.parse(data.toString());
    if (msg.id === 1) console.log('Subscribed, ID:', msg.result);
    return;
  }

  // version (u8) | slot (u64 LE) | tx_index (u64 LE) | status (u8) | bincode(VersionedTransaction)
  const buf = Buffer.from(data);
  if (buf.readUInt8(0) !== 1) return; // unknown schema version; update your decoder
  const slot = buf.readBigUInt64LE(1);
  const status = buf.readUInt8(17); // 0 = failed, 1 = success, 2 = unknown
  const tx = VersionedTransaction.deserialize(buf.subarray(18));

  onScheduledTransaction({ slot, status, tx });
});

ws.on('error', console.error);
ws.on('close', () => process.exit(1)); // let your supervisor restart and resubscribe
```

Überprüfen Sie zuerst das Versionsbyte. Wenn Helius das Nutzlastformat aktualisiert, wird die Version erhöht, und das Branching hält Ihren Dekodierer funktionsfähig. Die deserialisierte Transaktion liefert Ihnen die Anweisungen, Konten und Signatur.

## Handeln mit Sender Max

Eine Vorbestätigung zahlt sich nur aus, wenn Ihre Antwort zuerst eingeht.

Senden Sie Ihre Reaktion über [Sender Max](/docs/de/sending-transactions/sender-max): das 0,001 SOL Trinkgeld wird in den Prioritäts-Trinkgeldpuffer eingebracht und über alle Hochgeschwindigkeitspfade geleitet:

```javascript theme={"system"}
async function onScheduledTransaction({ slot, status, tx }) {
  if (!strategy.shouldReact(tx)) return;

  // strategy is your own code: it decides whether to react and returns a
  // signed, base64-encoded transaction that includes the tip and priority fee
  const reaction = await strategy.buildTransaction(tx);
  await fetch('http://ewr-sender.helius-rpc.com/fast', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      jsonrpc: '2.0',
      id: Date.now().toString(),
      method: 'sendTransaction',
      params: [reaction, { encoding: 'base64', skipPreflight: true, maxRetries: 0 }]
    })
  });
}
```

Halten Sie diesen Handler kurz. Entscheiden und senden, und verschieben Sie das Logging, die Buchhaltung und die Abstimmung aus dem Empfangspfad. Sehen Sie [Land Trades with Sender](/docs/de/sending-transactions/guides/land-trades-with-sender) für die vollständige Sendeschleife einschließlich Verbindungsaufwärmung und Gebührenschätzung.

## Bestätigen Sie das Eintreffen und erwarten Sie Lücken

Eine Vorbestätigung ist ein früher Einblick. Die Transaktion ist noch nicht abgeschlossen und kann immer noch fehlschlagen oder abgelehnt werden, daher gelten zwei Regeln:

* Bestätigen Sie durch Standard-Commitment-Prüfungen (`getSignatureStatuses` oder einen `processed`-Commitment-Stream), bevor Sie die beobachtete Transaktion oder Ihre Reaktion als endgültig betrachten.
* Erwarten Sie Lücken. Die Abdeckung skaliert mit dem Anteil des weitergeleiteten Einsatzes zu Helius, sodass einige Slots keine Nachrichten erzeugen. Das ist [erwartetes Verhalten](/docs/de/pre-confirmations/overview#abdeckung) und keine unterbrochene Verbindung, und der Keepalive-Ping unterscheidet beides. Resubscribe bei Beendigung.

## Verwandte Anleitungen

<CardGroup cols={2}>
  <Card title="preconfSubscribe API-Referenz" icon="code" href="/docs/de/pre-confirmations/preconf-subscribe">
    Volle Filtersemantik, Regionscodes und die Layout der binären Nutzlast
  </Card>

  <Card title="Handel mit vorverarbeiteten Transaktionen" icon="bolt" href="/docs/de/preprocessed-transactions/guides/trade-on-preprocessed">
    Abdeckung vor Ausführung bei 0,1 Credits pro Nachricht, in allen kostenpflichtigen Plänen
  </Card>
</CardGroup>
