Propose a settlement

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.

[
	{
		"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.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Settlement proposal

string
required
boolean

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

string

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.

string
required
length ≤ 128
string
required
boolean

Option to request to use Gas Station to cover fees for proposer.

string
required

The vault ID of the proposer. It needs to match the vault that the wallets are in.

walletAmounts
array of objects
required

In a proposal, each asset type can appear only once in the wallet amount list.

walletAmounts*
Headers
string
required
^[0-9A-Fa-f]{128,160}$

A hex-encoded Ed25519 signature of timestamp_epoch_seconds + uppercase(http_method) + request_path + request_body.

Construction example:

toHex(
  ed25519Sign(
    signing_key,
    '{}{}{}{}'.format(timestamp_epoch_seconds, toUpper(httpMethod), httpRequestPath, httpBody)
  )
)
int64
required

Current timestamp, represented as unix epoch seconds

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json