curl --request POST \
--url https://app.dynamicauth.com/api/v0/server/{environmentId}/waas/{walletId}/signMessage \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>",
"isFormatted": true,
"roomId": "<string>",
"context": {
"evmUserOperation": {
"chainId": 123,
"entryPoint": "<string>",
"operation": {
"authorization": {
"address": "<string>",
"chainId": 123,
"nonce": 123,
"r": "<string>",
"s": "<string>",
"v": "<string>",
"yParity": 123
},
"callData": "<string>",
"callGasLimit": "<string>",
"factory": "<string>",
"factoryData": "<string>",
"maxFeePerGas": "<string>",
"maxPriorityFeePerGas": "<string>",
"nonce": "<string>",
"paymaster": "<string>",
"paymasterData": "<string>",
"paymasterPostOpGasLimit": "<string>",
"paymasterVerificationGasLimit": "<string>",
"preVerificationGas": "<string>",
"sender": "<string>",
"signature": "<string>",
"verificationGasLimit": "<string>"
}
},
"evmMessage": "<string>",
"svmMessage": "<string>",
"suiMessage": "<string>",
"stellarMessage": "<string>",
"aleoMessage": "<string>",
"domain": "https://app.xyz.com"
},
"bitcoinConfig": {
"addressType": "<string>",
"network": "<string>"
},
"shareSetId": "95b11417-f18f-457f-8804-68e361f9164f"
}
'import requests
url = "https://app.dynamicauth.com/api/v0/server/{environmentId}/waas/{walletId}/signMessage"
payload = {
"message": "<string>",
"isFormatted": True,
"roomId": "<string>",
"context": {
"evmUserOperation": {
"chainId": 123,
"entryPoint": "<string>",
"operation": {
"authorization": {
"address": "<string>",
"chainId": 123,
"nonce": 123,
"r": "<string>",
"s": "<string>",
"v": "<string>",
"yParity": 123
},
"callData": "<string>",
"callGasLimit": "<string>",
"factory": "<string>",
"factoryData": "<string>",
"maxFeePerGas": "<string>",
"maxPriorityFeePerGas": "<string>",
"nonce": "<string>",
"paymaster": "<string>",
"paymasterData": "<string>",
"paymasterPostOpGasLimit": "<string>",
"paymasterVerificationGasLimit": "<string>",
"preVerificationGas": "<string>",
"sender": "<string>",
"signature": "<string>",
"verificationGasLimit": "<string>"
}
},
"evmMessage": "<string>",
"svmMessage": "<string>",
"suiMessage": "<string>",
"stellarMessage": "<string>",
"aleoMessage": "<string>",
"domain": "https://app.xyz.com"
},
"bitcoinConfig": {
"addressType": "<string>",
"network": "<string>"
},
"shareSetId": "95b11417-f18f-457f-8804-68e361f9164f"
}
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({
message: '<string>',
isFormatted: true,
roomId: '<string>',
context: {
evmUserOperation: {
chainId: 123,
entryPoint: '<string>',
operation: {
authorization: {
address: '<string>',
chainId: 123,
nonce: 123,
r: '<string>',
s: '<string>',
v: '<string>',
yParity: 123
},
callData: '<string>',
callGasLimit: '<string>',
factory: '<string>',
factoryData: '<string>',
maxFeePerGas: '<string>',
maxPriorityFeePerGas: '<string>',
nonce: '<string>',
paymaster: '<string>',
paymasterData: '<string>',
paymasterPostOpGasLimit: '<string>',
paymasterVerificationGasLimit: '<string>',
preVerificationGas: '<string>',
sender: '<string>',
signature: '<string>',
verificationGasLimit: '<string>'
}
},
evmMessage: '<string>',
svmMessage: '<string>',
suiMessage: '<string>',
stellarMessage: '<string>',
aleoMessage: '<string>',
domain: 'https://app.xyz.com'
},
bitcoinConfig: {addressType: '<string>', network: '<string>'},
shareSetId: '95b11417-f18f-457f-8804-68e361f9164f'
})
};
fetch('https://app.dynamicauth.com/api/v0/server/{environmentId}/waas/{walletId}/signMessage', 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/server/{environmentId}/waas/{walletId}/signMessage",
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([
'message' => '<string>',
'isFormatted' => true,
'roomId' => '<string>',
'context' => [
'evmUserOperation' => [
'chainId' => 123,
'entryPoint' => '<string>',
'operation' => [
'authorization' => [
'address' => '<string>',
'chainId' => 123,
'nonce' => 123,
'r' => '<string>',
's' => '<string>',
'v' => '<string>',
'yParity' => 123
],
'callData' => '<string>',
'callGasLimit' => '<string>',
'factory' => '<string>',
'factoryData' => '<string>',
'maxFeePerGas' => '<string>',
'maxPriorityFeePerGas' => '<string>',
'nonce' => '<string>',
'paymaster' => '<string>',
'paymasterData' => '<string>',
'paymasterPostOpGasLimit' => '<string>',
'paymasterVerificationGasLimit' => '<string>',
'preVerificationGas' => '<string>',
'sender' => '<string>',
'signature' => '<string>',
'verificationGasLimit' => '<string>'
]
],
'evmMessage' => '<string>',
'svmMessage' => '<string>',
'suiMessage' => '<string>',
'stellarMessage' => '<string>',
'aleoMessage' => '<string>',
'domain' => 'https://app.xyz.com'
],
'bitcoinConfig' => [
'addressType' => '<string>',
'network' => '<string>'
],
'shareSetId' => '95b11417-f18f-457f-8804-68e361f9164f'
]),
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/server/{environmentId}/waas/{walletId}/signMessage"
payload := strings.NewReader("{\n \"message\": \"<string>\",\n \"isFormatted\": true,\n \"roomId\": \"<string>\",\n \"context\": {\n \"evmUserOperation\": {\n \"chainId\": 123,\n \"entryPoint\": \"<string>\",\n \"operation\": {\n \"authorization\": {\n \"address\": \"<string>\",\n \"chainId\": 123,\n \"nonce\": 123,\n \"r\": \"<string>\",\n \"s\": \"<string>\",\n \"v\": \"<string>\",\n \"yParity\": 123\n },\n \"callData\": \"<string>\",\n \"callGasLimit\": \"<string>\",\n \"factory\": \"<string>\",\n \"factoryData\": \"<string>\",\n \"maxFeePerGas\": \"<string>\",\n \"maxPriorityFeePerGas\": \"<string>\",\n \"nonce\": \"<string>\",\n \"paymaster\": \"<string>\",\n \"paymasterData\": \"<string>\",\n \"paymasterPostOpGasLimit\": \"<string>\",\n \"paymasterVerificationGasLimit\": \"<string>\",\n \"preVerificationGas\": \"<string>\",\n \"sender\": \"<string>\",\n \"signature\": \"<string>\",\n \"verificationGasLimit\": \"<string>\"\n }\n },\n \"evmMessage\": \"<string>\",\n \"svmMessage\": \"<string>\",\n \"suiMessage\": \"<string>\",\n \"stellarMessage\": \"<string>\",\n \"aleoMessage\": \"<string>\",\n \"domain\": \"https://app.xyz.com\"\n },\n \"bitcoinConfig\": {\n \"addressType\": \"<string>\",\n \"network\": \"<string>\"\n },\n \"shareSetId\": \"95b11417-f18f-457f-8804-68e361f9164f\"\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/server/{environmentId}/waas/{walletId}/signMessage")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"<string>\",\n \"isFormatted\": true,\n \"roomId\": \"<string>\",\n \"context\": {\n \"evmUserOperation\": {\n \"chainId\": 123,\n \"entryPoint\": \"<string>\",\n \"operation\": {\n \"authorization\": {\n \"address\": \"<string>\",\n \"chainId\": 123,\n \"nonce\": 123,\n \"r\": \"<string>\",\n \"s\": \"<string>\",\n \"v\": \"<string>\",\n \"yParity\": 123\n },\n \"callData\": \"<string>\",\n \"callGasLimit\": \"<string>\",\n \"factory\": \"<string>\",\n \"factoryData\": \"<string>\",\n \"maxFeePerGas\": \"<string>\",\n \"maxPriorityFeePerGas\": \"<string>\",\n \"nonce\": \"<string>\",\n \"paymaster\": \"<string>\",\n \"paymasterData\": \"<string>\",\n \"paymasterPostOpGasLimit\": \"<string>\",\n \"paymasterVerificationGasLimit\": \"<string>\",\n \"preVerificationGas\": \"<string>\",\n \"sender\": \"<string>\",\n \"signature\": \"<string>\",\n \"verificationGasLimit\": \"<string>\"\n }\n },\n \"evmMessage\": \"<string>\",\n \"svmMessage\": \"<string>\",\n \"suiMessage\": \"<string>\",\n \"stellarMessage\": \"<string>\",\n \"aleoMessage\": \"<string>\",\n \"domain\": \"https://app.xyz.com\"\n },\n \"bitcoinConfig\": {\n \"addressType\": \"<string>\",\n \"network\": \"<string>\"\n },\n \"shareSetId\": \"95b11417-f18f-457f-8804-68e361f9164f\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.dynamicauth.com/api/v0/server/{environmentId}/waas/{walletId}/signMessage")
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 \"message\": \"<string>\",\n \"isFormatted\": true,\n \"roomId\": \"<string>\",\n \"context\": {\n \"evmUserOperation\": {\n \"chainId\": 123,\n \"entryPoint\": \"<string>\",\n \"operation\": {\n \"authorization\": {\n \"address\": \"<string>\",\n \"chainId\": 123,\n \"nonce\": 123,\n \"r\": \"<string>\",\n \"s\": \"<string>\",\n \"v\": \"<string>\",\n \"yParity\": 123\n },\n \"callData\": \"<string>\",\n \"callGasLimit\": \"<string>\",\n \"factory\": \"<string>\",\n \"factoryData\": \"<string>\",\n \"maxFeePerGas\": \"<string>\",\n \"maxPriorityFeePerGas\": \"<string>\",\n \"nonce\": \"<string>\",\n \"paymaster\": \"<string>\",\n \"paymasterData\": \"<string>\",\n \"paymasterPostOpGasLimit\": \"<string>\",\n \"paymasterVerificationGasLimit\": \"<string>\",\n \"preVerificationGas\": \"<string>\",\n \"sender\": \"<string>\",\n \"signature\": \"<string>\",\n \"verificationGasLimit\": \"<string>\"\n }\n },\n \"evmMessage\": \"<string>\",\n \"svmMessage\": \"<string>\",\n \"suiMessage\": \"<string>\",\n \"stellarMessage\": \"<string>\",\n \"aleoMessage\": \"<string>\",\n \"domain\": \"https://app.xyz.com\"\n },\n \"bitcoinConfig\": {\n \"addressType\": \"<string>\",\n \"network\": \"<string>\"\n },\n \"shareSetId\": \"95b11417-f18f-457f-8804-68e361f9164f\"\n}"
response = http.request(request)
puts response.read_body{
"roomId": "<string>",
"serverKeygenIds": [
"<string>"
],
"newServerKeygenIds": [
"<string>"
],
"walletId": "95b11417-f18f-457f-8804-68e361f9164f"
}{
"error": "<string>",
"code": "exchange_currency_unsupported"
}{
"error": "No jwt provided!"
}{
"error": "Access Forbidden",
"code": "sanctions_blocked"
}{
"error": "Not Found",
"code": "not_found"
}{
"error": "Internal Server Error"
}Server — sign a message with a WAAS wallet
Signs a message using the specified WAAS wallet through an MPC ceremony.
curl --request POST \
--url https://app.dynamicauth.com/api/v0/server/{environmentId}/waas/{walletId}/signMessage \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>",
"isFormatted": true,
"roomId": "<string>",
"context": {
"evmUserOperation": {
"chainId": 123,
"entryPoint": "<string>",
"operation": {
"authorization": {
"address": "<string>",
"chainId": 123,
"nonce": 123,
"r": "<string>",
"s": "<string>",
"v": "<string>",
"yParity": 123
},
"callData": "<string>",
"callGasLimit": "<string>",
"factory": "<string>",
"factoryData": "<string>",
"maxFeePerGas": "<string>",
"maxPriorityFeePerGas": "<string>",
"nonce": "<string>",
"paymaster": "<string>",
"paymasterData": "<string>",
"paymasterPostOpGasLimit": "<string>",
"paymasterVerificationGasLimit": "<string>",
"preVerificationGas": "<string>",
"sender": "<string>",
"signature": "<string>",
"verificationGasLimit": "<string>"
}
},
"evmMessage": "<string>",
"svmMessage": "<string>",
"suiMessage": "<string>",
"stellarMessage": "<string>",
"aleoMessage": "<string>",
"domain": "https://app.xyz.com"
},
"bitcoinConfig": {
"addressType": "<string>",
"network": "<string>"
},
"shareSetId": "95b11417-f18f-457f-8804-68e361f9164f"
}
'import requests
url = "https://app.dynamicauth.com/api/v0/server/{environmentId}/waas/{walletId}/signMessage"
payload = {
"message": "<string>",
"isFormatted": True,
"roomId": "<string>",
"context": {
"evmUserOperation": {
"chainId": 123,
"entryPoint": "<string>",
"operation": {
"authorization": {
"address": "<string>",
"chainId": 123,
"nonce": 123,
"r": "<string>",
"s": "<string>",
"v": "<string>",
"yParity": 123
},
"callData": "<string>",
"callGasLimit": "<string>",
"factory": "<string>",
"factoryData": "<string>",
"maxFeePerGas": "<string>",
"maxPriorityFeePerGas": "<string>",
"nonce": "<string>",
"paymaster": "<string>",
"paymasterData": "<string>",
"paymasterPostOpGasLimit": "<string>",
"paymasterVerificationGasLimit": "<string>",
"preVerificationGas": "<string>",
"sender": "<string>",
"signature": "<string>",
"verificationGasLimit": "<string>"
}
},
"evmMessage": "<string>",
"svmMessage": "<string>",
"suiMessage": "<string>",
"stellarMessage": "<string>",
"aleoMessage": "<string>",
"domain": "https://app.xyz.com"
},
"bitcoinConfig": {
"addressType": "<string>",
"network": "<string>"
},
"shareSetId": "95b11417-f18f-457f-8804-68e361f9164f"
}
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({
message: '<string>',
isFormatted: true,
roomId: '<string>',
context: {
evmUserOperation: {
chainId: 123,
entryPoint: '<string>',
operation: {
authorization: {
address: '<string>',
chainId: 123,
nonce: 123,
r: '<string>',
s: '<string>',
v: '<string>',
yParity: 123
},
callData: '<string>',
callGasLimit: '<string>',
factory: '<string>',
factoryData: '<string>',
maxFeePerGas: '<string>',
maxPriorityFeePerGas: '<string>',
nonce: '<string>',
paymaster: '<string>',
paymasterData: '<string>',
paymasterPostOpGasLimit: '<string>',
paymasterVerificationGasLimit: '<string>',
preVerificationGas: '<string>',
sender: '<string>',
signature: '<string>',
verificationGasLimit: '<string>'
}
},
evmMessage: '<string>',
svmMessage: '<string>',
suiMessage: '<string>',
stellarMessage: '<string>',
aleoMessage: '<string>',
domain: 'https://app.xyz.com'
},
bitcoinConfig: {addressType: '<string>', network: '<string>'},
shareSetId: '95b11417-f18f-457f-8804-68e361f9164f'
})
};
fetch('https://app.dynamicauth.com/api/v0/server/{environmentId}/waas/{walletId}/signMessage', 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/server/{environmentId}/waas/{walletId}/signMessage",
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([
'message' => '<string>',
'isFormatted' => true,
'roomId' => '<string>',
'context' => [
'evmUserOperation' => [
'chainId' => 123,
'entryPoint' => '<string>',
'operation' => [
'authorization' => [
'address' => '<string>',
'chainId' => 123,
'nonce' => 123,
'r' => '<string>',
's' => '<string>',
'v' => '<string>',
'yParity' => 123
],
'callData' => '<string>',
'callGasLimit' => '<string>',
'factory' => '<string>',
'factoryData' => '<string>',
'maxFeePerGas' => '<string>',
'maxPriorityFeePerGas' => '<string>',
'nonce' => '<string>',
'paymaster' => '<string>',
'paymasterData' => '<string>',
'paymasterPostOpGasLimit' => '<string>',
'paymasterVerificationGasLimit' => '<string>',
'preVerificationGas' => '<string>',
'sender' => '<string>',
'signature' => '<string>',
'verificationGasLimit' => '<string>'
]
],
'evmMessage' => '<string>',
'svmMessage' => '<string>',
'suiMessage' => '<string>',
'stellarMessage' => '<string>',
'aleoMessage' => '<string>',
'domain' => 'https://app.xyz.com'
],
'bitcoinConfig' => [
'addressType' => '<string>',
'network' => '<string>'
],
'shareSetId' => '95b11417-f18f-457f-8804-68e361f9164f'
]),
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/server/{environmentId}/waas/{walletId}/signMessage"
payload := strings.NewReader("{\n \"message\": \"<string>\",\n \"isFormatted\": true,\n \"roomId\": \"<string>\",\n \"context\": {\n \"evmUserOperation\": {\n \"chainId\": 123,\n \"entryPoint\": \"<string>\",\n \"operation\": {\n \"authorization\": {\n \"address\": \"<string>\",\n \"chainId\": 123,\n \"nonce\": 123,\n \"r\": \"<string>\",\n \"s\": \"<string>\",\n \"v\": \"<string>\",\n \"yParity\": 123\n },\n \"callData\": \"<string>\",\n \"callGasLimit\": \"<string>\",\n \"factory\": \"<string>\",\n \"factoryData\": \"<string>\",\n \"maxFeePerGas\": \"<string>\",\n \"maxPriorityFeePerGas\": \"<string>\",\n \"nonce\": \"<string>\",\n \"paymaster\": \"<string>\",\n \"paymasterData\": \"<string>\",\n \"paymasterPostOpGasLimit\": \"<string>\",\n \"paymasterVerificationGasLimit\": \"<string>\",\n \"preVerificationGas\": \"<string>\",\n \"sender\": \"<string>\",\n \"signature\": \"<string>\",\n \"verificationGasLimit\": \"<string>\"\n }\n },\n \"evmMessage\": \"<string>\",\n \"svmMessage\": \"<string>\",\n \"suiMessage\": \"<string>\",\n \"stellarMessage\": \"<string>\",\n \"aleoMessage\": \"<string>\",\n \"domain\": \"https://app.xyz.com\"\n },\n \"bitcoinConfig\": {\n \"addressType\": \"<string>\",\n \"network\": \"<string>\"\n },\n \"shareSetId\": \"95b11417-f18f-457f-8804-68e361f9164f\"\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/server/{environmentId}/waas/{walletId}/signMessage")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"<string>\",\n \"isFormatted\": true,\n \"roomId\": \"<string>\",\n \"context\": {\n \"evmUserOperation\": {\n \"chainId\": 123,\n \"entryPoint\": \"<string>\",\n \"operation\": {\n \"authorization\": {\n \"address\": \"<string>\",\n \"chainId\": 123,\n \"nonce\": 123,\n \"r\": \"<string>\",\n \"s\": \"<string>\",\n \"v\": \"<string>\",\n \"yParity\": 123\n },\n \"callData\": \"<string>\",\n \"callGasLimit\": \"<string>\",\n \"factory\": \"<string>\",\n \"factoryData\": \"<string>\",\n \"maxFeePerGas\": \"<string>\",\n \"maxPriorityFeePerGas\": \"<string>\",\n \"nonce\": \"<string>\",\n \"paymaster\": \"<string>\",\n \"paymasterData\": \"<string>\",\n \"paymasterPostOpGasLimit\": \"<string>\",\n \"paymasterVerificationGasLimit\": \"<string>\",\n \"preVerificationGas\": \"<string>\",\n \"sender\": \"<string>\",\n \"signature\": \"<string>\",\n \"verificationGasLimit\": \"<string>\"\n }\n },\n \"evmMessage\": \"<string>\",\n \"svmMessage\": \"<string>\",\n \"suiMessage\": \"<string>\",\n \"stellarMessage\": \"<string>\",\n \"aleoMessage\": \"<string>\",\n \"domain\": \"https://app.xyz.com\"\n },\n \"bitcoinConfig\": {\n \"addressType\": \"<string>\",\n \"network\": \"<string>\"\n },\n \"shareSetId\": \"95b11417-f18f-457f-8804-68e361f9164f\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.dynamicauth.com/api/v0/server/{environmentId}/waas/{walletId}/signMessage")
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 \"message\": \"<string>\",\n \"isFormatted\": true,\n \"roomId\": \"<string>\",\n \"context\": {\n \"evmUserOperation\": {\n \"chainId\": 123,\n \"entryPoint\": \"<string>\",\n \"operation\": {\n \"authorization\": {\n \"address\": \"<string>\",\n \"chainId\": 123,\n \"nonce\": 123,\n \"r\": \"<string>\",\n \"s\": \"<string>\",\n \"v\": \"<string>\",\n \"yParity\": 123\n },\n \"callData\": \"<string>\",\n \"callGasLimit\": \"<string>\",\n \"factory\": \"<string>\",\n \"factoryData\": \"<string>\",\n \"maxFeePerGas\": \"<string>\",\n \"maxPriorityFeePerGas\": \"<string>\",\n \"nonce\": \"<string>\",\n \"paymaster\": \"<string>\",\n \"paymasterData\": \"<string>\",\n \"paymasterPostOpGasLimit\": \"<string>\",\n \"paymasterVerificationGasLimit\": \"<string>\",\n \"preVerificationGas\": \"<string>\",\n \"sender\": \"<string>\",\n \"signature\": \"<string>\",\n \"verificationGasLimit\": \"<string>\"\n }\n },\n \"evmMessage\": \"<string>\",\n \"svmMessage\": \"<string>\",\n \"suiMessage\": \"<string>\",\n \"stellarMessage\": \"<string>\",\n \"aleoMessage\": \"<string>\",\n \"domain\": \"https://app.xyz.com\"\n },\n \"bitcoinConfig\": {\n \"addressType\": \"<string>\",\n \"network\": \"<string>\"\n },\n \"shareSetId\": \"95b11417-f18f-457f-8804-68e361f9164f\"\n}"
response = http.request(request)
puts response.read_body{
"roomId": "<string>",
"serverKeygenIds": [
"<string>"
],
"newServerKeygenIds": [
"<string>"
],
"walletId": "95b11417-f18f-457f-8804-68e361f9164f"
}{
"error": "<string>",
"code": "exchange_currency_unsupported"
}{
"error": "No jwt provided!"
}{
"error": "Access Forbidden",
"code": "sanctions_blocked"
}{
"error": "Not Found",
"code": "not_found"
}{
"error": "Internal Server Error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Request proof: a compact ES256 JWS, signed with the server's registered key, binding this request to a single-use nonce from GET /nonces. The JWS header is ServerSignerProofHeader and its payload is ServerSignerProofPayload. Required when the request carries a DYN API token and no JWT, and a server signer with a registered key controls the resource. A proof that is present is always verified.
4096^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$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"
UUID of the wallet
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
Sign Message Request
A string with a max length of 204800 characters
204800When true, message is treated as a pre-computed 32-byte hash (64 hex characters, optionally with a leading 0x) and signed by the MPC server as-is ("raw signing"). When false or omitted, the SDK hashes the message bytes using the chain's standard algorithm (e.g. keccak256 for EVM).
MPC room identifier for the signing session
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Signing-quorum consent evidence for a business-account-governed sign — the Initiator's own signed Intent (or, when redeeming a stored proposal from a non-Initiator session, initiatorProof instead). A top-level sibling of context, never nested under it — context describes only the operation being signed. Approvals collected from other members are tracked server-side against the proposal, never sent by a client. intentSignature is required when first submitting an initiator-signed intent. It is omitted when redeeming an existing proposal, where the server matches the exact intent and restores the stored initiator signature.
Show child attributes
Show child attributes
Optional identifier of the share set this operation targets. When
omitted, the active rootUser share set for walletId is resolved
server-side (backwards-compat fallback for older SDKs).
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"
Response
Successfully created a room for signing message ceremony. Streamed as text/event-stream (NOT JSON) by default; the
JSON body is returned only when the HTTP transport is selected.
Unique identifier of the opened MPC room
List of existing server-side key generation identifiers
A base58 string with a max length of 100 characters
100^[1-9A-HJ-NP-Za-km-z]+$List of newly generated server-side key generation identifiers
A base58 string with a max length of 100 characters
100^[1-9A-HJ-NP-Za-km-z]+$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"