Skip to main content
POST
/
platform
/
admin
/
tenant
/
wallets
/
multisignature
/
create
Create multisignature wallet
curl --request POST \
  --url https://api.example.com/platform/admin/tenant/wallets/multisignature/create \
  --header 'Content-Type: application/json' \
  --data '{}'
{
  "isSuccess": true,
  "isFailure": false,
  "error": null,
  "value": {
    "id": 42,
    "name": "Example"
  }
}

Description

Deploys a new multisignature wallet on the blockchain with designated owner addresses and approval threshold. Multisignature wallets require a minimum number of owner signatures to execute transactions, providing enhanced security compared to EOA wallets.

Input

Expects a JSON body containing:
  • tenantId (long, required) - Identifier of the tenant that will own the wallet
  • provider (string, required) - Multisignature wallet provider (e.g., “Safe”, “Gnosis”)
  • walletName (string, required) - Display name for the wallet
  • blockchainId (long, required) - Identifier of the blockchain network
  • ownersAddresses (array of strings, required) - List of owner wallet addresses (minimum 2)
  • threshold (int, required) - Number of required signatures for transaction approval

Output

Returns a containing:
  • walletTenantId (long) - Unique identifier for the created wallet tenant record
  • walletAddress (string) - The deployed multisignature wallet address
  • walletName (string) - The assigned wallet name
  • blockchainId (long) - The blockchain network identifier
  • threshold (int) - The configured signature threshold
  • ownersCount (int) - Number of owner addresses

Examples

Request
{
  "tenantId": 1024,
  "provider": "Safe",
  "walletName": "Treasury MultiSig",
  "blockchainId": 137,
  "ownersAddresses": [
    "0x1234567890abcdef1234567890abcdef12345678",
    "0xabcdef1234567890abcdef1234567890abcdef12",
    "0x567890abcdef1234567890abcdef1234567890ab"
  ],
  "threshold": 2
}
Response (200 OK)
{
  "walletTenantId": 3001,
  "walletAddress": "0x9876543210fedcba9876543210fedcba98765432",
  "walletName": "Treasury MultiSig",
  "blockchainId": 137,
  "threshold": 2,
  "ownersCount": 3
}

Errors

  • 400 Bad Request: Invalid owner addresses, threshold exceeds owner count, insufficient owners, or unsupported provider.
  • 401 Unauthorized: Authentication token is missing or invalid.
  • 403 Forbidden: User does not have permission to create multisignature wallets.
  • 500 Internal Server Error: An unexpected error occurred during wallet deployment.

Notes

The threshold must be less than or equal to the number of owners. Deployment may take several minutes depending on blockchain network congestion. The wallet is deployed on-chain and transaction fees will apply based on the blockchain network.

Query Parameters

api-version
string | null

Body

application/json

Request containing multisignature wallet creation details including provider, owners, and threshold.

Represents a request payload for creating a new multisignature wallet.

tenantId
integer<int64>

Identifier of the tenant that will own the multisignature wallet.

Example:

1024

provider
enum<string>

Selected provider for the multisignature wallet (e.g., Safe, Gnosis).

Available options:
GnosisSafe
Example:

"Safe"

walletName
string

Desired name of the multisignature wallet.

Example:

"My MultiSig Wallet"

blockchainId
integer<int64>

Identifier of the blockchain network where the wallet will be deployed.

Example:

137

ownersAddresses
string[]

Array of blockchain addresses that will be owners of the multisignature wallet.

Example:
[
"0x1234567890abcdef1234567890abcdef12345678",
"0x567890abcdef1234567890abcdef1234567890ab"
]
threshold
integer<int32>

Required number of owner approvals needed to execute transactions.

Example:

2

Response

Multisignature wallet created successfully.

Wrapper for API operation results containing success status, error information, and return value.

isSuccess
boolean

True if the operation completed successfully, false otherwise.

Example:

true

isFailure
boolean

True if the operation failed, false otherwise.

Example:

false

error
object

Error information returned when the operation fails.

Example:
{
"code": "ValidationError",
"message": "The request parameters failed validation.",
"info": [
"The Name field is required.",
"The Id field must be greater than 0."
]
}
value
object

The result value returned when the operation is successful.

Example:
{
"id": 2048,
"walletAddress": "0x1234567890abcdef1234567890abcdef12345678",
"blockchainId": 137
}