Anchorage Digital Atlas Settlement Network API
The Atlas Settlement Network API from Anchorage Digital — 9 operation(s) for atlas settlement network.
The Atlas Settlement Network API from Anchorage Digital — 9 operation(s) for atlas settlement network.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/anchorage-atlas-settlement-network-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Anchorage Atlas Settlement Network API
version: 2.0.0
contact:
email: api@anchorage.com
description: 'Operations tagged Atlas Settlement Network across 2 of this provider''s published API definitions: anchorage-v2-openapi-original.yml, anchorage-v3-openapi-original.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.anchorage-staging.com/v2
- url: https://api.anchorage-staging.com/v3
security:
- Api-Access-Key: []
tags:
- description: ''
name: Atlas Settlement Network
paths:
/atlas/settlements:
post:
operationId: proposeSNSettlement
summary: Propose a settlement
description: 'Permissions required: **Propose and Accept settlements**
Propose a settlement with a counterparty for a list of assets coming from and/or arriving into wallets owned by your participant.
Positive amounts indicate funds to be received and negative amounts indicate funds to be sent.
```json
[
{
"walletId": "d4578f401daadff65615236c5ad1e12c",
"quantity": "-1.1",
"assetType": "BTC"
},
{
"walletId": "43a9aeac02c851f4868f9d89aabde494",
"quantity": "20.62",
"assetType": "ETH"
}
]
```
For example, the above wallet amounts indicate you will send 1.1 BTC from your wallet `d4578f401daadff65615236c5ad1e12c` and receive 20.62 ETH into your wallet `43a9aeac02c851f4868f9d89aabde494`.
The steps to create a settlement are:
1. The proposer participant proposes it, selecting an acceptor, assets, amounts and wallets.
2. The proposer authorizes it, either through the API or mobile app signing.
3. The acceptor participant accepts it, selecting wallets to use.
4. (optional) The acceptor authorizes it, either through the API or mobile app signing.
5. The settlement is funded in the sending wallets.
6. The assets are transferred on-chain, as directed by the settlement.
Steps 2 or 3 can happen out of order.
Step 4 is skipped if the acceptor is not sending any assets.
The settlement stays in the `ActionNeeded` state until it reaches step 6. Then it enters the `Executing` state and, after that, it enters one of the final states.'
parameters:
- name: Api-Signature
in: header
description: "A hex-encoded Ed25519 signature of `timestamp_epoch_seconds + uppercase(http_method) + request_path + request_body`.\n\n\n\nConstruction example:\n\n ```\n toHex(\n ed25519Sign(\n signing_key,\n '{}{}{}{}'.format(timestamp_epoch_seconds, toUpper(httpMethod), httpRequestPath, httpBody)\n )\n )\n ```\n"
required: true
schema:
type: string
pattern: ^[0-9A-Fa-f]{128,160}$
- name: Api-Timestamp
in: header
description: Current timestamp, represented as unix epoch seconds
required: true
schema:
type: integer
format: int64
requestBody:
description: Settlement proposal
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SNSettlementProposal'
responses:
'201':
description: settlementId
content:
application/json:
schema:
$ref: '#/components/schemas/SNProposeSettlementResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Atlas Settlement Network
get:
operationId: getSNSettlements
summary: List settlements
description: 'Permissions required: **Read vault activity**
Get settlements proposed by you or proposed to you.'
parameters:
- name: afterId
in: query
description: When paginating this is used to provide the starting point for the page to fetch (retrieved from the previous response body)
schema:
type: string
- name: limit
in: query
description: Maximum number of results to return per query
schema:
type: integer
format: int64
default: 30
maximum: 100
minimum: 1
responses:
'200':
description: settlements
content:
application/json:
schema:
$ref: '#/components/schemas/SNSettlementsResponse'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Atlas Settlement Network
servers:
- url: https://api.anchorage-staging.com/v2
/atlas/settlements/{settlementId}/reject:
post:
operationId: rejectSNSettlement
summary: Reject a settlement proposal
description: 'Permissions required: **Propose and Accept settlements** or **Authorize Settlements**
Rejects a proposed settlement for your Atlas participant. Proposed settlements cannot be rejected if they have already been authorized.'
parameters:
- name: settlementId
in: path
description: ID of settlement to reject
required: true
schema:
type: string
- name: Api-Signature
in: header
description: "A hex-encoded Ed25519 signature of `timestamp_epoch_seconds + uppercase(http_method) + request_path + request_body`.\n\n\n\nConstruction example:\n\n ```\n toHex(\n ed25519Sign(\n signing_key,\n '{}{}{}{}'.format(timestamp_epoch_seconds, toUpper(httpMethod), httpRequestPath, httpBody)\n )\n )\n ```\n"
required: true
schema:
type: string
pattern: ^[0-9A-Fa-f]{128,160}$
- name: Api-Timestamp
in: header
description: Current timestamp, represented as unix epoch seconds
required: true
schema:
type: integer
format: int64
responses:
'200':
description: ''
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Atlas Settlement Network
servers:
- url: https://api.anchorage-staging.com/v2
/atlas/settlements/{settlementId}/authorize:
post:
operationId: authorizeSNSettlement
summary: Authorize a settlement
description: 'Permissions required: **Authorize Settlements**
After your participant has proposed a settlement or accepted a settlement proposal, the details of the settlement must be authorized.
To authorize via API, the API key must have a special permission. Otherwise, authorization takes place in the app according to organization policy.'
parameters:
- name: settlementId
in: path
description: ID of settlement to authorize
required: true
schema:
type: string
- name: participantId
in: query
description: ID of participant authorizing the settlement
required: true
schema:
type: string
- name: Api-Signature
in: header
description: "A hex-encoded Ed25519 signature of `timestamp_epoch_seconds + uppercase(http_method) + request_path + request_body`.\n\n\n\nConstruction example:\n\n ```\n toHex(\n ed25519Sign(\n signing_key,\n '{}{}{}{}'.format(timestamp_epoch_seconds, toUpper(httpMethod), httpRequestPath, httpBody)\n )\n )\n ```\n"
required: true
schema:
type: string
pattern: ^[0-9A-Fa-f]{128,160}$
- name: Api-Timestamp
in: header
description: Current timestamp, represented as unix epoch seconds
required: true
schema:
type: integer
format: int64
requestBody:
description: Settlement proposal
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SNSettlementAuthorization'
responses:
'200':
description: ''
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Atlas Settlement Network
servers:
- url: https://api.anchorage-staging.com/v2
/atlas/settlements/{settlementId}/accept:
post:
operationId: acceptSNSettlement
summary: Accept a settlement
description: 'Permissions required: **Propose and Accept settlements** and **Read vault activity**
Accept a proposed settlement and select wallets to receive funds to and/or send funds from.'
parameters:
- name: settlementId
in: path
description: ID of settlement to authorize
required: true
schema:
type: string
- name: Api-Signature
in: header
description: "A hex-encoded Ed25519 signature of `timestamp_epoch_seconds + uppercase(http_method) + request_path + request_body`.\n\n\n\nConstruction example:\n\n ```\n toHex(\n ed25519Sign(\n signing_key,\n '{}{}{}{}'.format(timestamp_epoch_seconds, toUpper(httpMethod), httpRequestPath, httpBody)\n )\n )\n ```\n"
required: true
schema:
type: string
pattern: ^[0-9A-Fa-f]{128,160}$
- name: Api-Timestamp
in: header
description: Current timestamp, represented as unix epoch seconds
required: true
schema:
type: integer
format: int64
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SNAcceptSettlementRequest'
responses:
'200':
description: ''
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Atlas Settlement Network
servers:
- url: https://api.anchorage-staging.com/v2
/atlas/settlements/{settlementId}:
get:
operationId: getSNSettlement
summary: Get a settlement by ID
description: 'Permissions required: **Read vault activity**
Get a single settlement by its ID.'
parameters:
- name: settlementId
in: path
description: ID of settlement to fetch
required: true
schema:
type: string
responses:
'200':
description: settlement
content:
application/json:
schema:
$ref: '#/components/schemas/SNSettlementResponse'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Atlas Settlement Network
servers:
- url: https://api.anchorage-staging.com/v2
/atlas/directory/counterparties:
post:
operationId: proposeSNTrustedCounterparty
summary: Propose a trusted counterparty
description: 'Permissions required: **Propose Trusted Counterparty**
Propose adding a new trusted counterparty for a participant.'
parameters:
- name: Api-Signature
in: header
description: "A hex-encoded Ed25519 signature of `timestamp_epoch_seconds + uppercase(http_method) + request_path + request_body`.\n\n\n\nConstruction example:\n\n ```\n toHex(\n ed25519Sign(\n signing_key,\n '{}{}{}{}'.format(timestamp_epoch_seconds, toUpper(httpMethod), httpRequestPath, httpBody)\n )\n )\n ```\n"
required: true
schema:
type: string
pattern: ^[0-9A-Fa-f]{128,160}$
- name: Api-Timestamp
in: header
description: Current timestamp, represented as unix epoch seconds
required: true
schema:
type: integer
format: int64
requestBody:
description: Trusted counterparty proposal
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SNTrustedCounterpartyProposal'
responses:
'201':
description: ''
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Atlas Settlement Network
get:
operationId: getSNTrustedCounterparties
summary: List trusted counterparties
description: 'Permissions required: **Read vault activity**
Get trusted counterparties.'
parameters:
- name: participantId
in: query
description: ID of the participant this trusted counterparty is for
required: true
schema:
type: string
- name: limit
in: query
description: Maximum number of results to return per query
schema:
type: integer
format: int64
default: 30
maximum: 100
minimum: 1
- name: afterId
in: query
description: When paginating this is used to provide the starting point for the page to fetch (retrieved from the previous response body)
schema:
type: string
responses:
'200':
description: counterparties
content:
application/json:
schema:
$ref: '#/components/schemas/SNTrustedCounterpartiesResponse'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Atlas Settlement Network
servers:
- url: https://api.anchorage-staging.com/v2
/atlas/directory/counterparties/{counterpartyId}:
get:
operationId: getSNTrustedCounterparty
summary: Get a counterparty by ID
description: 'Permissions required: **Read vault activity**
Get a single trusted counterparty by its ID.'
parameters:
- name: counterpartyId
in: path
description: ID of trusted counterparty to fetch
required: true
schema:
type: string
- name: participantId
in: query
description: ID of the participant this trusted counterparty is for
required: true
schema:
type: string
responses:
'200':
description: counterparty
content:
application/json:
schema:
$ref: '#/components/schemas/SNTrustedCounterpartyResponse'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Atlas Settlement Network
servers:
- url: https://api.anchorage-staging.com/v2
/atlas/directory/participants/{participantId}:
get:
operationId: getSNParticipant
summary: Get a participant by ID
description: 'Permissions required: **Read vault activity**
Get a single participant by its ID.'
parameters:
- name: participantId
in: path
description: ID of participant to fetch
required: true
schema:
type: string
responses:
'200':
description: participant
content:
application/json:
schema:
$ref: '#/components/schemas/SNParticipantResponse'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Atlas Settlement Network
servers:
- url: https://api.anchorage-staging.com/v2
/atlas/directory/participants:
get:
operationId: getSNParticipants
summary: List participants
description: 'Permissions required: **Read vault activity**
Get the list of participants you have access to.'
parameters:
- name: limit
in: query
description: Maximum number of results to return per query
schema:
type: integer
format: int64
default: 30
maximum: 100
minimum: 1
- name: afterId
in: query
description: When paginating this is used to provide the starting point for the page to fetch (retrieved from the previous response body)
schema:
type: string
responses:
'200':
description: participants
content:
application/json:
schema:
$ref: '#/components/schemas/SNParticipantsResponse'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Atlas Settlement Network
servers:
- url: https://api.anchorage-staging.com/v2
components:
schemas:
SNSettlement:
description: 'A settlement is a proposal to move assets between wallets owned by two participants.
When the settlement status is `ActionNeeded`, refer to your participant''s settlement side (`proposerSide` or `acceptorSide`) for more detailed information. Fields on the settlement side reflect the individual actions needed.'
type: object
properties:
acceptorSide:
$ref: '#/components/schemas/SNSettlementSide'
clientReferenceId:
description: An ID, set by the proposer, visible to both sides, to uniquely identify the purpose of the settlement so that both sides can account for it correctly.
type: string
pendingAcceptorReview:
description: a flag indicating whether the settlement is awaiting acceptor selection
type: boolean
proposerSide:
$ref: '#/components/schemas/SNSettlementSide'
settlementId:
type: string
state:
$ref: '#/components/schemas/SNSettlementState'
required:
- settlementId
- proposerSide
- acceptorSide
- state
- clientReferenceId
- pendingAcceptorReview
SNParticipantResponse:
type: object
properties:
participant:
$ref: '#/components/schemas/SNParticipant'
required:
- participant
SNTrustedCounterpartyProposal:
type: object
properties:
counterpartyId:
type: string
description:
type: string
idempotentId:
type: string
maxLength: 128
participantId:
type: string
required:
- participantId
- counterpartyId
- idempotentId
SNTrustedCounterpartiesResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/SNTrustedCounterparty'
page:
$ref: '#/components/schemas/Page'
required:
- data
- page
SNSettlementAuthorization:
type: object
properties:
acceptorId:
type: string
proposerId:
type: string
walletAmounts:
description: In a proposal, each asset type can appear only once in the wallet amount list.
type: array
items:
$ref: '#/components/schemas/SNWalletAmount'
required:
- proposerId
- acceptorId
- walletAmounts
Page:
description: Pagination info
type: object
properties:
next:
description: URL to use to query for the next page or null if no additional results are available
type:
- string
- 'null'
example: <next page url>
x-omitempty: false
title: Page
SNSettlementResponse:
type: object
properties:
settlement:
$ref: '#/components/schemas/SNSettlement'
required:
- settlement
SNParticipantTier:
type: string
enum:
- Basic
- Advanced
SNParticipantsResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/SNParticipant'
page:
$ref: '#/components/schemas/Page'
required:
- data
- page
SNSettlementSide:
type: object
properties:
authorized:
description: This can be null if authorization is not required or if the caller doesn't have access to this information.
type: boolean
feesFunded:
description: This can be null if the caller doesn't have access to this information. Fees funded status is based on the same fee logic as transfers and is checked independently of any other settlements. It takes into account only the current available balance for the relevant wallet. If the primary amount and fee amount are the of same asset, the primary amount is also taken into account when calculating this.
type: boolean
funded:
description: This can be null if the caller doesn't have access to this information. The funded status does not include fees and is checked independently of any other settlements. It takes into account only the current available balance for the relevant wallet.
type: boolean
gasStationEnabled:
description: Indicates the Gas Station is enabled to cover fees for this participant. This can be null if the caller doesn't have access to this information.
type: boolean
participantId:
type: string
walletAmounts:
type: array
items:
$ref: '#/components/schemas/SNWalletAmount'
required:
- participantId
SNSettlementProposal:
type: object
properties:
acceptorId:
type: string
applyPostLock:
description: 'Conditional. This parameter is only applicable for clients utilizing Atlas settlements integrated with "Anchorage Vesting". When set to true, it enables the automatic creation of post-settlement vesting schedules. Note: Enabling this will place indefinite holds on the acceptor''s destination wallets immediately following a successful settlement'
type: boolean
clientReferenceId:
description: An ID, set by the proposer, visible to both sides, to uniquely identify the purpose of the settlement so that both sides can account for it correctly.
type: string
idempotentId:
type: string
maxLength: 128
proposerId:
type: string
useGasStation:
description: Option to request to use Gas Station to cover fees for proposer.
type: boolean
vaultId:
description: The vault ID of the proposer. It needs to match the vault that the wallets are in.
type: string
walletAmounts:
description: In a proposal, each asset type can appear only once in the wallet amount list.
type: array
items:
$ref: '#/components/schemas/SNWalletAmount'
required:
- proposerId
- acceptorId
- idempotentId
- vaultId
- walletAmounts
SNSettlementState:
type: string
enum:
- ActionNeeded
- CounterpartyActionNeeded
- Executing
- TimedOut
- Rejected
- Executed
- Failed
SNParticipant:
type: object
properties:
isActive:
type: boolean
participantId:
type: string
participantName:
type: string
tier:
$ref: '#/components/schemas/SNParticipantTier'
required:
- participantId
-
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/anchorage/refs/heads/main/openapi/anchorage-atlas-settlement-network-api-openapi.yml