curl --request GET \
--url https://staging.apimonaco.xyz/api/v1/pitpass/referrals/me/tree \
--header 'X-Monaco-Signature: <api-key>'import requests
url = "https://staging.apimonaco.xyz/api/v1/pitpass/referrals/me/tree"
headers = {"X-Monaco-Signature": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Monaco-Signature': '<api-key>'}};
fetch('https://staging.apimonaco.xyz/api/v1/pitpass/referrals/me/tree', 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/pitpass/referrals/me/tree",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://staging.apimonaco.xyz/api/v1/pitpass/referrals/me/tree"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Monaco-Signature", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.apimonaco.xyz/api/v1/pitpass/referrals/me/tree")
.header("X-Monaco-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/pitpass/referrals/me/tree")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Monaco-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"parent": "<string>",
"parentLevel": 1,
"nodes": [
{
"wallet": "0x0000000000000000000000000000000000000004",
"display": "<string>",
"level": 2,
"parent": "<string>",
"referredAt": "2023-11-07T05:31:56Z",
"refereeCount": 123,
"totalEarned": "<string>"
}
],
"nextPageToken": "<string>"
}Get one level of your referral tree
Read one level of your own referral tree (self-scoped).
Return the wallets directly referred by parent — the authenticated caller
when parent is omitted, otherwise one of the caller’s own L1 or L2
referees — one page at a time, newest first. Each node carries its level
relative to the caller, its parent, how many wallets it has referred (so the
client knows whether it can be expanded), and what the caller has earned
from that wallet’s own trades. Expanding a node is another call with
parent set to that node’s wallet; the tree stops at L3, the deepest level
that pays referral rewards.
Self-scoped — identity comes only from the session. A parent that is not
the caller or inside the caller’s own L1/L2 downline returns 404, the same
as a wallet that does not exist, so the endpoint cannot be used to read
anyone else’s tree. Every node is identified by its public wallet address,
never an internal id.
curl --request GET \
--url https://staging.apimonaco.xyz/api/v1/pitpass/referrals/me/tree \
--header 'X-Monaco-Signature: <api-key>'import requests
url = "https://staging.apimonaco.xyz/api/v1/pitpass/referrals/me/tree"
headers = {"X-Monaco-Signature": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Monaco-Signature': '<api-key>'}};
fetch('https://staging.apimonaco.xyz/api/v1/pitpass/referrals/me/tree', 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/pitpass/referrals/me/tree",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://staging.apimonaco.xyz/api/v1/pitpass/referrals/me/tree"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Monaco-Signature", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.apimonaco.xyz/api/v1/pitpass/referrals/me/tree")
.header("X-Monaco-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/pitpass/referrals/me/tree")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Monaco-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"parent": "<string>",
"parentLevel": 1,
"nodes": [
{
"wallet": "0x0000000000000000000000000000000000000004",
"display": "<string>",
"level": 2,
"parent": "<string>",
"referredAt": "2023-11-07T05:31:56Z",
"refereeCount": 123,
"totalEarned": "<string>"
}
],
"nextPageToken": "<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.
Query Parameters
Nodes per page (max 200)
1 <= x <= 200Opaque cursor from a previous response's nextPageToken; omit or send an
empty string for the first page. Only valid with the same parent.
Response
OK
Wallet address whose referees nodes lists — the caller's own wallet when the request omitted parent.
Depth of parent below the caller: 0 for the caller, 1 or 2 for a referee being expanded. Every node is one level deeper.
x <= 2The wallets parent referred, newest first. A wallet that signed up under several referrers (one per app) appears only under the referrer the reward engine pays.
Show child attributes
Show child attributes
Cursor for the next page; empty when there are no more.
Was this page helpful?

