For the complete documentation index, see llms.txt. This page is also available as Markdown.

Comment intégrer Gauntlet USD Alpha

gtUSDa est l'ERC20 de notre vault phare de stablecoin sur Base, Arbitrum, Optimism et Ethereum Mainnet, qui peut être intégré à d'autres applications DeFi. Voici un guide d'intégration de base pour intégrer gtUSDa à votre protocole ou application.

gtUSDa est un ERC20 transférable sur Base, Arbitrum, Optimism et Ethereum Mainnet.

Nous avons également un frontend dédié pour approvisionner ce vault à app.gauntlet.xyz/vaults/gtusda.

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 jetons

  • 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 (contrat USDC sur Base)

  • 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 (contrat USDC sur Ethereum Mainnet)

  • 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 (contrat USDC sur Arbitrum)

  • 0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 (contrat USDC sur Optimism)

Adresses du provisioner

  • 0x18CF8d963E1a727F9bbF3AEffa0Bd04FB4dBdA07 (contrat provisioner sur Base)

  • 0x74C4A66CE4F4779B11E7c63D42e51EEef3A80D11 (contrat provisioner sur Ethereum)

  • 0xDd4a42603E6d8E515C3468789375A98c376821b3 (contrat provisioner sur Arbitrum)

  • 0xCC923371F0d3A9cA75d98E767Df9dE1cdf5799Ef (contrat provisioner sur Optimism)

Remarque : tous les exemples ci-dessous sont exécutés sur Base.

Approvisionnement via des appels de contrat

Approvisionner dans gtUSDa est une combinaison de 2 appels de fonction : un approve appel pour dépenser l'USDC, et un requestDeposit appel.

  1. appel approve sur le contrat USDC pour autoriser que le montant d'USDC soit dépensé par le contrat provisioner

    1. Notez qu'il ne s'agit pas du contrat vault lui-même, car la demande passe par le provisioner pour émettre des unités 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. requestDeposit . requestDeposit est une opération asynchrone, l'utilisateur enverra l'USDC au provisioner et, une fois la demande résolue, des unités gtUSDa seront renvoyées directement au portefeuille de l'utilisateur. Cela se produit généralement en moins de 6 heures, mais peut prendre jusqu'à 3 jours (ou selon la deadline). Voir https://docs.aera.finance/entry-exit-with-provisioner pour plus de détails

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

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

    3. minUnitsOut : ce paramètre doit être basé sur le prix actuel de gtUSDa. Pour le calculer, référez-vous au PriceAndFeeCalculator contrat, en particulier l'appel de fonction convertTokenToUnits .

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

      2. Multipliez la valeur ci-dessus par 0.97 (une marge de sécurité en cas de variation de prix)

    4. solverTip : 0

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

    6. maxPriceAge : 3600 (1 heure en secondes)

    7. isFixedPrice : False

minUnitsOut n'est techniquement pas requis pour les ordres à prix automatique si le prix du vault est fiable, 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 deadline trop longue, car les ordres non exécutables ne peuvent pas être remboursés avant la deadline.

Exemple de demande pour déposer 1000 USDC

Appeler approve sur le contrat USDC de Base pour autoriser le provisioner à dépenser

appel requestDeposit sur le provisioner, paramétrer cet appel est important

Retrait via des appels de contrat

Pour retirer, vous devez de la même manière faire un approve appel suivi de requestRedeem sur le contrat Provisioner avec les paramètres corrects.

  1. appel approve sur le contrat gtUSDa pour autoriser que le montant gtUSDa soit dépensé par le contrat provisioner

  2. requestRedeem C'est également un appel asynchrone où l'utilisateur renvoie les vaultUnits au contrat Provisioner et, une fois la requête résolue, l'utilisateur recevra de l'USDC dans son portefeuille

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

    2. unitsIn : le montant d'unités de vault que vous souhaitez racheter, correctement ajusté en décimales. Si vous voulez calculer le unitsIn sur la base de la valeur USDC pour l'utilisateur, vous pouvez à nouveau utiliser la convertTokenToUnits fonction sur le PriceAndFeeCalculator 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, référez-vous au PriceAndFeeCalculator contrat, en particulier l'appel de fonction convertUnitsToToken fonction.

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

      2. Multipliez la valeur ci-dessus par 0.97 (une marge de sécurité en cas de variation de prix)

    4. solverTip : 0

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

    6. maxPriceAge : 3600 (1 heure en secondes)

    7. isFixedPrice : False

minTokensOut n'est techniquement pas requis pour les ordres à prix automatique si le prix du vault est fiable, 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 deadline trop longue, car les ordres non exécutables ne peuvent pas être remboursés avant la deadline.

Exemple de demande pour retirer 1000 USDC

appel approve sur le contrat gtUSDa pour autoriser le provisioner à dépenser

appel requestRedeem 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 exécuté. Pour offrir plus de transparence aux utilisateurs, ces ordres peuvent être surveillés en suivant les DepositRequested ou RedeemRequested événements :

Vérification du moment où les ordres sont exécutés

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

Remboursement des ordres expirés

Si la deadline est dépassée mais qu'un ordre n'est pas résolu (rare), l'utilisateur doit récupérer ses USDC ou ses jetons gtUSDa en utilisant le refundRequest fonction.

Obtenir le solde gtUSDa de l'utilisateur

Appelez simplement la fonction balanceOf sur gtUSDa avec l'adresse de l'utilisateur.

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

Nous fournissons de simples utilitaires de conversion de prix entre gtUSDa et USDC via le PriceAndFeeCalculator contrat.

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

  • convertTokensToUnits -> Prend une valeur USDC et renvoie le montant d'unités vault au prix actuel

    • vault : 0x000000000001CdB57E58Fa75Fe420a0f4D6640D5 (contrat vault gtUSDa)

    • jeton : 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 (contrat USDC sur Base)

    • tokenAmount : valeur USDC ajustée en décimales (USDC a 6 décimales)

  • convertUnitsToTokens -> Prend des vaultUnits et renvoie la valeur USDC au prix actuel

    • vault : 0x000000000001CdB57E58Fa75Fe420a0f4D6640D5 (contrat vault gtUSDa)

    • jeton : 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 (contrat USDC sur Base)

    • unitsAmount : valeur gtUSDa ajustée en décimales (gtUSDa a 18 décimales)

Récupération de l'APY du vault

Cela est un peu plus délicat 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 APY annuel.

Calcul du TVL du vault

Pour obtenir le TVL total du vault, utilisez la fonction convertUnitsToTokens et utilisez le totalSupply de gtUSDa comme entrée.

Mis à jour

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