DApp Open APIs
Unsere bestehende dApp auf sofa.org ist ein kritisches Workflow-Feature und der Hauptweg für Benutzer, um mit den SOFA-Protokollen zu interagieren. Wir ermutigen jedoch andere Entwickler, den Zugang zu ermöglichen und sich über ihre eigenen dApps mit SOFA zu verbinden, um das Wachstum unseres Ökosystems zu maximieren. Wir betrachten diese als unsere 'Broker'-Partner und ermutigen interessierte Parteien, das SOFA-Team für weitere API-Informationen zu kontaktieren.
DNT
Empfohlene DNT RFQ-Liste Anfrage
GET /rfq/dnt/recommended-list
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| vault | true | string | Vertragsinformationen |
| chainId | true | int | Chain-ID |
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | int | 0 zeigt an, dass das Rückgabeergebnis normal ist |
| message | string | Fehlermeldung, die im Falle einer Ausnahme zurückgegeben wird |
| value | list[object] | Wie unten gezeigt |
Objekt
| Feldname | Typ | Beschreibung |
|---|---|---|
| rfqId | number | RFQ-ID |
| chainId | int | Chain-ID |
| vault | string | Vertragsadresse |
| riskType | string | Risikotyp: PROTECTED, RISKY |
| forCcy | string | Basiswährung |
| domCcy | string | Währungspaar |
| depositCcy | string | Zeichnungswährung |
| lowerBarrier | number | Untere Preis |
| upperBarrier | number | Obere Preis |
| depositAmount | number | RFQ-Kaufbetrag |
| expiry | number | Ablaufzeitstempel (z. B. 1672387200) |
| timestamp | number | Auslösezeitpunkt der aktuellen Preisgestaltung; die nächste Beobachtungsstartzeit wird basierend auf dieser Logik berechnet |
| observationStart | number | Geschätzte Startzeit der Beobachtung für Knock-In/Out basierend auf dem Zeitstempel |
| feeRate | object | Handels- und Abwicklungsgebührensatz (optional) |
| leverageInfo | object | Kreditinformationen (optional) |
| relevantDollarPrices | list[object] | Tokenpreis, der für die RCH-Preisumrechnung und Airdrop-Berechnung erforderlich ist (optional) |
| amounts | object | Berechnete Beträge (optional) |
| apyInfo | object | Annualisierte Informationen, verfügbar für Nicht-Surge-Produkte (optional) |
| oddsInfo | object | Quoteninformationen, verfügbar für Surge-Produkte (optional) |
| quote | object | |
| > anchorPrices | list[string] | 20000000000, 30000000000 |
| > makerCollateral | string | Sicherheiten des Makers |
| > totalCollateral | string | Gesamte Sicherheiten (Taker+Maker) |
| > collateralAtRisk | string | Erforderlich, wenn garantiert (optional) |
| > makerBalanceThreshold | string | Maker-Balance-Schwelle |
| > deadline | number | Ablaufzeitstempel (z. B. 1672387200) |
| > makerWallet | string | Wallet des Makers (optional) |
| > signature | string | Unterschrift (optional) |
Anforderungsbeispiel
GET rfq/dnt/recommended-list?vault=xxxxxx&chainId=1
Antwort
{
"code":0,
"message":"",
"value":[
{
"rfqId":1233992,
"riskType":"PROTECTED",
"forCcy":"BTC",
"expiry":1672387200,
"lowerBarrier":18000,
"upperBarrier":24000,
"depositCcy":"BTC",
"depositAmount": 0.05,
"protectedApy":0.01,
"deadline":1672279892,
"recommended":true,
"quote":
{
"rfqId":1233992,
"inRangeApy":0.25,
"tenor":7.9,
"fundingAmount":0.25,
"depositAmount":1,
"premiumCoin":"BTC",
"premiumAmount":0.05,
"bookingQuantity":0.3,
"totalAmount":0.05,
"payoff":0.3,
"deadline":1672279892,
"signature":"dsdkksdsksdk"
}
}
]
}
DNT Anfrage
- Hinweise:
- Bitte geben Sie die Wallet-Adresse des Benutzers bei einer reinen Anfrage nicht weiter.
- Die Wallet-Adresse eines Benutzers sollte nur bei einer Anmeldung weitergegeben werden.
GET /rfq/dnt/quote
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| vault | true | string | Vertragsinformationen |
| chainId | true | int | Chain-ID |
| expiry | true | number | Zeitstempel der zweiten Ebene für das Ablaufdatum, z.B. 1672387200 |
| lowerBarrier | true | number | Untere Preisgrenze |
| upperBarrier | true | number | Obere Preisgrenze |
| depositAmount | true | number | RFQ-Kaufbetrag |
| inputApyDefinition | true | string | Der zugrunde liegende Code ist Enum, das angibt, wie der Eingabe-APY berechnet wird: OptimusDefaultAPY, BinanceDntAPY, AaveLendingAPY |
| protectedApy | false | number | Garantierte jährliche Rendite (leer für RISKY, erforderlich für geschützt) |
| fundingApy | false | number | AAVE-Jahresrendite (leer für RISKY, erforderlich für geschützt) |
| takerWallet | false | string | Öffentliche Adressinformationen der Brieftasche des Anfragenden |
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | int | 0 zeigt an, dass das Rückgabeergebnis normal ist |
| message | string | Fehlermeldung, die im Falle einer Ausnahme zurückgegeben wird |
| value | object | Wie unten gezeigt |
Objekt
| Feldname | Typ | Beschreibung |
|---|---|---|
| rfqId | number | RFQ-ID |
| vault | string | Vertragsadresse |
| chainId | int | Chain-ID |
| riskType | string | Risikotyp: GESCHÜTZT, RISKANT |
| forCcy | string | Unterliegende Währung |
| domCcy | string | Währungspaar |
| depositCcy | string | Abonnierungswährung |
| lowerBarrier | number | Untere Preisgrenze |
| upperBarrier | number | Obere Preisgrenze |
| depositAmount | number | RFQ-Kaufbetrag |
| expiry | number | Ablaufzeitstempel (z.B. 1672387200) |
| timestamp | number | Auslösezeitpunkt der aktuellen Preisgestaltung; die nächste Beobachtungsstartzeit wird basierend auf dieser Logik berechnet |
| observationStart | number | Geschätzter Startzeitpunkt der Beobachtung für das Ein- und Ausknocken basierend auf dem Zeitstempel |
| feeRate | object | Handels- und Abwicklungsgebührensatz (optional) |
| leverageInfo | object | Kreditinformationen (optional) |
| relevantDollarPrices | list[object] | Tokenpreis, der für die RCH-Preiskonvertierung und Airdrop-Berechnung erforderlich ist (optional) |
| amounts | object | Berechnete Beträge (optional) |
| apyInfo | object | Jährliche Informationen, verfügbar für Nicht-Surge-Produkte (optional) |
| oddsInfo | object | Quoteninformationen, verfügbar für Surge-Produkte (optional) |
| quote | object | |
| > quoteId | number | |
| > anchorPrices | list[string] | 20000000000, 30000000000 |
| > makerCollateral | string | Betrag der Sicherheiten des Makers |
| > totalCollateral | string | Gesamter Sicherheitenbetrag (Taker+Maker) |
| > collateralAtRisk | string | Erforderlich, wenn garantiert (optional) |
| > makerBalanceThreshold | string | Maker-Balance-Schwelle |
| > deadline | number | Ablaufzeitstempel (z.B. 1672387200) |
| > makerWallet | string | Wallet des Makers (optional) |
| > signature | string | Unterschrift (optional) |
DNT Gewinnwahrscheinlichkeit
Wahrscheinlichkeit, innerhalb der Grenzen bis zum Ablauf zu bleiben
GET rfq/dnt/winning-probabilities
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| forCcy | true | string | Basiswährung |
| expiry | true | number | Zeitstempel der zweiten Ebene für das Ablaufdatum, z.B. 1672387200 |
| lowerBarrier | true | number | Untere Preisgrenze |
| upperBarrier | true | number | Obere Preisgrenze |
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | int | 0 zeigt an, dass das Rückgabeergebnis normal ist |
| message | string | Fehlermeldung, die im Falle einer Ausnahme zurückgegeben wird |
| value | list[object] | Wie unten gezeigt |
Objekt
| Feldname | Typ | Beschreibung |
|---|---|---|
| spotPrice | number | Spotpreis |
| timestamp | number | |
| probabilities | object | Gewinnwahrscheinlichkeit |
Anforderungsbeispiel
GET rfq/dnt/winning-probabilities?forCcy=BTC&expiry=xxxx&lowerBarrier=xxx&upperBarrier=xxx
Antwort
{
"code":0,
"message":"",
"value": {
"spotPrice": 62121,
"timestamp": 1727080594,
"probabilities": {
"probDntStayInRange": 0.4,
"probBullTrendItmLowerStrike": null,
"probBullTrendItmUpperStrike": null,
"probBearTrendItmLowerStrike": null,
"probBearTrendItmUpperStrike": null
}
}
}
Smart Trend
Empfohlene Smart Trend RFQ-Liste Anfrage
GET rfq/smart-trend/recommended-list
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| vault | wahr | string | Vertragsinformationen |
| chainId | wahr | int | Chain-ID |
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | int | 0 zeigt an, dass das Rückgabeergebnis normal ist |
| message | string | Fehlermeldung, die im Falle einer Ausnahme zurückgegeben wird |
| value | list[object] | Wie unten gezeigt |
Objekt
| Feldname | Typ | Beschreibung |
|---|---|---|
| rfqId | number | RFQ-ID |
| chainId | int | Chain-ID |
| vault | string | Vertragsadresse |
| riskType | string | Risikotyp: PROTECTED, RISKY |
| direction | string | BULLISH, BEARISH |
| forCcy | string | Basiswährung |
| domCcy | string | Währungspaar |
| depositCcy | string | Zeichnungswährung |
| lowerBarrier | number | Untere Preis |
| upperBarrier | number | Obere Preis |
| depositAmount | number | RFQ-Kaufbetrag |
| expiry | number | Ablaufzeitstempel (z.B. 1672387200) |
| timestamp | number | Auslösezeitpunkt der aktuellen Preisgestaltung; die nächste Beobachtungsstartzeit wird basierend auf dieser Logik berechnet |
| feeRate | object | Handels- und Abwicklungsgebührensatz (optional) |
| leverageInfo | object | Kreditinformationen (optional) |
| relevantDollarPrices | list[object] | Tokenpreis, der für die RCH-Preisumrechnung und Airdrop-Berechnung erforderlich ist (optional) |
| amounts | object | Berechnete Beträge (optional) |
| apyInfo | object | Annualisierte Informationen, verfügbar für Nicht-Surge-Produkte (optional) |
| oddsInfo | object | Quoteninformationen, verfügbar für Surge-Produkte (optional) |
| quote | object | |
| > anchorPrices | list[string] | 20000000000, 30000000000 |
| > makerCollateral | string | Betrag der Sicherheiten des Makers |
| > totalCollateral | string | Gesamter Sicherheitenbetrag (Taker+Maker) |
| > collateralAtRisk | string | Erforderlich, wenn garantiert (optional) |
| > makerBalanceThreshold | string | Schwelle für das Maker-Guthaben |
| > deadline | number | Ablaufzeitstempel (z. B. 1672387200) |
| > makerWallet | string | Wallet des Makers (optional) |
| > signature | string | Unterschrift (optional) |
Anfragebeispiel
GET rfq/smart-trend/recommended-list?vault=xxxxxx
Smart Trend Anfrage
- Hinweise:
- Bitte geben Sie die Wallet-Adresse des Benutzers bei einer reinen Anfrage nicht weiter.
- Die Wallet-Adresse eines Benutzers sollte nur bei einer Anmeldung übermittelt werden.
GET /rfq/smart-trend/quote
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| vault | true | string | Vertragsinformationen |
| chainId | true | int | Chain-ID |
| expiry | true | number | Zeitstempel in Sekunden für das Ablaufdatum, z. B. 1672387200 |
| lowerBarrier | true | number | Untere Preisgrenze |
| upperBarrier | true | number | Obere Preisgrenze |
| depositAmount | true | number | RFQ-Kaufbetrag |
| inputApyDefinition | true | string | Der zugrunde liegende Code ist Enum, der angibt, wie der Eingabe-APY berechnet wird: OptimusDefaultAPY, BinanceDntAPY, AaveLendingAPY |
| protectedApy | false | number | Garantierte jährliche Rendite (leer für RISKY, erforderlich für protected) |
| fundingApy | false | number | AAVE jährliche Rendite (leer für RISKY, erforderlich für protected) |
| takerWallet | false | string | Öffentliche Adressinformationen der Wallet des Anfragenden |
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | int | 0 zeigt an, dass das Rückgaberesultat normal ist |
| message | string | Fehlermeldung, die im Falle einer Ausnahme zurückgegeben wird |
| value | object | Wie unten gezeigt |
Objekt
| Feldname | Typ | Beschreibung |
|---|---|---|
| rfqId | number | RFQ-ID |
| vault | string | Vertragsadresse |
| chainId | int | Chain-ID |
| riskType | string | Risikotyp: PROTECTED, RISKY |
| direction | string | BULLISH, BEARISH |
| forCcy | string | Basiswährung |
| domCcy | string | Währungspaar |
| depositCcy | string | Zeichnungswährung |
| lowerBarrier | number | Untere Preisgrenze |
| upperBarrier | number | Obere Preisgrenze |
| depositAmount | number | RFQ-Kaufbetrag |
| expiry | number | Ablaufzeitstempel (z. B. 1672387200) |
| timestamp | number | Auslösezeitpunkt der aktuellen Preisgestaltung; der nächste Beobachtungsbeginn wird basierend auf dieser Logik berechnet |
| feeRate | object | Handels- und Abwicklungsgebührensatz (optional) |
| leverageInfo | object | Kreditinformationen (optional) |
| relevantDollarPrices | list[object] | Tokenpreis, der für die RCH-Preiskonversion und die Airdrop-Berechnung erforderlich ist (optional) |
| amounts | object | Berechnete Beträge (optional) |
| apyInfo | object | Annualisierte Informationen, verfügbar für Nicht-Surge-Produkte (optional) |
| oddsInfo | object | Quoteninformationen, verfügbar für Surge-Produkte (optional) |
| quote | object | |
| > quoteId | number | |
| > anchorPrices | list[string] | 20000000000, 30000000000 |
| > makerCollateral | string | Betrag der Maker-Sicherheit |
| > totalCollateral | string | Gesamtbetrag der Sicherheit (Taker + Maker) |
| > collateralAtRisk | string | Erforderlich, wenn garantiert (optional) |
| > makerBalanceThreshold | string | Maker-Balance-Schwelle |
| > deadline | number | Ablaufzeitstempel (z. B. 1672387200) |
| > makerWallet | string | Wallet des Makers (optional) |
| > signature | string | Unterschrift (optional) |
Smart Trend Gewinnwahrscheinlichkeit
Wahrscheinlichkeit, innerhalb der Grenzen bis zum Ablauf zu bleiben
GET rfq/smart-trend/winning-probabilities
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| forCcy | true | string | Basiswährung |
| expiry | true | number | Zeitstempel der zweiten Ebene für das Ablaufdatum, z.B. 1672387200 |
| lowerBarrier | true | number | Untere Preisgrenze |
| upperBarrier | true | number | Obere Preisgrenze |
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | int | 0 zeigt an, dass das Rückgabeergebnis normal ist |
| message | string | Fehlermeldung, die im Falle einer Ausnahme zurückgegeben wird |
| value | list[object] | Wie unten gezeigt |
Objekt
| Feldname | Typ | Beschreibung |
|---|---|---|
| spotPrice | number | Spotpreis |
| timestamp | number | |
| probabilities | object | Gewinnwahrscheinlichkeit |
Beispielanfrage
GET rfq/smart-trend/winning-probabilities?forCcy=BTC&expiry=xxxx&lowerStrike=xxx&upperStrike=xxx
Antwort
{
"code":0,
"message":"",
"value": {
"spotPrice": 62121,
"timestamp": 1727080594,
"probabilities": {
"probDntStayInRange": null,
"probBullTrendItmLowerStrike": 0.4,
"probBullTrendItmUpperStrike": 0.4,
"probBearTrendItmLowerStrike": 0.6,
"probBearTrendItmUpperStrike": 0.6,
}
}
}
Generische Schnittstelle
RFQ löschen
Löschen Sie die RFQ, die on-chain war
POST rfq/remove
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| rfqId | ja | nummer | . |
Beispielanfrage
{
"rfqId":123456
}
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | int | 0 zeigt an, dass das Rückgabeergebnis normal ist |
| message | string | Fehlermeldung, die im Falle einer Ausnahme zurückgegeben wird |
| value | object | . |
Transaktionsbenachrichtigung
POST rfq/trade
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| quotes | true | list[object] | |
| > rfqId | true | number | |
| > quoteId | true | number | |
| > txId | true | string | Transaktions-Hash |
| code | false | string | Einladungscode |
| walletType | false | string | Wallet-Typ, wie MetaMask, OKX Wallet, Coinbase usw. |
Beispielanfrage
{
"quotes": [
{
"rfqId": 123456,
"quoteId": 333,
"txId": "adsswe"
}
],
"code": "adsswe"
}
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | int | 0 zeigt an, dass das Rückgabeergebnis normal ist |
| message | string | Fehlermeldung, die im Falle einer Ausnahme zurückgegeben wird |
| value | object | . |
Strike-Liste
GET rfq/strike-list
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| indexPrice | true | number | |
| forCcy | false | string | Für das Handelspaar BTC-USDT geben Sie hier BTC ein; wenn nicht angegeben, wird die Standardkonfiguration verwendet. |
| domCcy | false | string | Für das Handelspaar BTC-USDT geben Sie hier USDT ein; wenn nicht angegeben, wird standardmäßig USDT verwendet. |
Beispielanfrage
{
"indexPrice": 3750.8,
"forCcy": "WBTC",
}
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| strikes | liste[nummer] | Standardempfohlene Liste der Ausübungspreise |
Ablauf-Liste
GET rfq/expiry-list
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| vault | true | string | Vertragsadresse |
| chainId | true | int | Chain-ID |
Beispielanfrage
{
"vault": "XXXXXXXXXXXXXX",
"chainId": 1,
}
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| timestamp | nummer | Basisstartzeit in Sekundenstempel |
| expiries | liste[nummer] | Unterstützte Ablauf-Liste im Sekundenstempel, z.B. 1672387200 |
Aave apy
GET rfq/aave-apy
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| chainId | true | number | |
| ccy | true | string | USDT |
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| chainId | number | Chain-ID |
| ccy | string | Einzahlungswährung |
| avgApy | string | Durchschnittlicher APY, der in den letzten 30 Tagen on-chain aufgezeichnet wurde |
| currentApy | string | Aktueller AAVE APY |
| apyUsed | string | Der tatsächlich in SofaServer verwendete APY zur Schätzung zukünftiger Zinseinnahmen |
| apyDefinition | string | Berechnungsdefinition, die dem APY entspricht |
Beispielantwort
{
"chainId": 1,
"ccy":"USDT",
"avgApy":"0.23442",
"currentApy":"0.23442",
"apyUsed":"0.23442",
"apyDefinition":"AAVE_LENDING_APY"
}
Apy
GET rfq/apy
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| chainId | true | number | |
| ccy | true | string | USDT |
| apyDefinition | false | string | Berechnungsdefinition entsprechend dem APY; standardmäßig AaveLendingApy |
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| chainId | number | Chain-ID |
| ccy | string | Einzahlungswährung |
| avgApy | string | Durchschnittlicher APY, der in den letzten 30 Tagen on-chain aufgezeichnet wurde |
| currentApy | string | Aktueller APY |
| apyUsed | string | Der tatsächlich in SofaServer verwendete APY zur Schätzung zukünftiger Zinserträge |
| apyDefinition | string | Berechnungsdefinition entsprechend dem APY |
Beispielantwort
{
"chainId": 1,
"ccy":"USDT",
"avgApy":"0.23442",
"currentApy":"0.23442",
"apyUsed":"0.23442",
"apyDefinition":"AAVE_LENDING_APY"
}
Wallet-Positionen abrufen
POST /rfq/position-list
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| chainId | true | Int | |
| vaults | false | list[string] | Menge von Vertragsadressen; wenn nicht angegeben, werden alle Verträge abgefragt. |
| claimed | false | boolean | Ob es eingelöst wurde; wenn nicht angegeben, werden Positionen aller Status abgefragt. |
| expired | false | boolean | Ob es abgelaufen ist; wenn nicht angegeben, werden Positionen aller Status abgefragt. |
| concealed | false | boolean | Ob es verborgen ist; wenn nicht angegeben, werden Positionen aller Status abgefragt. |
| positiveReturn | false | boolean | Ob der Einlösungsbetrag größer als 0 ist; wenn nicht angegeben, werden alle Positionen abgefragt. |
| positiveProfit | false | boolean | Ob die Rendite das Kapital übersteigt; wenn nicht angegeben, werden alle Positionen abgefragt. |
| limit | false | Int | Anzahl der Abfragen; standardmäßig 100, maximal 300. |
| startDateTime | false | number | Entsprechender Zeitstempel in Sekunden (einschließlich), z.B. 1672387200. |
| endDateTime | false | number | Entsprechender Zeitstempel in Sekunden (einschließlich), z.B. 1672387200. |
| orderBy | false | string | "createdAt" oder "return", Sortiermethode: "createdAt" (Aktualisierungszeit, Standard) oder "return" (Renditen). |
| orderDirection | false | string | "desc" oder "asc", standardmäßig "desc" (absteigende Reihenfolge). |
| wallet | false | string | Wallet-Adresse (wenn leer, werden alle Wallet-Adressen abgefragt). |
Hinweis: Wenn die Anzahl der Ergebnisse 300 innerhalb des angegebenen startDateTime und endDateTime überschreitet, kann Polling verwendet werden (in diesem Fall muss orderBy auf "createdAt" gesetzt werden), um die Abfrage fortzusetzen. Der endDateTime-Parameter für die n-te Polling-Anfrage sollte auf den createdAt des letzten Datensatzes aus dem (n-1)-ten Polling-Ergebnis gesetzt werden. Nach dem Abrufen aller Daten sollten Duplikate basierend auf dem id-Feld entfernt werden.
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | number | |
| message | string | |
| value | list[object] | Wie unten gezeigt |
Objekt
| Feldname | Typ | Beschreibung |
|---|---|---|
| id | string | Produkt-ID, die der Position entspricht (entspricht productId in den Graph-Daten). Diese ID ist innerhalb der Kette + Vault-Dimension einzigartig und kann verwendet werden, um Positionssalden abzufragen. |
| positionId | string | Positions-ID, die innerhalb der Ketten-Dimension einzigartig ist. |
| product | object | Produktinformationen. |
| wallet | string | Wallet-Adresse. |
| createdAt | number | Entsprechender Zeitstempel in Sekunden, z.B. 1672387200. |
| updatedAt | number | Entsprechender Zeitstempel in Sekunden, z.B. 1672387200. |
| claimed | boolean | Ob die Position eingelöst wurde. |
| takerAllocationRate | number | Basierend auf der Berechnungszeit schätzt den Anteil, den der Eigentümer aus dem Wettpool entnehmen kann. Vor Ablauf ist dies ein geschätzter Wert. |
| triggerTime | number | Für Rangebound die erste Ausbruchzeit; für nicht-Rangebound die Abrechnungszeit in Sekunden. |
| triggerPrice | number | Für Rangebound der erste Ausbruchspreis; für nicht-Rangebound der Abrechnungspreis. |
| feeRate | object | Gebührenrate. |
| leverageInfo | object | Kreditinformationen (optional). |
| relevantDollarPrices | list[object] | Tokenpreise, die für die RCH-Preisumrechnung und die Airdrop-Berechnung erforderlich sind. |
| amounts | object | Berechnete Beträge. |
| apyInfo | object | Annualisierte Informationen, verfügbar für Nicht-Surge-Produkte. |
| oddsInfo | object | Quoteninformationen, verfügbar für Surge-Produkte. |
| claimParams | object | Informationen zu den Anspruchsparametern. |
Antwortbeispiel
{
"value": [{
...
}]
}
Wallet-Transaktionen abrufen
POST /rfq/transaction-list
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| chainId | true | Int | |
| vaults | false | list[string] | Menge von Vertragsadressen; wenn nicht angegeben, werden alle Verträge abgefragt. |
| limit | false | Int | Anzahl der Abfragen; Standardwert ist 100, maximal 300. |
| startDateTime | false | number | Entsprechender Zeitstempel in Sekunden (einschließlich), z.B. 1672387200. |
| endDateTime | false | number | Entsprechender Zeitstempel in Sekunden (einschließlich), z.B. 1672387200. |
| orderDirection | false | string | "desc" oder "asc", Standardwert ist "desc" (absteigende Reihenfolge). |
| taker | false | string | Taker-Wallet-Adresse |
| maker | false | string | Maker-Wallet-Adresse |
| claimParams | false | object | Die Einlösungsparameter, die dem Feld claimParams in den Positionsdaten entsprechen. |
| hash | false | string | Transaktionshash |
Hinweis: Die Parameter Taker, Maker und claimParams können für eine gemeinsame Abfrage verwendet werden, um die Handelsaufzeichnungen zu finden, die einer Position entsprechen (eine Position kann mehreren Trades entsprechen) (nicht alle Parameter sind erforderlich).
Wenn die Anzahl der Ergebnisse 300 innerhalb des angegebenen startDateTime und endDateTime überschreitet, kann Polling verwendet werden (in diesem Fall muss orderBy auf "createdAt" gesetzt werden), um die Abfrage fortzusetzen. Der endDateTime-Parameter für die n-te Polling-Anfrage sollte auf das createdAt des letzten Datensatzes aus dem (n-1)-ten Polling-Ergebnis gesetzt werden. Nach dem Abrufen aller Daten sollten Duplikate basierend auf dem id-Feld entfernt werden.
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | number | |
| message | string | |
| value | list[object] | Wie unten gezeigt |
Objekt
| Feldname | Typ | Beschreibung |
|---|---|---|
| id | string | |
| hash | string | Transaktionshash |
| takerWallet | string | Adresse der Taker-Wallet. |
| makerWallet | string | Adresse der Maker-Wallet. |
| product | object | Produktinformationen. |
| createdAt | number | Entsprechender Zeitstempel in Sekunden, z.B. 1672387200. |
| takerAllocationRate | number | Schätzt basierend auf der Berechnungszeit den Anteil, den der Eigentümer aus dem Wettpool entnehmen kann. Vor Ablauf ist dies ein geschätzter Wert. |
| triggerTime | number | Für Rangebound die erste Ausbruchszeit; für nicht-Rangebound die Abrechnungszeit, in Sekunden. |
| triggerPrice | number | Für Rangebound der erste Ausbruchspreis; für nicht-Rangebound der Abrechnungspreis. |
| feeRate | object | Gebührenrate. |
| leverageInfo | object | Kreditinformationen (optional). |
| relevantDollarPrices | list[object] | Tokenpreise, die für die RCH-Preisumrechnung und die Airdrop-Berechnung erforderlich sind. |
| amounts | object | Berechnete Beträge. |
| apyInfo | object | Annualisierte Informationen, verfügbar für nicht-Surge-Produkte. |
| oddsInfo | object | Quoteninformationen, verfügbar für Surge-Produkte. |
Beispielantwort
{
"value": [{
...
}]
}
Verlustpositionen verbergen
POST rfq/position/conceal
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| chainId | true | int | Chain-ID |
| positionIds | true | List[string] | Liste der positionIds, bis zu 20 |
Beispielanfrage
{
"positionIds": [
"aaaa","bbbb"
],
"chainId": 1
}
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | int | 0 zeigt an, dass das Rückgabeergebnis normal ist |
| message | string | Fehlermeldung, die im Falle einer Ausnahme zurückgegeben wird |
| value | object | . |
Ausstehende Transaktionen abrufen
Dies dient hauptsächlich der Behebung des Problems der Synchronisierung der zugrunde liegenden Positionsdaten. Die hier abgerufenen Daten können verschwinden (aufgrund von Blockchain-Gabelwettbewerb).
POST rfq/transactions/pending
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| chainId | true | Int | |
| vaults | false | list[string] | Menge von Vertragsadressen; wenn nicht angegeben, werden alle Verträge abgefragt. |
| taker | false | string | Taker-Wallet-Adresse |
| maker | false | string | Maker-Wallet-Adresse |
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | number | |
| message | string | |
| value | list[object] | Wie unten gezeigt |
Objekt
| Feldname | Typ | Beschreibung |
|---|---|---|
| id | string | |
| hash | string | Transaktionshash |
| takerWallet | string | Taker-Wallet-Adresse. |
| makerWallet | string | Maker-Wallet-Adresse. |
| product | object | Produktinformationen. |
| createdAt | number | Entsprechender Zeitstempel in Sekunden, z.B. 1672387200. |
| takerAllocationRate | number | Basierend auf der Berechnungszeit schätzt es den Anteil, den der Eigentümer aus dem Wettpool entnehmen kann. Vor Ablauf ist dies ein geschätzter Wert. |
| triggerTime | number | Für Rangebound die erste Ausbruchzeit; für nicht-Rangebound die Abrechnungszeit in Sekunden. |
| triggerPrice | number | Für Rangebound der erste Ausbruchspreis; für nicht-Rangebound der Abrechnungspreis. |
| feeRate | object | Gebührenrate. |
| leverageInfo | object | Kreditinformationen (optional). |
| relevantDollarPrices | list[object] | Tokenpreise, die für die RCH-Preisumrechnung und die Airdrop-Berechnung erforderlich sind. |
| amounts | object | Berechnete Beträge. |
| apyInfo | object | Annualisierte Informationen, verfügbar für nicht-Surge-Produkte. |
| oddsInfo | object | Quoteninformationen, verfügbar für Surge-Produkte. |
RCH Airdrop-Historie abrufen
GET rfq/airdrop/history
Eingabeparameter
| Feldname | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
| wallet | true | string | Wallet-Adresse |
| startDateTime | true | number | Entsprechender Zeitstempel in Sekunden (einschließlich), z.B. 1672387200. |
| endDateTime | true | number | Entsprechender Zeitstempel in Sekunden (einschließlich), z.B. 1672387200. |
| orderBy | false | string | "dateTime" oder "rch", Sortiermethode: "dateTime" (Airdrop-Zeit, Standard) oder "rch" (Betrag). |
| orderDirection | false | string | "desc" oder "asc", standardmäßig "desc" (absteigende Reihenfolge). |
Antwortparameter
| Feldname | Typ | Beschreibung |
|---|---|---|
| code | number | |
| message | string | |
| value | list[object] | Wie unten gezeigt |
Objekt
| Feldname | Typ | Beschreibung |
|---|---|---|
| dateTime | long | Der aktuelle Zeitstempel in Sekunden, zum Beispiel 1672387200. |
| wallet | string | Wallet-Adresse |
| volume | string | Handelsvolumen |
| rch | string | Airdrop-Betrag, der Rohwert, muss durch 1e18 geteilt werden |
| merkleProof | string | Merkle-Beweis |