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_supply(token="USDC", amount="0.5", chain=models.AaveSupplyRequestChain.BASE, sender="0x466C298e40c57e1DfD364443B364DFB2717BF882", 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.aaveSupply({
token: "USDC",
amount: "0.5",
chain: "base",
sender: "0x466C298e40c57e1DfD364443B364DFB2717BF882",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/aave/supply \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0x466C298e40c57e1DfD364443B364DFB2717BF882",
"token": "USDC",
"amount": "0.5"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0x466C298e40c57e1DfD364443B364DFB2717BF882',
token: 'USDC',
amount: '0.5'
})
};
fetch('https://api.compasslabs.ai/v1/aave/supply', 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/supply",
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' => '0x466C298e40c57e1DfD364443B364DFB2717BF882',
'token' => 'USDC',
'amount' => '0.5'
]),
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/supply"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0x466C298e40c57e1DfD364443B364DFB2717BF882\",\n \"token\": \"USDC\",\n \"amount\": \"0.5\"\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/supply")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0x466C298e40c57e1DfD364443B364DFB2717BF882\",\n \"token\": \"USDC\",\n \"amount\": \"0.5\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/aave/supply")
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\": \"0x466C298e40c57e1DfD364443B364DFB2717BF882\",\n \"token\": \"USDC\",\n \"amount\": \"0.5\"\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>"
}
]
}Supply/Lend
By supplying assets, users can earn interest on their deposits.
The supplied collateral can be used as a basis for borrowing other assets, allowing users to leverage their positions. In combination with a trading protocol, this can create leverage.
Overall, this endpoint is a critical component for users looking to maximize their asset utility within the AAVEv3 ecosystem, providing both earning potential and borrowing flexibility.
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_supply(token="USDC", amount="0.5", chain=models.AaveSupplyRequestChain.BASE, sender="0x466C298e40c57e1DfD364443B364DFB2717BF882", 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.aaveSupply({
token: "USDC",
amount: "0.5",
chain: "base",
sender: "0x466C298e40c57e1DfD364443B364DFB2717BF882",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/aave/supply \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0x466C298e40c57e1DfD364443B364DFB2717BF882",
"token": "USDC",
"amount": "0.5"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0x466C298e40c57e1DfD364443B364DFB2717BF882',
token: 'USDC',
amount: '0.5'
})
};
fetch('https://api.compasslabs.ai/v1/aave/supply', 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/supply",
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' => '0x466C298e40c57e1DfD364443B364DFB2717BF882',
'token' => 'USDC',
'amount' => '0.5'
]),
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/supply"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0x466C298e40c57e1DfD364443B364DFB2717BF882\",\n \"token\": \"USDC\",\n \"amount\": \"0.5\"\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/supply")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0x466C298e40c57e1DfD364443B364DFB2717BF882\",\n \"token\": \"USDC\",\n \"amount\": \"0.5\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/aave/supply")
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\": \"0x466C298e40c57e1DfD364443B364DFB2717BF882\",\n \"token\": \"USDC\",\n \"amount\": \"0.5\"\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 or address of the underlying asset to supply as collateral. You can borrow against it..
"WETH"
The amount of the asset to supply
x > 01.5
arbitrum, base, ethereum "base"
The address of the transaction sender.
"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"
"AAVE_SUPPLY"The address on behalf of whom the supply is made. Defaults to the transaction sender.
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?