supanovasupanovaDOCS
Open Launchpad
Launchpad documentation
wallet

Create an idempotent wallet-authorized transfer intent.

POST /api/v1/wallet/transfers/prepare. Create an idempotent wallet-authorized transfer intent.

Request

POST /api/v1/wallet/transfers/prepare

Authentication is required. Supported credentials: a signed-in customer session token in Authorization: Bearer …. This route does not accept customer API keys.

Parameters

NameInTypeRequiredConstraintsDescription
Idempotency-KeyheaderstringYesmin length: 8; max length: 256; pattern: ^[A-Za-z0-9._:-]+$—
X-Service-Act-AsheaderstringNomin length: 3; max length: 512Service-principal path only (local and devnet stages; refused by configuration on mainnet). With an OAuth client-credentials bearer token from the validator, names the allow-listed Party the client acts as. Missing: 400 SERVICE_ACT_AS_REQUIRED; not allow-listed: 403 SERVICE_PARTY_NOT_ALLOWED. Ignored for customer session tokens.
X-Request-IdheaderstringNomin length: 8; max length: 128; pattern: ^[A-Za-z0-9._:-]+$Optional client correlation identifier. The server always generates a separate authoritative request ID and retains a valid supplied value only as secondary audit correlation metadata.

Request body

A body is required.

Content type: application/json

Type: object.

FieldTypeRequiredConstraintsDescription
amountstringYespattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$—
instrumentIdobject · Schema 1Yes——
memostringNomin length: 1; max length: 280—
recipientPartyIdstringYesmin length: 3; max length: 512Opaque, case-sensitive Canton Party ID containing 3-512 Unicode scalar values with no normalization, edge whitespace, or C0/C1 control characters.
walletConnectionIdstringYesformat: uuid; pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$—

Additional fields are not allowed.

cURL

Create request.json using the request-body schema. The example sends the file bytes unchanged.

bash
curl --fail-with-body --silent --show-error \
  --request POST \
  --url "https://launch-api.supanova.app/api/v1/wallet/transfers/prepare" \
  --header "Authorization: Bearer $SUPANOVA_SESSION_TOKEN" \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --header "Content-Type: application/json" \
  --data-binary @request.json

Responses

201

A wallet-neutral action and operation.

HeaderTypeDescription
X-Request-IdstringServer-generated request correlation identifier to retain for support and reconciliation.

Content type: application/json

Type: object.

FieldTypeRequiredConstraintsDescription
execution"simulated"Yes——
feeobject · Schema 2Yes——
feeLineItemsarray of object · Schema 3Yes——
operationobject · Schema 4Yes——
walletActionobject · Schema 5Yes——

Additional fields are not allowed.

400

The request is malformed or failed validation. Codes: VALIDATION_FAILED, IDEMPOTENCY_KEY_REQUIRED, AMBIGUOUS_CREDENTIALS, SERVICE_ACT_AS_REQUIRED.

HeaderTypeDescription
X-Request-IdstringServer-generated request correlation identifier to retain for support and reconciliation.

Content type: application/json

Standard envelope: error.code, error.message, optional error.details, and requestId. See error handling and the full code registry.

401

Credentials are missing, malformed, expired or revoked. Codes: AUTHENTICATION_REQUIRED, INVALID_AUTHORIZATION_HEADER, INVALID_ACCESS_TOKEN, SESSION_REVOKED.

HeaderTypeDescription
X-Request-IdstringServer-generated request correlation identifier to retain for support and reconciliation.

Content type: application/json

Standard envelope: error.code, error.message, optional error.details, and requestId. See error handling and the full code registry.

403

The credential may not call this route. Codes: ACCOUNT_RESTRICTED, ANONYMOUS_ACCOUNT_NOT_ALLOWED, API_KEY_ROUTE_NOT_ALLOWED, SERVICE_PARTY_NOT_ALLOWED, SERVICE_PRINCIPAL_NOT_ALLOWED, SIGNUP_NOT_INVITED.

HeaderTypeDescription
X-Request-IdstringServer-generated request correlation identifier to retain for support and reconciliation.

Content type: application/json

Standard envelope: error.code, error.message, optional error.details, and requestId. See error handling and the full code registry.

409

The request conflicts with current state, or the Idempotency-Key was reused with a different request (IDEMPOTENCY_KEY_CONFLICT; the former IDEMPOTENCY_CONFLICT is a deprecated alias, no longer returned, that clients handle the same way for one release). Codes: IDEMPOTENCY_KEY_CONFLICT, IDEMPOTENCY_CONFLICT.

HeaderTypeDescription
X-Request-IdstringServer-generated request correlation identifier to retain for support and reconciliation.

Content type: application/json

Standard envelope: error.code, error.message, optional error.details, and requestId. See error handling and the full code registry.

413

The request body exceeds the size limit.

HeaderTypeDescription
X-Request-IdstringServer-generated request correlation identifier to retain for support and reconciliation.

Content type: application/json

Standard envelope: error.code, error.message, optional error.details, and requestId. See error handling and the full code registry.

428

The signed-in account must accept the current product terms first. Codes: PRODUCT_LEGAL_ACCEPTANCE_REQUIRED.

HeaderTypeDescription
X-Request-IdstringServer-generated request correlation identifier to retain for support and reconciliation.

Content type: application/json

Standard envelope: error.code, error.message, optional error.details, and requestId. See error handling and the full code registry.

429

The caller exceeded an IP or principal request budget.

HeaderTypeDescription
Retry-AfterintegerWhole seconds to wait before retrying a rate-limited request.
X-Request-IdstringServer-generated request correlation identifier to retain for support and reconciliation.

Content type: application/json

Standard envelope: error.code, error.message, optional error.details, and requestId. See error handling and the full code registry.

503

A dependency is unavailable or the feature is not enabled on this deployment. Codes: AUTHENTICATION_UNAVAILABLE, AUTHORIZATION_UNAVAILABLE.

HeaderTypeDescription
X-Request-IdstringServer-generated request correlation identifier to retain for support and reconciliation.

Content type: application/json

Standard envelope: error.code, error.message, optional error.details, and requestId. See error handling and the full code registry.

default

Machine-readable API error. The HTTP status identifies the error class.

HeaderTypeDescription
X-Request-IdstringServer-generated request correlation identifier to retain for support and reconciliation.

Content type: application/json

Standard envelope: error.code, error.message, optional error.details, and requestId. See error handling and the full code registry.

Nested schemas

Field links above lead to the complete nested object, array, and variant definitions below. Required fields are scoped to their containing object.

Schema 1

Request body.instrumentId

Type: object.

FieldTypeRequiredConstraintsDescription
adminstringYesmin length: 1; max length: 512—
idstringYesmin length: 1; max length: 512—

Additional fields are not allowed.

Schema 2

Response 201.fee

Type: object.

FieldTypeRequiredConstraintsDescription
amountstringYespattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$—
assetobject · Schema 1Yes——
policy"cip-0078-no-cc-transfer-fee"Yes——

Additional fields are not allowed.

Schema 3

Response 201.feeLineItems

Type: array of object.

Array items: object · Schema 6.

Schema 4

Response 201.operation

Type: object.

FieldTypeRequiredConstraintsDescription
expiresAtstringYes——
idstringYesformat: uuid; pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$—
statusstringYesallowed: "received", "validating", "awaiting_signature", "ready", "submitted", "confirmed", "failed", "rejected", "expired", "cancelled"—

Additional fields are not allowed.

Schema 5

Response 201.walletAction

Type: object.

FieldTypeRequiredConstraintsDescription
expiresAtstringYes——
intentobject · Schema 7Yes——
kind"canton.prepare-execute"Yes——
method"prepareExecute"Yes——
networkIdstringYespattern: ^canton:[-_a-zA-Z0-9]{1,32}$—
operationIdstringYesformat: uuid; pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$—
readinessstringYesallowed: "daml-command-builder-not-configured", "ready"—
requestone or more variants · Schema 8Yes——
standard"CIP-0103"Yes——

Additional fields are not allowed.

Schema 6

Response 201.feeLineItems item

Type: object.

FieldTypeRequiredConstraintsDescription
amountstringYespattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$—
instrumentobject · Schema 1Yes——
kind"transfer"Yes——
labelstringYes——

Additional fields are not allowed.

Schema 7

Response 201.walletAction.intent

Type: object.

FieldTypeRequiredConstraintsDescription
amountstringYespattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$—
feeAmountCcstringYespattern: ^(?:0|[1-9]\d{0,27})(?:\.\d{1,10})?$—
instrumentIdobject · Schema 1Yes——
memostringNo——
recipientPartyIdstringYes——
senderPartyIdstringYes——
type"transfer.execute"Yes——

Additional fields are not allowed.

Schema 8

Response 201.walletAction.request

Type: one or more variants.

At least one of these variants must match:

  • Variant 1: object · Schema 9.
  • Variant 2: null.

Schema 9

Response 201.walletAction.request variant 1

Type: object.

FieldTypeRequiredConstraintsDescription
kindstringYesallowed: "application-submission", "interactive-submission", "wallet-submission"—
commandIdstringYesmin length: 1; max length: 255—
actAsarray of string · Schema 10Yesmin items: 1; max items: 8—
synchronizerIdstringYesmin length: 1; max length: 512—
hashingSchemeVersionstringYesmin length: 1; max length: 64—
signatureFormat"SIGNATURE_FORMAT_RAW"Yes——
signingAlgorithmSpec"SIGNING_ALGORITHM_SPEC_ED25519"Yes——
signedByone or more variants · Schema 11Yes——
preparedTransactionone or more variants · Schema 12Yes——
preparedTransactionHashone or more variants · Schema 13Yes——

Additional fields are not allowed.

Schema 10

Response 201.walletAction.request variant 1.actAs

Type: array of string.

min items: 1; max items: 8

Array items: string. min length: 3; max length: 512

Schema 11

Response 201.walletAction.request variant 1.signedBy

Type: one or more variants.

At least one of these variants must match:

  • Variant 1: string. min length: 4; max length: 160
  • Variant 2: null.

Schema 12

Response 201.walletAction.request variant 1.preparedTransaction

Type: one or more variants.

At least one of these variants must match:

  • Variant 1: string. max length: 4194304
  • Variant 2: null.

Schema 13

Response 201.walletAction.request variant 1.preparedTransactionHash

Type: one or more variants.

At least one of these variants must match:

  • Variant 1: string. max length: 512
  • Variant 2: null.

Source contract

This page is generated from the checked-in customer OpenAPI snapshot. Download JSON, download YAML, or compare the live API reference. Snapshot provenance records the retrieval date and checksum.

Generated from the public API contractDeveloper settings