from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.aave_v3.aave_repay(token="USDC", amount="0.2", interest_rate_mode=models.InterestRateMode.VARIABLE, chain=models.AaveRepayRequestChain.BASE, sender="0x3254f3b1918637ba924e3F18968Cb74219974b63", on_behalf_of="0x3254f3b1918637ba924e3F18968Cb74219974b63", estimate_gas=True)
# Handle response
print(res)import { CompassApiSDK } from "@compass-labs/api-sdk";
const compassApiSDK = new CompassApiSDK({
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await compassApiSDK.aaveV3.aaveRepay({
token: "USDC",
amount: "0.2",
interestRateMode: "variable",
onBehalfOf: "0x3254f3b1918637ba924e3F18968Cb74219974b63",
chain: "base",
sender: "0x3254f3b1918637ba924e3F18968Cb74219974b63",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/aave/repay \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0x3254f3b1918637ba924e3F18968Cb74219974b63",
"token": "USDC",
"amount": "0.2",
"interest_rate_mode": "variable",
"on_behalf_of": "0x3254f3b1918637ba924e3F18968Cb74219974b63"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0x3254f3b1918637ba924e3F18968Cb74219974b63',
token: 'USDC',
amount: '0.2',
interest_rate_mode: 'variable',
on_behalf_of: '0x3254f3b1918637ba924e3F18968Cb74219974b63'
})
};
fetch('https://api.compasslabs.ai/v1/aave/repay', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.compasslabs.ai/v1/aave/repay",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'chain' => 'base',
'sender' => '0x3254f3b1918637ba924e3F18968Cb74219974b63',
'token' => 'USDC',
'amount' => '0.2',
'interest_rate_mode' => 'variable',
'on_behalf_of' => '0x3254f3b1918637ba924e3F18968Cb74219974b63'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.compasslabs.ai/v1/aave/repay"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0x3254f3b1918637ba924e3F18968Cb74219974b63\",\n \"token\": \"USDC\",\n \"amount\": \"0.2\",\n \"interest_rate_mode\": \"variable\",\n \"on_behalf_of\": \"0x3254f3b1918637ba924e3F18968Cb74219974b63\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.compasslabs.ai/v1/aave/repay")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0x3254f3b1918637ba924e3F18968Cb74219974b63\",\n \"token\": \"USDC\",\n \"amount\": \"0.2\",\n \"interest_rate_mode\": \"variable\",\n \"on_behalf_of\": \"0x3254f3b1918637ba924e3F18968Cb74219974b63\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/aave/repay")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"chain\": \"base\",\n \"sender\": \"0x3254f3b1918637ba924e3F18968Cb74219974b63\",\n \"token\": \"USDC\",\n \"amount\": \"0.2\",\n \"interest_rate_mode\": \"variable\",\n \"on_behalf_of\": \"0x3254f3b1918637ba924e3F18968Cb74219974b63\"\n}"
response = http.request(request)
puts response.read_body{
"transaction": {
"chainId": "0x2105",
"data": "0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d",
"from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"gas": "0x7a120",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00",
"nonce": "0x5",
"to": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
"value": "0x0"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Repay Loans
This endpoint allows users to repay a portion or the entirety of their borrowed tokens on the Aave platform.
By repaying borrowed amounts, users can improve their health factor, which is a measure of the safety of their loan position. A higher health factor reduces the risk of liquidation, ensuring a more secure borrowing experience. The endpoint requires specifying the chain and the details of the repayment transaction, including the amount and the asset to be repaid.
Required Allowances
In order to make this transaction, token allowances need to be set for the following contracts.
AaveV3Pool
from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.aave_v3.aave_repay(token="USDC", amount="0.2", interest_rate_mode=models.InterestRateMode.VARIABLE, chain=models.AaveRepayRequestChain.BASE, sender="0x3254f3b1918637ba924e3F18968Cb74219974b63", on_behalf_of="0x3254f3b1918637ba924e3F18968Cb74219974b63", estimate_gas=True)
# Handle response
print(res)import { CompassApiSDK } from "@compass-labs/api-sdk";
const compassApiSDK = new CompassApiSDK({
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await compassApiSDK.aaveV3.aaveRepay({
token: "USDC",
amount: "0.2",
interestRateMode: "variable",
onBehalfOf: "0x3254f3b1918637ba924e3F18968Cb74219974b63",
chain: "base",
sender: "0x3254f3b1918637ba924e3F18968Cb74219974b63",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/aave/repay \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0x3254f3b1918637ba924e3F18968Cb74219974b63",
"token": "USDC",
"amount": "0.2",
"interest_rate_mode": "variable",
"on_behalf_of": "0x3254f3b1918637ba924e3F18968Cb74219974b63"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0x3254f3b1918637ba924e3F18968Cb74219974b63',
token: 'USDC',
amount: '0.2',
interest_rate_mode: 'variable',
on_behalf_of: '0x3254f3b1918637ba924e3F18968Cb74219974b63'
})
};
fetch('https://api.compasslabs.ai/v1/aave/repay', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.compasslabs.ai/v1/aave/repay",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'chain' => 'base',
'sender' => '0x3254f3b1918637ba924e3F18968Cb74219974b63',
'token' => 'USDC',
'amount' => '0.2',
'interest_rate_mode' => 'variable',
'on_behalf_of' => '0x3254f3b1918637ba924e3F18968Cb74219974b63'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.compasslabs.ai/v1/aave/repay"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0x3254f3b1918637ba924e3F18968Cb74219974b63\",\n \"token\": \"USDC\",\n \"amount\": \"0.2\",\n \"interest_rate_mode\": \"variable\",\n \"on_behalf_of\": \"0x3254f3b1918637ba924e3F18968Cb74219974b63\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.compasslabs.ai/v1/aave/repay")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0x3254f3b1918637ba924e3F18968Cb74219974b63\",\n \"token\": \"USDC\",\n \"amount\": \"0.2\",\n \"interest_rate_mode\": \"variable\",\n \"on_behalf_of\": \"0x3254f3b1918637ba924e3F18968Cb74219974b63\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/aave/repay")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"chain\": \"base\",\n \"sender\": \"0x3254f3b1918637ba924e3F18968Cb74219974b63\",\n \"token\": \"USDC\",\n \"amount\": \"0.2\",\n \"interest_rate_mode\": \"variable\",\n \"on_behalf_of\": \"0x3254f3b1918637ba924e3F18968Cb74219974b63\"\n}"
response = http.request(request)
puts response.read_body{
"transaction": {
"chainId": "0x2105",
"data": "0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d",
"from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"gas": "0x7a120",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00",
"nonce": "0x5",
"to": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
"value": "0x0"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Body
The symbol of the underlying asset to repay..
"WETH"
The amount of the asset to repay
x > 0150.5
The interest rate mode to repay
stable, variable "stable"
arbitrum, base, ethereum "base"
The address of the transaction sender.
"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"
"AAVE_REPAY"The address on behalf of whom the supply is made
"0x3254f3b1918637ba924e3F18968Cb74219974b63"
Determines whether to estimate gas costs for transactions, also verifying that the transaction can be successfully executed.
Response
Successful Response
The unsigned transaction data. User must sign and broadcast to network.
- UnsignedTransaction
- UserOperationResponse
Show child attributes
Show child attributes
{
"chainId": "0x2105",
"data": "0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d",
"from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"gas": "0x7a120",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00",
"nonce": "0x5",
"to": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
"value": "0x0"
}
Was this page helpful?