const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-staging.keystoneos.xyz/v1/platforms/me/capabilities', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api-staging.keystoneos.xyz/v1/platforms/me/capabilities"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)curl --request GET \
--url https://api-staging.keystoneos.xyz/v1/platforms/me/capabilities \
--header 'Authorization: Bearer <token>'{
"advisory": true,
"chains": {
"chain_locality_enforced": true,
"execution": {
"escrow_chain_id": 84532,
"mode": "on_chain",
"settlement_contract_declared": true,
"writes_configured": true
},
"mechanisms": [
"escrow"
],
"multi_chain_supported": false,
"settlement_chains": [
{
"chain_id": 84532,
"name": "base-sepolia",
"settlement_address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512"
}
]
},
"environment_id": "7f1c2b3a-4d5e-6f70-8192-a3b4c5d6e7f8",
"freshness": "Valid only at generated_at. Every mutation revalidates the credential, the template and the chain configuration as they are at that moment; this snapshot grants nothing.",
"generated_at": "2026-09-16T12:00:00Z",
"operations": {
"instruction_submit": {
"enabled": true,
"required_permission": "settlements:write"
},
"settlement_create": {
"enabled": true,
"required_permission": "settlements:write"
},
"settlement_read": {
"enabled": true,
"required_permission": "settlements:read",
"settlement_restricted": false
}
},
"platform_id": "0d8e8a5c-3d8b-4f6e-9b6a-1a2b3c4d5e6f",
"templates": {
"page": {
"active_total": 2,
"items": [
{
"available": true,
"id": "9c0b1a2d-3e4f-4a5b-8c6d-7e8f9a0b1c2d",
"mechanism": "escrow",
"name": "Cross-platform DvP",
"slug": "cross_platform_dvp",
"version": 3
}
],
"limit": 50,
"offset": 0
},
"readable": true,
"required_permission": "templates:read"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
],
"code": "VALIDATION_ERROR",
"docs_url": "https://docs.keystoneos.xyz/guides/error-codes#validation-error"
}Discover settlement capabilities
Requires the platform:read scope (as an M2M scope or a user permission).
Return what the authenticated environment and credential can currently do before attempting a settlement: the operations the credential’s routes would admit with the reason for each refusal, one page of active templates judged for availability (identifiers withheld without templates:read), and the chains and mechanism this deployment settles on. The answer is advisory and valid only when generated: every mutation revalidates, and nothing here grants access or promises that a settlement will execute. Served with Cache-Control: private, no-store.
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-staging.keystoneos.xyz/v1/platforms/me/capabilities', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api-staging.keystoneos.xyz/v1/platforms/me/capabilities"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)curl --request GET \
--url https://api-staging.keystoneos.xyz/v1/platforms/me/capabilities \
--header 'Authorization: Bearer <token>'{
"advisory": true,
"chains": {
"chain_locality_enforced": true,
"execution": {
"escrow_chain_id": 84532,
"mode": "on_chain",
"settlement_contract_declared": true,
"writes_configured": true
},
"mechanisms": [
"escrow"
],
"multi_chain_supported": false,
"settlement_chains": [
{
"chain_id": 84532,
"name": "base-sepolia",
"settlement_address": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512"
}
]
},
"environment_id": "7f1c2b3a-4d5e-6f70-8192-a3b4c5d6e7f8",
"freshness": "Valid only at generated_at. Every mutation revalidates the credential, the template and the chain configuration as they are at that moment; this snapshot grants nothing.",
"generated_at": "2026-09-16T12:00:00Z",
"operations": {
"instruction_submit": {
"enabled": true,
"required_permission": "settlements:write"
},
"settlement_create": {
"enabled": true,
"required_permission": "settlements:write"
},
"settlement_read": {
"enabled": true,
"required_permission": "settlements:read",
"settlement_restricted": false
}
},
"platform_id": "0d8e8a5c-3d8b-4f6e-9b6a-1a2b3c4d5e6f",
"templates": {
"page": {
"active_total": 2,
"items": [
{
"available": true,
"id": "9c0b1a2d-3e4f-4a5b-8c6d-7e8f9a0b1c2d",
"mechanism": "escrow",
"name": "Cross-platform DvP",
"slug": "cross_platform_dvp",
"version": 3
}
],
"limit": 50,
"offset": 0
},
"readable": true,
"required_permission": "templates:read"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
],
"code": "VALIDATION_ERROR",
"docs_url": "https://docs.keystoneos.xyz/guides/error-codes#validation-error"
}Authorizations
Auth0 JWT access token. See Authentication for details.
Query Parameters
Templates per page.
1 <= x <= 100Templates to skip.
x >= 0Response
Successful Response
The verified environment the credential resolved to; never caller-selected.
Always true: this response grants nothing.
How long the answers hold.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes