Multisig
⚠️ Validado on-chain (com ressalvas de modelo)
Suite adv-write — add-owner validado on-chain (connect). swap/remove/threshold operam via modelo Safe-tx (assinaturas de owners), não UserOp único do Kernel.
Gerada automaticamente do spec OpenAPI da API (fonte de verdade). 17 endpoint(s).
List multisigs
GET /v1/multisigs
List tenant multisig wallets
Auth: api-key
Query params:
| Param | Tipo | Obrigatório |
|---|---|---|
network | string | não |
status | string | não |
Respostas: 200, 401
Deploy multisig
POST /v1/multisigs
Deploy a Safe{Wallet} multisig via UrblockMultisig factory
Auth: api-key
Request body:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | sim | Multisig wallet name |
owners | string[] | sim | Owner addresses |
threshold | number | sim | Number of confirmations required |
network | string | sim | Target network |
idempotency_key | string | não | Idempotency key |
safe_singleton_address | string | não | Safe singleton (Safe.sol) address. Falls back to SAFE_SINGLETON_ADDRESS env var. |
safe_proxy_factory_address | string | não | SafeProxyFactory address. Falls back to SAFE_PROXY_FACTORY_ADDRESS env var. |
Respostas: 201, 400, 401
Get multisig
GET /v1/multisigs/{id}
Get multisig details with on-chain data
Auth: api-key
Path params: id
Respostas: 200, 401, 404
Add multisig owner
POST /v1/multisigs/{id}/owners
Add owner via addOwnerWithThreshold + execTransaction
Auth: api-key
Path params: id
Request body:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
owner | string | sim | New owner address |
threshold | number | não | New threshold (defaults to current) |
signatures | string | sim | Concatenated owner signatures (hex) |
idempotency_key | string | não | Idempotency key |
Respostas: 201, 400, 401
Check owner
GET /v1/multisigs/{id}/owners/{address}
Check if an address is a Safe owner on-chain
Auth: api-key
Path params: id, address
Respostas: 200, 401, 404
Remove multisig owner
DELETE /v1/multisigs/{id}/owners/{address}
Remove owner via removeOwner + execTransaction
Auth: api-key
Path params: id, address
Request body:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
prev_owner | string | sim | Previous owner in linked list (for Safe removeOwner) |
threshold | number | não | New threshold (defaults to current) |
signatures | string | sim | Concatenated owner signatures (hex) |
idempotency_key | string | não | Idempotency key |
Respostas: 200, 400, 401
Swap multisig owner
POST /v1/multisigs/{id}/owners/swap
Atomically replace an existing owner with a new one via swapOwner + execTransaction
Auth: api-key
Path params: id
Request body:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
prev_owner | string | sim | Previous owner in linked list (for Safe swapOwner) |
old_owner | string | sim | Old owner to be replaced |
new_owner | string | sim | New owner to replace old_owner |
signatures | string | sim | Concatenated owner signatures (hex) |
idempotency_key | string | não | Idempotency key |
Respostas: 200, 201, 400
Swap owner (PUT legacy)
PUT /v1/multisigs/{id}/owners/swap
Use POST.
Auth: api-key
Path params: id
Request body:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
prev_owner | string | sim | Previous owner in linked list (for Safe swapOwner) |
old_owner | string | sim | Old owner to be replaced |
new_owner | string | sim | New owner to replace old_owner |
signatures | string | sim | Concatenated owner signatures (hex) |
idempotency_key | string | não | Idempotency key |
Respostas: 200
Predict Safe address
GET /v1/multisigs/{id}/predict_address
Predict the counterfactual address for a Safe deployment with given owners/threshold/salt
Auth: api-key
Path params: id
Query params:
| Param | Tipo | Obrigatório |
|---|---|---|
owners | string | sim |
threshold | number | sim |
salt_nonce | number | sim |
Respostas: 200, 400
Change threshold
POST /v1/multisigs/{id}/threshold
Change Safe threshold via changeThreshold + execTransaction
Auth: api-key
Path params: id
Request body:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
threshold | number | sim | New threshold value |
signatures | string | sim | Concatenated owner signatures (hex) |
idempotency_key | string | não | Idempotency key |
Respostas: 200, 201, 400, 401
Change threshold (PUT legacy)
PUT /v1/multisigs/{id}/threshold
Use POST. Change Safe threshold.
Auth: api-key
Path params: id
Request body:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
threshold | number | sim | New threshold value |
signatures | string | sim | Concatenated owner signatures (hex) |
idempotency_key | string | não | Idempotency key |
Respostas: 200
List multisig txs
GET /v1/multisigs/{id}/transactions
List multisig transactions
Auth: api-key
Path params: id
Respostas: 200, 401, 404
Submit multisig tx
POST /v1/multisigs/{id}/transactions
Submit transaction for multisig approval
Auth: api-key
Path params: id
Request body:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
to | string | sim | Destination address |
value | string | não | ETH value in wei |
data | string | não | Calldata hex |
idempotency_key | string | não | Idempotency key |
Respostas: 201, 400, 401, 404
Get transaction
GET /v1/multisigs/{id}/transactions/{txIndex}
Read transaction details from local DB
Auth: api-key
Path params: id, txIndex
Respostas: 200, 401, 404
Confirm multisig tx
POST /v1/multisigs/{id}/transactions/{txIndex}/confirm
Approve a Safe tx hash (approveHash)
Auth: api-key
Path params: id, txIndex
Request body:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
signer_address | string | sim | Signer address |
idempotency_key | string | não | Idempotency key |
Respostas: 201, 400, 401
Check confirmation
GET /v1/multisigs/{id}/transactions/{txIndex}/confirmations/{address}
Check if an address has approved a Safe tx hash on-chain
Auth: api-key
Path params: id, txIndex, address
Respostas: 200, 401, 404
Execute multisig tx
POST /v1/multisigs/{id}/transactions/{txIndex}/execute
Execute via execTransaction with collected signatures
Auth: api-key
Path params: id, txIndex
Request body:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
signatures | string | sim | Concatenated signatures bytes (hex) |
idempotency_key | string | não | Idempotency key |
Respostas: 201, 400, 401