Diese Seite ist eine Community-Übersetzung und dient nur zur Orientierung; maßgeblich ist die englische Originalversion.
Englisches Original ↗

Kontoabstraktions-Modi

Der Kontoabstraktionsmodus eines Nutzers bestimmt, wie Spot- und Perp-Guthaben zusammenwirken und ob verschiedene Assets als Sicherheit für den Perp-Handel verwendet werden.

Die unterstützten Modi sind:

  1. Unified Account (für die meisten Nutzer empfohlen): ein einziges Guthaben pro Asset. Dieses Guthaben dient als Sicherheit für alle Cross-Margin-Positionen in diesem Asset und ist mit dem Spot-Guthaben in diesem Asset zusammengeführt. Beispielsweise ist das USDC-Guthaben die einzige Quelle für von Validatoren betriebene Perps, XYZ-Perps und den Spot-Handel gegen USDC als Quote-Asset. Das USDT-Spot-Guthaben ist die einzige Quelle für CASH-Perps und den Spot-Handel gegen USDT als Quote-Asset.
  2. Portfolio Margin (höchste Kapitaleffizienz): ein einziges Portfolio, das alle zugelassenen Assets zusammenführt, derzeit HYPE, BTC, USDC, USDT. Weitere Einzelheiten finden Sie unter Portfolio Margin.
  3. Manual / Standard (empfohlen für Market Maker, automatisierte Nutzer mit hohem Volumen sowie Deployer/Builder): getrennte Perp- und Spot-Guthaben, getrennte DEX-Guthaben. Cross-Margin gilt für jede DEX separat.

Es gibt einen weiteren, eingestellten Modus, der hier der Vollständigkeit halber aufgeführt wird:

  1. DEX-Abstraktion (eingestellt): USDC-Guthaben werden standardmäßig dem Perp-Guthaben zugeordnet, alle übrigen Sicherheiten dem Spot-Guthaben. WICHTIG: Cross-Margin verhält sich bei HIP-3-DEXs für Nutzer der DEX-Abstraktion nicht intuitiv.

Wichtige Hinweise:

  1. Adressen für Builder Codes müssen sich im Standard-Modus befinden, damit Builder-Gebühren anfallen
  2. Portfolio Margin und Unified Account sind auf 50k Nutzeraktionen pro Tag begrenzt. Der Standard-Modus unterliegt keinen solchen Einschränkungen.
  3. Für API-Nutzer zeigen Unified Account und Portfolio Margin alle Guthaben und Holds im Spot-Clearinghouse-State an. Individuelle Perp-DEX-Nutzerzustände sind nicht aussagekräftig.

Beispiele für die vom Agenten und vom Nutzer signierten Aktionen zum Ändern der Kontoabstraktionsmodi finden Sie im Python SDK und in der API-Dokumentation.

Unified-Account-Ratio

Zur Berechnung der präzisen Unified-Account-Ratio für die Überwachung des Liquidationsrisikos:

function computeUnifiedAccountRatio(
    multiverse: Record<string, { index: number; collateralToken: number }>,
    perpDexStates: Array<{
      clearinghouseState: {
        crossMaintenanceMarginUsed: number;
        assetPositions: Array<{
          position: { leverage: { type: string }; marginUsed: number };
        }>;
      };
    }>,
    spotBalances: Array<{ token: number; total: number }>,
  ): number {
    const indexToCollateralToken: Record<number, number> = {};
    for (const meta of Object.values(multiverse)) {
      indexToCollateralToken[meta.index] = meta.collateralToken;
    }

    const crossMarginByToken: Record<number, number> = {};
    const isolatedMarginByToken: Record<number, number> = {};

    for (let index = 0; index < perpDexStates.length; index++) {
      const dex = perpDexStates[index];
      const token = indexToCollateralToken[index];
      if (dex === undefined || token === undefined) continue;

      crossMarginByToken[token] =
        (crossMarginByToken[token] ?? 0) +
        dex.clearinghouseState.crossMaintenanceMarginUsed;

      for (const ap of dex.clearinghouseState.assetPositions) {
        if (ap.position.leverage.type === "isolated") {
          isolatedMarginByToken[token] =
            (isolatedMarginByToken[token] ?? 0) + ap.position.marginUsed;
        }
      }
    }

    let maxRatio = 0;
    for (const [tokenStr, crossMargin] of Object.entries(crossMarginByToken)) {
      const token = Number(tokenStr);
      const spotTotal = spotBalances.find((b) => b.token === token)?.total ?? 0;
      const isolatedMargin = isolatedMarginByToken[token] ?? 0;
      const available = spotTotal - isolatedMargin;
      if (available > 0) {
        maxRatio = Math.max(maxRatio, crossMargin / available);
      }
    }

    return maxRatio;
  }
Inoffizielle Community-Übersetzung der Hyperliquid-Dokumentation. Inhalte © Hyperliquid; maßgeblich ist die englische Version. Quelle: https://hyperliquid.gitbook.io/hyperliquid-docs/trading/account-abstraction-modes