curl --request POST \
--url https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"newOwnerUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"autoExecute": true,
"intent": {},
"intentSignature": "<string>"
}
'import requests
url = "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership"
payload = {
"newOwnerUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"autoExecute": True,
"intent": {},
"intentSignature": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
newOwnerUserId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
autoExecute: true,
intent: {},
intentSignature: '<string>'
})
};
fetch('https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'newOwnerUserId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'autoExecute' => true,
'intent' => [
],
'intentSignature' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership"
payload := strings.NewReader("{\n \"newOwnerUserId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"autoExecute\": true,\n \"intent\": {},\n \"intentSignature\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"newOwnerUserId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"autoExecute\": true,\n \"intent\": {},\n \"intentSignature\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"newOwnerUserId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"autoExecute\": true,\n \"intent\": {},\n \"intentSignature\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"projectEnvironmentId": "95b11417-f18f-457f-8804-68e361f9164f",
"members": [
{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountId": "95b11417-f18f-457f-8804-68e361f9164f",
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"role": "cfo",
"email": "<string>",
"customRole": {
"name": "cfo",
"inherits": "cfo"
},
"addedByUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"lastSeenAt": "2023-11-07T05:31:56Z"
}
],
"signers": [
{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountId": "95b11417-f18f-457f-8804-68e361f9164f",
"walletId": "95b11417-f18f-457f-8804-68e361f9164f",
"type": "endUser",
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"shareSetId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"derivedFromUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"apiKeyIdentityRef": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"revokedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z"
}
],
"name": "<string>",
"externalRef": "<string>",
"metadata": {},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"wallets": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"publicKey": "<string>",
"chain": "ETH",
"createdAt": "2023-11-07T05:31:56Z"
}
]
}{
"reason": "APPROVALS_REQUIRED",
"intent": {},
"proposalId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"approvalRequirements": [
{
"action": "addMember",
"requirementId": "<string>",
"required": 123,
"approved": 123,
"satisfied": true,
"unmetMandatoryRoles": [
"<string>"
]
}
],
"message": "This proposal cannot be executed yet: addMember needs 1 more approval (1 of 2)."
}{
"error": "<string>"
}{
"error": "No jwt provided!"
}{
"error": "Access Forbidden",
"code": "sanctions_blocked",
"approvalRequirements": [
{
"action": "addMember",
"requirementId": "<string>",
"required": 123,
"approved": 123,
"satisfied": true,
"unmetMandatoryRoles": [
"<string>"
]
}
]
}{
"error": "Not Found",
"code": "not_found"
}{
"error": "Conflict: invalid state transition"
}{
"error": "Resources already exists for this Object",
"code": "email_cannot_be_null",
"payload": {
"email": "joe@email.com",
"loginProvider": "emailOnly",
"embeddedWalletName": "<string>",
"embeddedSocialSigninProvider": "emailOnly",
"mergeConflicts": {
"fromUser": {
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"projectEnvironmentId": "95b11417-f18f-457f-8804-68e361f9164f",
"verifiedCredentials": [
{
"id": "95b11417-f18f-457f-8804-68e361f9164f-zerodev",
"format": "blockchain",
"signInEnabled": true,
"address": "0xbF394748301603f18d953C90F0b087CBEC0E1834",
"chain": "<string>",
"refId": "95b11417-f18f-457f-8804-68e361f9164f",
"signerRefId": "95b11417-f18f-457f-8804-68e361f9164f",
"email": "jsmith@example.com",
"name_service": {
"avatar": "<string>",
"name": "<string>"
},
"public_identifier": "<string>",
"wallet_name": "<string>",
"wallet_provider": "browserExtension",
"wallet_properties": {
"turnkeySubOrganizationId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyPrivateKeyId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyHDWalletId": "95b11417-f18f-457f-8804-68e361f9164f",
"isAuthenticatorAttached": true,
"turnkeyUserId": "95b11417-f18f-457f-8804-68e361f9164f",
"isSessionKeyCompatible": true,
"version": "V1",
"ecdsaProviderType": "zerodev_signer_to_ecdsa",
"entryPointVersion": "v6",
"kernelVersion": "v2_4"
},
"business_account_properties": {
"businessAccountId": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountCreatedAt": "2023-11-07T05:31:56Z",
"businessAccountSignerId": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountSignerType": "endUser",
"businessAccountMemberRole": "cfo",
"businessAccountName": "<string>",
"businessAccountExternalRef": "<string>"
},
"oauth_provider": "emailOnly",
"oauth_username": "<string>",
"oauth_display_name": "<string>",
"oauth_account_id": "<string>",
"phoneNumber": "9171113333",
"phoneCountryCode": "1",
"isoCountryCode": "US",
"oauth_account_photos": [
"<string>"
],
"oauth_emails": [
"<string>"
],
"oauth_metadata": {},
"previous_users": [
"95b11417-f18f-457f-8804-68e361f9164f"
],
"embedded_wallet_id": "<string>",
"wallet_additional_addresses": [
{
"address": "<string>",
"type": "ordinals",
"publicKey": "<string>",
"network": "<string>"
}
],
"lastSelectedAt": "2023-11-07T05:31:56Z",
"verifiedAt": "2023-11-07T05:31:56Z"
}
],
"lastVerifiedCredentialId": "95b11417-f18f-457f-8804-68e361f9164f-zerodev",
"sessionId": "95b11417-f18f-457f-8804-68e361f9164f",
"alias": "An example name",
"country": "US",
"email": "jsmith@example.com",
"firstName": "An example name",
"jobTitle": "An example name",
"lastName": "An example name",
"phoneNumber": "<string>",
"policiesConsent": true,
"tShirtSize": "An example name",
"team": "An example name",
"username": "An example name",
"firstVisit": "2023-11-07T05:31:56Z",
"lastVisit": "2023-11-07T05:31:56Z",
"newUser": true,
"metadata": {},
"mfaBackupCodeAcknowledgement": "pending",
"btcWallet": "<string>",
"kdaWallet": "<string>",
"ltcWallet": "<string>",
"ckbWallet": "<string>",
"kasWallet": "<string>",
"dogeWallet": "<string>",
"emailNotification": true,
"discordNotification": true,
"newsletterNotification": true,
"lists": [
"<string>"
],
"scope": "superuser marketing operations",
"missingFields": [
{
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"type": "standard",
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"validationType": "text",
"label": "<string>",
"position": 123
}
]
},
"conflicts": [
{
"field": {
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"type": "standard",
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"validationType": "text",
"label": "<string>",
"position": 123
},
"fromUser": {
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"value": "An example name"
},
"currentUser": {
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"value": "An example name"
}
}
]
},
"intent": {},
"additionalMessages": [
"<string>"
]
},
"retryAfterSeconds": 600
}{
"error": "Internal Server Error"
}SDK — transfer ownership of a business account
Owner-only. Promotes the target user (must already be a member) to owner and demotes the current owner to admin, atomically. The signed RBAC doc always has exactly one owner.
curl --request POST \
--url https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"newOwnerUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"autoExecute": true,
"intent": {},
"intentSignature": "<string>"
}
'import requests
url = "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership"
payload = {
"newOwnerUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"autoExecute": True,
"intent": {},
"intentSignature": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
newOwnerUserId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
autoExecute: true,
intent: {},
intentSignature: '<string>'
})
};
fetch('https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'newOwnerUserId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'autoExecute' => true,
'intent' => [
],
'intentSignature' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership"
payload := strings.NewReader("{\n \"newOwnerUserId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"autoExecute\": true,\n \"intent\": {},\n \"intentSignature\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"newOwnerUserId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"autoExecute\": true,\n \"intent\": {},\n \"intentSignature\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.dynamicauth.com/api/v0/sdk/{environmentId}/businessAccounts/{businessAccountId}/transferOwnership")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"newOwnerUserId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"autoExecute\": true,\n \"intent\": {},\n \"intentSignature\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"projectEnvironmentId": "95b11417-f18f-457f-8804-68e361f9164f",
"members": [
{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountId": "95b11417-f18f-457f-8804-68e361f9164f",
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"role": "cfo",
"email": "<string>",
"customRole": {
"name": "cfo",
"inherits": "cfo"
},
"addedByUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"lastSeenAt": "2023-11-07T05:31:56Z"
}
],
"signers": [
{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountId": "95b11417-f18f-457f-8804-68e361f9164f",
"walletId": "95b11417-f18f-457f-8804-68e361f9164f",
"type": "endUser",
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"shareSetId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"derivedFromUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"apiKeyIdentityRef": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"revokedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z"
}
],
"name": "<string>",
"externalRef": "<string>",
"metadata": {},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"wallets": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"publicKey": "<string>",
"chain": "ETH",
"createdAt": "2023-11-07T05:31:56Z"
}
]
}{
"reason": "APPROVALS_REQUIRED",
"intent": {},
"proposalId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"approvalRequirements": [
{
"action": "addMember",
"requirementId": "<string>",
"required": 123,
"approved": 123,
"satisfied": true,
"unmetMandatoryRoles": [
"<string>"
]
}
],
"message": "This proposal cannot be executed yet: addMember needs 1 more approval (1 of 2)."
}{
"error": "<string>"
}{
"error": "No jwt provided!"
}{
"error": "Access Forbidden",
"code": "sanctions_blocked",
"approvalRequirements": [
{
"action": "addMember",
"requirementId": "<string>",
"required": 123,
"approved": 123,
"satisfied": true,
"unmetMandatoryRoles": [
"<string>"
]
}
]
}{
"error": "Not Found",
"code": "not_found"
}{
"error": "Conflict: invalid state transition"
}{
"error": "Resources already exists for this Object",
"code": "email_cannot_be_null",
"payload": {
"email": "joe@email.com",
"loginProvider": "emailOnly",
"embeddedWalletName": "<string>",
"embeddedSocialSigninProvider": "emailOnly",
"mergeConflicts": {
"fromUser": {
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"projectEnvironmentId": "95b11417-f18f-457f-8804-68e361f9164f",
"verifiedCredentials": [
{
"id": "95b11417-f18f-457f-8804-68e361f9164f-zerodev",
"format": "blockchain",
"signInEnabled": true,
"address": "0xbF394748301603f18d953C90F0b087CBEC0E1834",
"chain": "<string>",
"refId": "95b11417-f18f-457f-8804-68e361f9164f",
"signerRefId": "95b11417-f18f-457f-8804-68e361f9164f",
"email": "jsmith@example.com",
"name_service": {
"avatar": "<string>",
"name": "<string>"
},
"public_identifier": "<string>",
"wallet_name": "<string>",
"wallet_provider": "browserExtension",
"wallet_properties": {
"turnkeySubOrganizationId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyPrivateKeyId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyHDWalletId": "95b11417-f18f-457f-8804-68e361f9164f",
"isAuthenticatorAttached": true,
"turnkeyUserId": "95b11417-f18f-457f-8804-68e361f9164f",
"isSessionKeyCompatible": true,
"version": "V1",
"ecdsaProviderType": "zerodev_signer_to_ecdsa",
"entryPointVersion": "v6",
"kernelVersion": "v2_4"
},
"business_account_properties": {
"businessAccountId": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountCreatedAt": "2023-11-07T05:31:56Z",
"businessAccountSignerId": "95b11417-f18f-457f-8804-68e361f9164f",
"businessAccountSignerType": "endUser",
"businessAccountMemberRole": "cfo",
"businessAccountName": "<string>",
"businessAccountExternalRef": "<string>"
},
"oauth_provider": "emailOnly",
"oauth_username": "<string>",
"oauth_display_name": "<string>",
"oauth_account_id": "<string>",
"phoneNumber": "9171113333",
"phoneCountryCode": "1",
"isoCountryCode": "US",
"oauth_account_photos": [
"<string>"
],
"oauth_emails": [
"<string>"
],
"oauth_metadata": {},
"previous_users": [
"95b11417-f18f-457f-8804-68e361f9164f"
],
"embedded_wallet_id": "<string>",
"wallet_additional_addresses": [
{
"address": "<string>",
"type": "ordinals",
"publicKey": "<string>",
"network": "<string>"
}
],
"lastSelectedAt": "2023-11-07T05:31:56Z",
"verifiedAt": "2023-11-07T05:31:56Z"
}
],
"lastVerifiedCredentialId": "95b11417-f18f-457f-8804-68e361f9164f-zerodev",
"sessionId": "95b11417-f18f-457f-8804-68e361f9164f",
"alias": "An example name",
"country": "US",
"email": "jsmith@example.com",
"firstName": "An example name",
"jobTitle": "An example name",
"lastName": "An example name",
"phoneNumber": "<string>",
"policiesConsent": true,
"tShirtSize": "An example name",
"team": "An example name",
"username": "An example name",
"firstVisit": "2023-11-07T05:31:56Z",
"lastVisit": "2023-11-07T05:31:56Z",
"newUser": true,
"metadata": {},
"mfaBackupCodeAcknowledgement": "pending",
"btcWallet": "<string>",
"kdaWallet": "<string>",
"ltcWallet": "<string>",
"ckbWallet": "<string>",
"kasWallet": "<string>",
"dogeWallet": "<string>",
"emailNotification": true,
"discordNotification": true,
"newsletterNotification": true,
"lists": [
"<string>"
],
"scope": "superuser marketing operations",
"missingFields": [
{
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"type": "standard",
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"validationType": "text",
"label": "<string>",
"position": 123
}
]
},
"conflicts": [
{
"field": {
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"type": "standard",
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"validationType": "text",
"label": "<string>",
"position": 123
},
"fromUser": {
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"value": "An example name"
},
"currentUser": {
"userId": "95b11417-f18f-457f-8804-68e361f9164f",
"value": "An example name"
}
}
]
},
"intent": {},
"additionalMessages": [
"<string>"
]
},
"retryAfterSeconds": 600
}{
"error": "Internal Server Error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID of the environment
36^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"95b11417-f18f-457f-8804-68e361f9164f"
ID of the business account
36^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"95b11417-f18f-457f-8804-68e361f9164f"
Body
SDK transferOwnership body. Promotes newOwnerUserId (must already be a member) to owner and demotes the current owner to admin, atomically.
Whether the change applies the moment its quorum is met, or waits for an explicit execute. Read only on the first call, where it is stamped into the intent you sign; after that the signed intent is the authority. Defaults to true, because a change holding all its consent while waiting for a button press tends to be forgotten, and the deadline covers execution too.
The initiator's proposal, signed with their session key. Built by the API, not the client — sign these exact bytes verbatim, because re-serializing can change them and invalidate the signature.
autoExecute is inside the signed bytes, so an approver consents to it and nothing can flip it afterwards.
Hex-encoded ECDSA P-256 signature over the canonicalized payload, produced by the signer's session key — which never leaves their device, so consent cannot be given on their behalf. Exactly 128 hex characters. WebCrypto emits the raw r‖s form with both halves padded to 32 bytes, so unlike DER the length never varies. Constrained here so a malformed value is a 400 at the edge rather than an enclave round trip that returns INTENT_SIGNATURE_INVALID, and so an unbounded string cannot be persisted against a proposal.
^[0-9a-fA-F]{128}$Response
Ownership transferred; updated business account returned
SDK-side business account response with embedded members, signers, and wallets. Origin 2 callers (low member count) get everything in one fetch; if a business account ever needs pagination we add a separate paginated list endpoint without changing this shape.
36^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"95b11417-f18f-457f-8804-68e361f9164f"
36^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"95b11417-f18f-457f-8804-68e361f9164f"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
255Developer-supplied stable ID inside the env
255Wallets bound to this business account via Wallets.business_account_id. Superset of signers[].walletId — a wallet exists before any signer row is minted on it (staged-then-resolved lifecycle).
Show child attributes
Show child attributes
Was this page helpful?