curl --request POST \
--url https://staging.apimonaco.xyz/api/v1/invite-codes/requests \
--header 'Content-Type: application/json' \
--header 'X-Monaco-Signature: <api-key>' \
--data '{}'import requests
url = "https://staging.apimonaco.xyz/api/v1/invite-codes/requests"
payload = {}
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({})
};
fetch('https://staging.apimonaco.xyz/api/v1/invite-codes/requests', 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/invite-codes/requests",
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([
]),
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/invite-codes/requests"
payload := strings.NewReader("{}")
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/invite-codes/requests")
.header("X-Monaco-Signature", "<api-key>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/invite-codes/requests")
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 = "{}"
response = http.request(request)
puts response.read_body{
"mainnetVolumeUsd": "250000.00",
"eligibleMilestones": 1,
"pendingMilestones": [
1
],
"issuedMilestones": [],
"redeemedMilestones": [],
"newlyRequestedMilestones": [
0
],
"code": "<string>",
"codeId": "<string>",
"mintedMilestone": 123,
"totalAllowance": 123,
"availableCodes": 123,
"revokedMilestones": [
123
]
}Mint one Mainnet invite code
Mint one invite code from the authenticated wallet’s available allowance. Every active wallet has one initial code plus one per 250,000 USDC of executed Mainnet USDC volume since the configured launch. Revocation never refunds a slot.
curl --request POST \
--url https://staging.apimonaco.xyz/api/v1/invite-codes/requests \
--header 'Content-Type: application/json' \
--header 'X-Monaco-Signature: <api-key>' \
--data '{}'import requests
url = "https://staging.apimonaco.xyz/api/v1/invite-codes/requests"
payload = {}
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({})
};
fetch('https://staging.apimonaco.xyz/api/v1/invite-codes/requests', 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/invite-codes/requests",
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([
]),
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/invite-codes/requests"
payload := strings.NewReader("{}")
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/invite-codes/requests")
.header("X-Monaco-Signature", "<api-key>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/invite-codes/requests")
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 = "{}"
response = http.request(request)
puts response.read_body{
"mainnetVolumeUsd": "250000.00",
"eligibleMilestones": 1,
"pendingMilestones": [
1
],
"issuedMilestones": [],
"redeemedMilestones": [],
"newlyRequestedMilestones": [
0
],
"code": "<string>",
"codeId": "<string>",
"mintedMilestone": 123,
"totalAllowance": 123,
"availableCodes": 123,
"revokedMilestones": [
123
]
}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.
Body
The body is of type object.
Response
OK
Executed Mainnet USDC quote notional since the configured production launch, counting maker and taker wallets at 1 USDC = 1 USD. Zero until volume rewards and the launch timestamp are configured.
"250000.00"
Number of completed Mainnet volume milestones of 250,000 USDC each.
1
Previously pending milestones, retained for compatibility. Self-service minting creates an issued code immediately.
[1]
Issued allowance slots. Slot 0 is the initial code; slot N is the Nth 250,000 USDC volume milestone.
[]
Milestones whose issued code has been redeemed.
[]
The single allowance slot minted by this call, or an empty array when no allowance remains. Every call may consume the next available slot.
[0]
The newly minted 10-character case-sensitive bearer code. Absent when no allowance remains. Store securely; never log it.
Identifier of the newly minted code; absent when no allowance remains.
Consumed allowance slot: 0 for the initial code, N for the Nth 250,000 USDC milestone.
One initial code plus the number of completed Mainnet volume milestones of 250,000 USDC each.
Unconsumed allowance after this call. Revoked slots remain consumed.
Revoked allowance slots; they cannot be minted again.
Was this page helpful?

