Comment s'intégrer à Gauntlet USD Alpha

gtUSDaarrow-up-right est l'ERC20 pour notre vault stablecoin phare sur Base, Arbitrum, Optimism et le réseau principal Ethereum, qui peut être intégré dans d'autres applications DeFi. Voici un guide d'intégration de base pour incorporer gtUSDa dans votre protocole ou application.

circle-info

gtUSDa est un ERC20 transférable sur Base, Arbitrum, Optimism et le réseau principal Ethereum.

Nous disposons également d'une interface dédiée pour fournir des fonds dans ce vault à app.gauntlet.xyz/vaults/gtusdaarrow-up-right.

Adresses des contrats

Adresses du vault gtUSDa

  • 0x000000000001CdB57E58Fa75Fe420a0f4D6640D5 (contrat gtUSDa sur Base)

  • 0x3bd9248048df95Db4fBD748C6CD99C1bAa40bAD0 (contrat gtUSDa sur Ethereum)

  • 0x000000001DC8bd45d7E7829fb1c969cbe4D0D1eC (contrat gtUSDa sur Arbitrum)

  • 0x000000001DC8bd45d7E7829fb1c969cbe4D0D1eC (contrat gtUSDa sur Optimism)

Adresses des tokens

  • 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 (contrat USDC sur Base)

  • 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 (contrat USDC sur le réseau principal Ethereum)

  • 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 (contrat USDC sur Arbitrum)

  • 0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 (contrat USDC sur Optimism)

Adresses des provisioners

  • 0x18CF8d963E1a727F9bbF3AEffa0Bd04FB4dBdA07 (contrat provisioner sur Base)

  • 0x74C4A66CE4F4779B11E7c63D42e51EEef3A80D11 (contrat provisioner sur Ethereum)

  • 0xDd4a42603E6d8E515C3468789375A98c376821b3 (contrat provisioner sur Arbitrum)

  • 0xCC923371F0d3A9cA75d98E767Df9dE1cdf5799Ef (contrat provisioner sur Optimism)

circle-info

Remarque : Tous les exemples ci‑dessous sont exécutés sur Base.

Approvisionnement via appels de contrat

Fournir dans gtUSDa est une combinaison de 2 appels de fonction : un approve appel pour autoriser la dépense de l'USDC, et un requestDeposit appel.

  1. appel approvearrow-up-right sur le contrat USDC pour permettre que la quantité d'USDC soit dépensée par le contrat provisionerarrow-up-right

    1. Notez qu'il ne s'agit pas du contrat du vault lui‑même, car la requête passe par le provisioner pour émettre des unités du vault de manière asynchrone via un mécanisme de résolution (voir https://docs.aera.finance/entry-exit-with-provisioner pour plus de détails)

  2. requestDepositarrow-up-right . requestDeposit est une opération asynchrone, l'utilisateur soumettra l'USDC au provisioner et après que la requête soit résolue des unités gtUSDa seront renvoyées directement au portefeuille de l'utilisateur. Cela se produira généralement dans les 6 heures mais peut prendre jusqu'à 3 jours (ou autrement selon la date limite). Voir https://docs.aera.finance/entry-exit-with-provisioner pour plus de détails

    1. token : 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 (contrat USDC sur Base)

    2. tokensIn : montant d'USDC entrant (valeur ajustée selon les décimales)

    3. minUnitsOut : Ce paramètre doit être basé sur le prix actuel de gtUSDa. Pour le calculer, reportez‑vous au PriceAndFeeCalculatorarrow-up-right contrat, plus précisément à la convertTokenToUnitsarrow-up-right appel de fonction.

      1. convertTokenToUnits(0x000000000001CdB57E58Fa75Fe420a0f4D6640D5, 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913, tokensIn) -> Retourne les unités gtUSDa ajustées selon les décimales.

      2. Multipliez la valeur ci‑dessus par 0.97 (une marge au cas où il y aurait des variations de prix)

    4. solverTip : 0

    5. deadline : block.timestamp + 259200 (3 jours en secondes)

    6. maxPriceAge : 3600 (1 heure en secondes)

    7. isFixedPrice : False

circle-info

minUnitsOut n'est techniquement pas requis pour les ordres à prix automatique si le prix du vault est digne de confiance mais il est fortement recommandé pour des raisons de sécurité. Veuillez ne pas inclure un solverTip car le solver ne résoudra pas ces requêtes. Veuillez ne pas inclure une date limite longue car les ordres inexploitables ne peuvent pas être remboursés avant la deadline.

Exemple de requête pour déposer 1000 USDC

Appeler approvearrow-up-right sur le contrat USDC de Base pour permettre au provisioner de dépenser

appel requestDepositarrow-up-right sur le provisioner, paramétrer cet appel est important

Retrait via appels de contrat

Pour retirer, vous devez de même effectuer un approve appel suivi de requestRedeem sur le contrat Provisionerarrow-up-right avec les bons paramètres.

  1. appel approvearrow-up-right sur le contrat gtUSDa pour permettre que la quantité de gtUSDa soit dépensée par le contrat provisionerarrow-up-right

  2. requestRedeemarrow-up-right Il s'agit également d'un appel asynchrone où l'utilisateur fournit les vaultUnits au contrat Provisioner et après résolution de la requête l'utilisateur recevra de l'USDC dans son portefeuille

    1. token : 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 (contrat USDC sur Base)

    2. unitsIn : Le montant d'unités du vault que vous souhaitez racheter, correctement ajusté selon les décimales. Si vous voulez calculer les unitsIn basés sur la valeur en USDC pour l'utilisateur, vous pouvez à nouveau utiliser la convertTokenToUnitsarrow-up-right fonction sur le PriceAndFeeCalculatorarrow-up-right contrat comme pour l'appel de dépôt.

    3. minTokensOut : Ce paramètre doit être basé sur le prix actuel de gtUSDa. Pour le calculer, reportez‑vous à la PriceAndFeeCalculatorarrow-up-right contrat, plus précisément à la convertUnitsToTokenarrow-up-right fonction.

      1. convertUnitsToToken(0x000000000001CdB57E58Fa75Fe420a0f4D6640D5, 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913, unitsIn) -> Retourne la valeur USDC ajustée selon les décimales des VaultUnits

      2. Multipliez la valeur ci‑dessus par 0.97 (une marge au cas où il y aurait des variations de prix)

    4. solverTip : 0

    5. deadline : block.timestamp + 259200 (3 jours en secondes)

    6. maxPriceAge : 3600 (1 heure en secondes)

    7. isFixedPrice : False

circle-info

minTokensOut n'est techniquement pas requis pour les ordres à prix automatique si le prix du vault est digne de confiance mais il est fortement recommandé pour des raisons de sécurité. Veuillez ne pas inclure un solverTip car le solver ne résoudra pas ces requêtes. Veuillez ne pas inclure une date limite longue car les ordres inexploitables ne peuvent pas être remboursés avant la deadline.

Exemple de requête pour retirer 1000 USDC

appel approvearrow-up-right sur le contrat gtUSDa pour permettre au provisioner de dépenser

appel requestRedeemarrow-up-right sur le provisioner, paramétrer cet appel est important

[AVANCÉ] Surveillance et remboursement des ordres

Suivi des ordres

Lorsqu'un ordre asynchrone est placé, l'utilisateur aura un ordre actif mais non rempli. Pour fournir une transparence supplémentaire aux utilisateurs, ces ordres peuvent être surveillés en suivant les DepositRequested ou RedeemRequested événements :

Vérifier quand les ordres sont remplis

Lorsqu'un dépôt ou un rachat est rempli, l'un des événements suivants sera émis dans le Provisioner :

Remboursement des ordres expirés

Si la date limite passe mais qu'un ordre n'est pas résolu (rare), l'utilisateur doit récupérer son USDC ou ses tokens gtUSDa en utilisant la refundRequest fonction.

Obtention du solde de l'utilisateur en gtUSDa

Appelez simplement la balanceOfarrow-up-right fonction sur gtUSDaarrow-up-right avec l'adresse de l'utilisateur.

Tarification des unités gtUSDa en USDC (et inversement)

Nous fournissons des utilitaires simples de conversion de prix entre gtUSDa et USDC via le PriceAndFeeCalculatorarrow-up-right contrat.

Plus précisément, il y a deux fonctions pertinentes

  • convertTokensToUnitsarrow-up-right -> Prend une valeur USDC et retourne le montant d'unités du vault au prix courant

    • vault : 0x000000000001CdB57E58Fa75Fe420a0f4D6640D5 (contrat du vault gtUSDa)

    • token : 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 (contrat USDC sur Base)

    • tokenAmount : valeur USDC ajustée selon les décimales (USDC a 6 décimalesarrow-up-right)

  • convertUnitsToTokensarrow-up-right -> Prend des vaultUnits et retourne la valeur en USDC au prix courant

    • vault : 0x000000000001CdB57E58Fa75Fe420a0f4D6640D5 (contrat du vault gtUSDa)

    • token : 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 (contrat USDC sur Base)

    • unitsAmount : valeur gtUSDa ajustée selon les décimales (gtUSDa a 18 décimalesarrow-up-right)

Récupération de l'APY du vault

Celle‑ci est un peu plus compliquée pour le moment, mais nous visons à simplifier cela à l'avenir via une API. Pour l'instant, la meilleure façon d'obtenir l'APY du vault est d'indexer le prix des unités du vault en USDC sur une période donnée et d'extrapoler cela en un chiffre d'APY annuel.

Calcul du TVL du vault

Pour obtenir le TVL total du vault, utilisez la convertUnitsToTokensarrow-up-right fonction et utilisez la totalSupplyarrow-up-right de gtUSDa comme entrée.

Mis à jour

Ce contenu vous a-t-il été utile ?