curl --request POST \
--url https://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in \
--header 'Content-Type: application/json' \
--header 'X-Monaco-Signature: <api-key>' \
--data '
{
"marginAccountId": "<string>",
"amount": "<string>"
}
'import requests
url = "https://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in"
payload = {
"marginAccountId": "<string>",
"amount": "<string>"
}
headers = {
"X-Monaco-Signature": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Monaco-Signature': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({marginAccountId: '<string>', amount: '<string>'})
};
fetch('https://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in', 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://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in",
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([
'marginAccountId' => '<string>',
'amount' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Monaco-Signature: <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://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in"
payload := strings.NewReader("{\n \"marginAccountId\": \"<string>\",\n \"amount\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Monaco-Signature", "<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://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in")
.header("X-Monaco-Signature", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"marginAccountId\": \"<string>\",\n \"amount\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Monaco-Signature"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"marginAccountId\": \"<string>\",\n \"amount\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"movementId": "<string>",
"amount": "<string>",
"fromMarginAccountId": "<string>",
"toMarginAccountId": "<string>",
"toRiskBucketId": "<string>"
}Post apiv1marginsub accounts collateraltransfer in
Move collateral from the caller’s default margin account to one of their
sub-accounts, in one sequenced step. The same move as TransferCollateral
from the default account to the sub-account. The path names an open
sub-account of the caller; the default margin account itself is refused
(fund it with the parent-margin-account routes).
curl --request POST \
--url https://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in \
--header 'Content-Type: application/json' \
--header 'X-Monaco-Signature: <api-key>' \
--data '
{
"marginAccountId": "<string>",
"amount": "<string>"
}
'import requests
url = "https://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in"
payload = {
"marginAccountId": "<string>",
"amount": "<string>"
}
headers = {
"X-Monaco-Signature": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Monaco-Signature': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({marginAccountId: '<string>', amount: '<string>'})
};
fetch('https://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in', 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://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in",
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([
'marginAccountId' => '<string>',
'amount' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Monaco-Signature: <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://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in"
payload := strings.NewReader("{\n \"marginAccountId\": \"<string>\",\n \"amount\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Monaco-Signature", "<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://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in")
.header("X-Monaco-Signature", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"marginAccountId\": \"<string>\",\n \"amount\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/margin/sub-accounts/{marginAccountId}/collateral/transfer-in")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Monaco-Signature"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"marginAccountId\": \"<string>\",\n \"amount\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"movementId": "<string>",
"amount": "<string>",
"fromMarginAccountId": "<string>",
"toMarginAccountId": "<string>",
"toRiskBucketId": "<string>"
}Authorizations
Ed25519 session-key request signing. Every authenticated request carries three headers: X-Monaco-PublicKey (64-char lowercase-hex session public key), X-Monaco-Timestamp (Unix milliseconds, within 30s of server time), and X-Monaco-Signature (hex ed25519 signature). The signature is over METHOD\npath?query\ntimestamp_ms\nSHA256_hex(body), where the body hash is the SHA-256 of the empty byte string when there is no body. Obtain the session keypair from POST /api/v1/auth/challenge followed by POST /api/v1/auth/verify.
Path Parameters
The caller's sub-account that receives the collateral.
Body
Response
OK
The source margin account, when the source is one.
The destination margin account, when the destination is one.
The destination risk bucket, when the destination is one.
Was this page helpful?

