from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.morpho.morpho_deposit(vault_address="0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca", amount=0.5, chain=models.MorphoDepositRequestChain.BASE, sender="0xF85272345eDa6aA3c6469C97065a676737e73f87", 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.morpho.morphoDeposit({
vaultAddress: "0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca",
amount: 0.5,
chain: "base",
sender: "0xF85272345eDa6aA3c6469C97065a676737e73f87",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/morpho/deposit \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0xF85272345eDa6aA3c6469C97065a676737e73f87",
"vault_address": "0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca",
"amount": 0.5
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0xF85272345eDa6aA3c6469C97065a676737e73f87',
vault_address: '0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca',
amount: 0.5
})
};
fetch('https://api.compasslabs.ai/v1/morpho/deposit', 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/morpho/deposit",
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' => '0xF85272345eDa6aA3c6469C97065a676737e73f87',
'vault_address' => '0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca',
'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/morpho/deposit"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0xF85272345eDa6aA3c6469C97065a676737e73f87\",\n \"vault_address\": \"0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca\",\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/morpho/deposit")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0xF85272345eDa6aA3c6469C97065a676737e73f87\",\n \"vault_address\": \"0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca\",\n \"amount\": 0.5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/morpho/deposit")
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\": \"0xF85272345eDa6aA3c6469C97065a676737e73f87\",\n \"vault_address\": \"0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca\",\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>"
}
]
}Deposit to Vault
Deposit tokens into a Morpho Vault to earn passive yield from interest paid by borrowers.
Each vault accepts one unique token that can be deposited.
A Morpho Vault has one loan asset and can allocate deposits to multiple Morpho markets. Users can deposit into a vault to start earning passive yield from interest paid by borrowers. Vaults feature automated risk management, actively curating risk exposure for all deposited assets so users don’t need to make these decisions themselves. Users maintain full control over their assets, can monitor the vault’s state at any time, and withdraw their liquidity at their discretion.
Required Allowances
In order to make this transaction, token allowances need to be set for the following contracts.
<vault-contract-address>
from compass_api_sdk import CompassAPI, models
with CompassAPI(
api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:
res = compass_api.morpho.morpho_deposit(vault_address="0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca", amount=0.5, chain=models.MorphoDepositRequestChain.BASE, sender="0xF85272345eDa6aA3c6469C97065a676737e73f87", 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.morpho.morphoDeposit({
vaultAddress: "0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca",
amount: 0.5,
chain: "base",
sender: "0xF85272345eDa6aA3c6469C97065a676737e73f87",
});
console.log(result);
}
run();curl --request POST \
--url https://api.compasslabs.ai/v1/morpho/deposit \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"chain": "base",
"sender": "0xF85272345eDa6aA3c6469C97065a676737e73f87",
"vault_address": "0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca",
"amount": 0.5
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
chain: 'base',
sender: '0xF85272345eDa6aA3c6469C97065a676737e73f87',
vault_address: '0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca',
amount: 0.5
})
};
fetch('https://api.compasslabs.ai/v1/morpho/deposit', 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/morpho/deposit",
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' => '0xF85272345eDa6aA3c6469C97065a676737e73f87',
'vault_address' => '0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca',
'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/morpho/deposit"
payload := strings.NewReader("{\n \"chain\": \"base\",\n \"sender\": \"0xF85272345eDa6aA3c6469C97065a676737e73f87\",\n \"vault_address\": \"0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca\",\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/morpho/deposit")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"base\",\n \"sender\": \"0xF85272345eDa6aA3c6469C97065a676737e73f87\",\n \"vault_address\": \"0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca\",\n \"amount\": 0.5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.compasslabs.ai/v1/morpho/deposit")
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\": \"0xF85272345eDa6aA3c6469C97065a676737e73f87\",\n \"vault_address\": \"0xc1256Ae5FF1cf2719D4937adb3bbCCab2E00A2Ca\",\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 vault address you are depositing to.
"0xbEef047a543E45807105E51A8BBEFCc5950fcfBa"
The amount of tokens to deposit into the vault.
x > 01.5
arbitrum, base, ethereum "base"
The address of the transaction sender.
"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"
"MORPHO_DEPOSIT"The address which will receive the shares from the vault representing their proportional ownership of the vault's assets. Defaults to the 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?