curl --request GET \
--url https://sandbox.groundtech.co/v2/microvaults/vaults \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.groundtech.co/v2/microvaults/vaults"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.groundtech.co/v2/microvaults/vaults', 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://sandbox.groundtech.co/v2/microvaults/vaults",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://sandbox.groundtech.co/v2/microvaults/vaults"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.groundtech.co/v2/microvaults/vaults")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.groundtech.co/v2/microvaults/vaults")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "d9902b20-6499-4465-a4c3-5d2208182f79",
"customerRecordId": "0f73a08e-8429-45a3-a149-67f212d6a746",
"chainId": 11155111,
"onchainCustomerId": "41",
"address": "0x848837d997f0ce3f753d4644ee51b837ab8b386e",
"factoryAddress": "0x0f62a920980b03f2fd8fec9efac6040a6595a910",
"customerVaultNonce": "3",
"version": "1",
"shareName": "Acme Treasury MicroVault",
"shareSymbol": "acmeUSDC",
"baseAssetAddress": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
"baseAssetDecimals": 6,
"status": "active",
"deploymentStatus": "active",
"exported": false,
"managementFeeBps": 0,
"performanceFeeBps": 0,
"feeRecipientAddress": "0x76f8fc6667e239f83a547d4e16225d6a34f6fa22",
"pauseFlags": "0",
"allocationTargets": [
{
"sourceId": "0x1111111111111111111111111111111111111111111111111111111111111111",
"targetBps": 8000
}
],
"idleTargetBps": 2000,
"highWaterNavPerShare": "1000000",
"enabledSourceCount": 1,
"totalAssetsUnits": "125000000",
"idleAssetsUnits": "25000000",
"freeIdleAssetsUnits": "25000000",
"reservedRedemptionAssetsUnits": "0",
"navPerShareUnits": "1002400",
"createdAt": "2026-09-01T14:30:00.000Z",
"updatedAt": "2026-09-10T18:40:00.000Z",
"nav": {
"observationKind": "onchain_read",
"blockNumber": 9182041,
"blockHash": "0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"totalAssetsUnits": "125000000",
"totalSupplyUnits": "124700000000000000000",
"navPerShareUnits": "1002400",
"valuationFailure": null,
"observedAt": "2026-09-10T18:40:00.000Z"
},
"automation": {
"mode": "ground_managed",
"health": "healthy",
"pendingWork": [],
"blockingReason": null,
"lastEvaluatedAt": "2026-09-10T18:40:10.000Z",
"lastOperationAt": "2026-09-10T17:05:00.000Z"
}
}
],
"nextCursor": null,
"provisionings": [],
"creation": {
"chainId": 11155111,
"status": "accepted",
"authorityAddress": "0x3333333333333333333333333333333333333333"
}
}{
"error": "Unauthenticated request",
"message": "Missing or invalid bearer token"
}List MicroVaults
Returns active MicroVaults and creations still provisioning. Use each active vault’s id in API paths and its address for onchain share-token interactions.
curl --request GET \
--url https://sandbox.groundtech.co/v2/microvaults/vaults \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.groundtech.co/v2/microvaults/vaults"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.groundtech.co/v2/microvaults/vaults', 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://sandbox.groundtech.co/v2/microvaults/vaults",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://sandbox.groundtech.co/v2/microvaults/vaults"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.groundtech.co/v2/microvaults/vaults")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.groundtech.co/v2/microvaults/vaults")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "d9902b20-6499-4465-a4c3-5d2208182f79",
"customerRecordId": "0f73a08e-8429-45a3-a149-67f212d6a746",
"chainId": 11155111,
"onchainCustomerId": "41",
"address": "0x848837d997f0ce3f753d4644ee51b837ab8b386e",
"factoryAddress": "0x0f62a920980b03f2fd8fec9efac6040a6595a910",
"customerVaultNonce": "3",
"version": "1",
"shareName": "Acme Treasury MicroVault",
"shareSymbol": "acmeUSDC",
"baseAssetAddress": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
"baseAssetDecimals": 6,
"status": "active",
"deploymentStatus": "active",
"exported": false,
"managementFeeBps": 0,
"performanceFeeBps": 0,
"feeRecipientAddress": "0x76f8fc6667e239f83a547d4e16225d6a34f6fa22",
"pauseFlags": "0",
"allocationTargets": [
{
"sourceId": "0x1111111111111111111111111111111111111111111111111111111111111111",
"targetBps": 8000
}
],
"idleTargetBps": 2000,
"highWaterNavPerShare": "1000000",
"enabledSourceCount": 1,
"totalAssetsUnits": "125000000",
"idleAssetsUnits": "25000000",
"freeIdleAssetsUnits": "25000000",
"reservedRedemptionAssetsUnits": "0",
"navPerShareUnits": "1002400",
"createdAt": "2026-09-01T14:30:00.000Z",
"updatedAt": "2026-09-10T18:40:00.000Z",
"nav": {
"observationKind": "onchain_read",
"blockNumber": 9182041,
"blockHash": "0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"totalAssetsUnits": "125000000",
"totalSupplyUnits": "124700000000000000000",
"navPerShareUnits": "1002400",
"valuationFailure": null,
"observedAt": "2026-09-10T18:40:00.000Z"
},
"automation": {
"mode": "ground_managed",
"health": "healthy",
"pendingWork": [],
"blockingReason": null,
"lastEvaluatedAt": "2026-09-10T18:40:10.000Z",
"lastOperationAt": "2026-09-10T17:05:00.000Z"
}
}
],
"nextCursor": null,
"provisionings": [],
"creation": {
"chainId": 11155111,
"status": "accepted",
"authorityAddress": "0x3333333333333333333333333333333333333333"
}
}{
"error": "Unauthenticated request",
"message": "Missing or invalid bearer token"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Maximum number of records to return in this page.
1 <= x <= 100Opaque continuation token from the preceding response's nextCursor. Omit for the first page.
512Response
MicroVaults and deployments in progress.
Active MicroVaults in this page.
Show child attributes
Show child attributes
Continuation token for the next page, or null when this is the last page.
Vault creations that have not reached an active state.
Show child attributes
Show child attributes
Organization readiness and authority for creating MicroVaults, or null when onboarding has not started.
Show child attributes
Show child attributes