from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.universal.generic_allowance_set(token="USDC", contract=models.SetAllowanceRequestContractEnum.AAVE_V3_POOL, amount="0.1", chain=models.SetAllowanceRequestChain.BASE, sender="0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8", 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.universal.genericAllowanceSet({
token: "USDC",
contract: "AaveV3Pool",
amount: "0.1",
chain: "base",
sender: "0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/generic/allowance/set \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8",
"token": "USDC",
"contract": "AaveV3Pool",
"amount": "0.1"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8',
token: 'USDC',
contract: 'AaveV3Pool',
amount: '0.1'
})
};
fetch('https://api.compasslabs.ai/v1/generic/allowance/set', 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/generic/allowance/set",
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' => '0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8',
'token' => 'USDC',
'contract' => 'AaveV3Pool',
'amount' => '0.1'
]),
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/generic/allowance/set"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8\",\n \"token\": \"USDC\",\n \"contract\": \"AaveV3Pool\",\n \"amount\": \"0.1\"\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/generic/allowance/set")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8\",\n \"token\": \"USDC\",\n \"contract\": \"AaveV3Pool\",\n \"amount\": \"0.1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/generic/allowance/set")
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\": \"0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8\",\n \"token\": \"USDC\",\n \"contract\": \"AaveV3Pool\",\n \"amount\": \"0.1\"\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>"
}
]
}Set Allowance
This endpoint allows users to modify the token allowance on any ERC-20 token for a specific protocol.
In decentralized finance (DeFi), setting an allowance is a necessary step to authorize a protocol to spend a specified amount of tokens on behalf of the user. This operation is crucial for ensuring that the protocol can manage the user’s tokens securely and efficiently, enabling seamless transactions and operations within the DeFi ecosystem.
from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.universal.generic_allowance_set(token="USDC", contract=models.SetAllowanceRequestContractEnum.AAVE_V3_POOL, amount="0.1", chain=models.SetAllowanceRequestChain.BASE, sender="0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8", 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.universal.genericAllowanceSet({
token: "USDC",
contract: "AaveV3Pool",
amount: "0.1",
chain: "base",
sender: "0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/generic/allowance/set \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8",
"token": "USDC",
"contract": "AaveV3Pool",
"amount": "0.1"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8',
token: 'USDC',
contract: 'AaveV3Pool',
amount: '0.1'
})
};
fetch('https://api.compasslabs.ai/v1/generic/allowance/set', 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/generic/allowance/set",
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' => '0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8',
'token' => 'USDC',
'contract' => 'AaveV3Pool',
'amount' => '0.1'
]),
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/generic/allowance/set"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8\",\n \"token\": \"USDC\",\n \"contract\": \"AaveV3Pool\",\n \"amount\": \"0.1\"\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/generic/allowance/set")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8\",\n \"token\": \"USDC\",\n \"contract\": \"AaveV3Pool\",\n \"amount\": \"0.1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/generic/allowance/set")
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\": \"0xa16d82c668317bF20091fA9D6D2CAE09Ee05d7c8\",\n \"token\": \"USDC\",\n \"contract\": \"AaveV3Pool\",\n \"amount\": \"0.1\"\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
Request model for increasing token allowance for a contract.
The symbol or address of the token for which the allowance is set..
"USDC"
"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
The name or address of the contract to set spending allowance for.
AaveV3Pool, AerodromeBasicRouter, AerodromeSlipstreamRouter, AerodromeSlipstreamNonfungiblePositionManager, UniswapV3Router, UniswapV3NFTPositionManager, MorphoMarket, SkyDaiUsdsConverter, SkyUsdcUsdsConverter, SkyUsdsVault, PendleRouter, OdosRouter, EthenaVault "AaveV3Pool"
The amount to set the allowance to.
x > 01.5
arbitrum, base, ethereum "base"
The address of the transaction sender.
"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"
"SET_ALLOWANCE"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?