Skip to main content

MultisigResource

Access via urblock.multisig.

Deploy and manage Safe{Wallet} multisig wallets: submit, confirm, and execute transactions.

Methods

create(params)

Deploy a new multisig wallet.

const multisig = await urblock.multisig.create({
name: "Treasury Multisig",
owners: ["0xAAA...", "0xBBB...", "0xCCC..."],
threshold: 2,
network: "polygon_amoy",
idempotency_key: "multisig-001",
});

Returns: MultisigResponse


list(params?)

List multisig wallets.

const wallets = await urblock.multisig.list({ network: "polygon_amoy" });

Returns: ListResponse<MultisigResponse>


retrieve(id)

Get a multisig wallet by ID.

const multisig = await urblock.multisig.retrieve("msig_abc123");

Returns: MultisigResponse


submitTransaction(id, params)

Submit a new transaction to the multisig.

const tx = await urblock.multisig.submitTransaction("msig_abc123", {
to: "0x...",
value: "0",
data: "0x...",
idempotency_key: "mtx-001",
});

Returns: MultisigTxResponse


listTransactions(id)

List all transactions for a multisig.

const txs = await urblock.multisig.listTransactions("msig_abc123");

Returns: ListResponse<MultisigTxResponse>


getTransaction(id, txIndex)

Get a specific multisig transaction by index.

const tx = await urblock.multisig.getTransaction("msig_abc123", 0);

Returns: MultisigTransactionDetailResponse


confirmTransaction(id, txIndex, params)

Confirm (approve) a pending multisig transaction.

const tx = await urblock.multisig.confirmTransaction("msig_abc123", 0, {
signer_address: "0xAAA...",
idempotency_key: "confirm-001",
});

Returns: TxActionResponse


executeTransaction(id, txIndex, params)

Execute a confirmed multisig transaction.

const tx = await urblock.multisig.executeTransaction("msig_abc123", 0, {
signatures: "0xabc123...",
idempotency_key: "execute-001",
});

Returns: TxActionResponse


isConfirmed(id, txIndex, address)

Check if an owner has confirmed a transaction.

const result = await urblock.multisig.isConfirmed(
"msig_abc123",
0,
"0xAAA...",
);

Returns: MultisigConfirmationResponse


addOwner(id, params)

Add a new owner to the multisig.

const tx = await urblock.multisig.addOwner("msig_abc123", {
owner: "0xDDD...",
signatures: "0xabc123...",
idempotency_key: "add-owner-001",
});

Returns: TxActionResponse


isOwner(id, address)

Check if an address is an owner.

const result = await urblock.multisig.isOwner("msig_abc123", "0xAAA...");

Returns: MultisigOwnerCheckResponse


removeOwner(id, address, params)

Remove an owner from the multisig.

const tx = await urblock.multisig.removeOwner("msig_abc123", "0xDDD...", {
prev_owner: "0xCCC...",
signatures: "0xabc123...",
idempotency_key: "remove-owner-001",
});

Returns: TxActionResponse


changeThreshold(id, params)

Change the confirmation threshold.

const tx = await urblock.multisig.changeThreshold("msig_abc123", {
threshold: 3,
signatures: "0xabc123...",
idempotency_key: "threshold-001",
});

Returns: TxActionResponse