from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.earn.earn_create_account(chain=models.CreateAccountRequestChain.BASE, sender="0x06A9aF046187895AcFc7258450B15397CAc67400", owner="0x06A9aF046187895AcFc7258450B15397CAc67400", 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.earn.earnCreateAccount({
chain: "base",
sender: "0x06A9aF046187895AcFc7258450B15397CAc67400",
owner: "0x06A9aF046187895AcFc7258450B15397CAc67400",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v2/earn/create_account \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0x06A9aF046187895AcFc7258450B15397CAc67400",
"owner": "0x06A9aF046187895AcFc7258450B15397CAc67400"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0x06A9aF046187895AcFc7258450B15397CAc67400',
owner: '0x06A9aF046187895AcFc7258450B15397CAc67400'
})
};
fetch('https://api.compasslabs.ai/v2/earn/create_account', 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/v2/earn/create_account",
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' => '0x06A9aF046187895AcFc7258450B15397CAc67400',
'owner' => '0x06A9aF046187895AcFc7258450B15397CAc67400'
]),
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/v2/earn/create_account"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0x06A9aF046187895AcFc7258450B15397CAc67400\",\n \"owner\": \"0x06A9aF046187895AcFc7258450B15397CAc67400\"\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/v2/earn/create_account")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0x06A9aF046187895AcFc7258450B15397CAc67400\",\n \"owner\": \"0x06A9aF046187895AcFc7258450B15397CAc67400\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v2/earn/create_account")
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\": \"0x06A9aF046187895AcFc7258450B15397CAc67400\",\n \"owner\": \"0x06A9aF046187895AcFc7258450B15397CAc67400\"\n}"
response = http.request(request)
puts response.read_body{
"earn_account_address": "0x6B90E8B4E3E971E74C1A47a3a20976377E2dB4b1",
"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>"
}
]
}Create earn account
Create an Earn Account for a wallet address.
Before depositing into venues or managing positions, the owner must create an Earn Account. Each wallet address has one Earn Account per chain.
Returns an unsigned transaction to create the account. The sender signs and broadcasts this transaction.
If owner pays gas: Set sender to the owner’s address.
If someone else pays gas: Set sender to the wallet that will sign and broadcast the transaction on behalf of the owner.
from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.earn.earn_create_account(chain=models.CreateAccountRequestChain.BASE, sender="0x06A9aF046187895AcFc7258450B15397CAc67400", owner="0x06A9aF046187895AcFc7258450B15397CAc67400", 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.earn.earnCreateAccount({
chain: "base",
sender: "0x06A9aF046187895AcFc7258450B15397CAc67400",
owner: "0x06A9aF046187895AcFc7258450B15397CAc67400",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v2/earn/create_account \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0x06A9aF046187895AcFc7258450B15397CAc67400",
"owner": "0x06A9aF046187895AcFc7258450B15397CAc67400"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0x06A9aF046187895AcFc7258450B15397CAc67400',
owner: '0x06A9aF046187895AcFc7258450B15397CAc67400'
})
};
fetch('https://api.compasslabs.ai/v2/earn/create_account', 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/v2/earn/create_account",
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' => '0x06A9aF046187895AcFc7258450B15397CAc67400',
'owner' => '0x06A9aF046187895AcFc7258450B15397CAc67400'
]),
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/v2/earn/create_account"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0x06A9aF046187895AcFc7258450B15397CAc67400\",\n \"owner\": \"0x06A9aF046187895AcFc7258450B15397CAc67400\"\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/v2/earn/create_account")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0x06A9aF046187895AcFc7258450B15397CAc67400\",\n \"owner\": \"0x06A9aF046187895AcFc7258450B15397CAc67400\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v2/earn/create_account")
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\": \"0x06A9aF046187895AcFc7258450B15397CAc67400\",\n \"owner\": \"0x06A9aF046187895AcFc7258450B15397CAc67400\"\n}"
response = http.request(request)
puts response.read_body{
"earn_account_address": "0x6B90E8B4E3E971E74C1A47a3a20976377E2dB4b1",
"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 to create a compass account.
arbitrum, base, bsc, ethereum, tempo "base"
The address of the transaction sender.
"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"
The address that will own and control the compass account
"0x06A9aF046187895AcFc7258450B15397CAc67400"
Determines whether to estimate gas costs for transactions, also verifying that the transaction can be successfully executed.
Response
Successful Response
Response containing unsigned transaction to create compass Earn account.
Transaction to create compass account
Show child attributes
Show child attributes
{
"chainId": "0x2105",
"data": "0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d",
"from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"gas": "0x7a120",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00",
"nonce": "0x5",
"to": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
"value": "0x0"
}
Predicted address of the compass earn account that will be deployed
Was this page helpful?