Transfer Owners

This endpoint initiates the process of transferring both the holder and beneficiary roles associated with a document managed under a Title Escrow smart contract. The operation constructs an unsigned blockchain transaction that updates ownership and prepares it for user authentication and signing.

The workflow begins by extracting key metadata from the submitted document file. The document embeds a target hash that uniquely identifies the token on-chain. Using this identifier along with the provided registry address, the system retrieves the corresponding Title Escrow contract instance and determines its current state.

The caller's wallet information is loaded using the credentials included in the request header. This wallet address is used to validate that the caller is the current beneficiary of the Title Escrow contract. The operation cannot proceed if the caller does not meet the ownership criteria.

Additional validations ensure the beneficiary nominee address is not equal to the current beneficiary and that there is no existing nominee already set on the contract. If either condition is violated, the transfer request is rejected.

The remarks provided in the request are transformed into a structured and encoded format which is stored within the transaction payload. These remarks may provide contextual or referential metadata for the new ownership arrangement.

NAfter encoding, the system estimates the required gas for successful execution and constructs an unsigned transaction object. A transaction hash is produced from this unsigned transaction.

This transaction hash is used to create a signing challenge, and all contextual data—including the challenge, unsigned transaction, token information, ownership details, and associated metadata—is saved into a secure server-managed session.

The endpoint returns a redirect URL that leads to an external signing interface. The user must open this URL to authenticate and complete the signing operation needed to finalize the ownership transfer on-chain.

File Upload Format (Base64 Data URI)

For endpoints that accept file inputs, files must be submitted as a Base64-encoded Data URI string in the document field.

Format
data:<mimeType>;name=<filename>;base64,<base64EncodedContent>

Example
json
{ "document": "data:application/octet-stream;name=BL-0xd7.tt;base64,ewogICJAY29udGV4dCI6IFsKICAgICJodHRwcz..." }

This API returns a URL with sessionId.
Use GET /auth/session-response?sessionId=<sessionId> to retrieve the session result.

Body Params
string
required

Identifier for the user's wallet that will authorize and sign the ownership transfer transaction.

string

The blockchain address that will become the new holder of the document after the transfer. Only one of holderAddress or holderDomain should be provided.

string

The domain that will become the new holder of the document after the transfer. Only one of holderAddress or holderDomain should be provided.

string

The blockchain address proposed as the new beneficiary for the document. Only one of beneficiaryNomineeAddress or beneficiaryNomineeDomain should be provided.

string

The domain proposed as the new beneficiary for the document. Only one of beneficiaryNomineeAddress or beneficiaryNomineeDomain should be provided.

string

Optional text remarks that will be encoded and embedded into the ownership transfer transaction.

file
required

Signed document file containing the metadata required to identify the associated token.

Headers
string

Unique key to ensure idempotency for API requests.

string

Unique external ID for tracking purposes, can be used for debugging and analytics.

Responses

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