curl --request PUT \
--url https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/pause \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"operation": "subscriptions",
"paused": true
}
'import requests
url = "https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/pause"
payload = {
"operation": "subscriptions",
"paused": True
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({operation: 'subscriptions', paused: true})
};
fetch('https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/pause', 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/{vaultId}/pause",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'operation' => 'subscriptions',
'paused' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-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://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/pause"
payload := strings.NewReader("{\n \"operation\": \"subscriptions\",\n \"paused\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/pause")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"operation\": \"subscriptions\",\n \"paused\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/pause")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"operation\": \"subscriptions\",\n \"paused\": true\n}"
response = http.request(request)
puts response.read_body{
"task": {
"id": "924c9b2d-3a9c-4b1a-b470-c73fc9b97c06",
"kind": "update_strategy",
"status": "submitted",
"vaultId": "d9902b20-6499-4465-a4c3-5d2208182f79",
"txHashes": [
"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
],
"error": null,
"createdAt": "2026-09-10T18:42:10.000Z",
"updatedAt": "2026-09-10T18:42:12.000Z"
}
}{
"error": "invalid_request",
"message": "allocation targets and idleTargetBps must total 10000"
}{
"error": "Unauthenticated request",
"message": "Missing or invalid bearer token"
}{
"error": "invalid_request",
"message": "allocation targets and idleTargetBps must total 10000"
}Update MicroVault pause controls
Blocks or restores one vault capability without changing the other pause controls. Use this for incident response or planned operational restrictions.
curl --request PUT \
--url https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/pause \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"operation": "subscriptions",
"paused": true
}
'import requests
url = "https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/pause"
payload = {
"operation": "subscriptions",
"paused": True
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({operation: 'subscriptions', paused: true})
};
fetch('https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/pause', 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/{vaultId}/pause",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'operation' => 'subscriptions',
'paused' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-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://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/pause"
payload := strings.NewReader("{\n \"operation\": \"subscriptions\",\n \"paused\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/pause")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"operation\": \"subscriptions\",\n \"paused\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.groundtech.co/v2/microvaults/vaults/{vaultId}/pause")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"operation\": \"subscriptions\",\n \"paused\": true\n}"
response = http.request(request)
puts response.read_body{
"task": {
"id": "924c9b2d-3a9c-4b1a-b470-c73fc9b97c06",
"kind": "update_strategy",
"status": "submitted",
"vaultId": "d9902b20-6499-4465-a4c3-5d2208182f79",
"txHashes": [
"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
],
"error": null,
"createdAt": "2026-09-10T18:42:10.000Z",
"updatedAt": "2026-09-10T18:42:12.000Z"
}
}{
"error": "invalid_request",
"message": "allocation targets and idleTargetBps must total 10000"
}{
"error": "Unauthenticated request",
"message": "Missing or invalid bearer token"
}{
"error": "invalid_request",
"message": "allocation targets and idleTargetBps must total 10000"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Unique key for this intended change. Reuse it only when retrying the identical request.
1 - 200Path Parameters
Ground identifier of the MicroVault. This is distinct from its onchain contract address.
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"8f4c52d7-62ab-4db9-a964-92f481f6b851"
Body
Vault capability to control. Source entries move base assets into yield sources; source exits move assets back to the vault.
subscriptions, redemptions, share_transfers, source_entries, source_exits Set to true to block the selected operation or false to permit it again.
Response
The operation was accepted.
Asynchronous change accepted for submission and onchain confirmation.
Show child attributes
Show child attributes
{ "id": "924c9b2d-3a9c-4b1a-b470-c73fc9b97c06", "kind": "update_strategy", "status": "submitted", "vaultId": "d9902b20-6499-4465-a4c3-5d2208182f79", "txHashes": [ "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ], "error": null, "createdAt": "2026-09-10T18:42:10.000Z", "updatedAt": "2026-09-10T18:42:12.000Z" }