MPC Signing & Operations | Frequently Asked Questions

How long does it take for the transaction to expire?

Transactions will expire after 24 hours by default. If a transaction hasn't reached the required threshold of approvals within this period, a new request will need to be created from the dashboard.

How long does it take for a transaction to move from signing to broadcast?

Once the approval threshold has been reached and the transaction has been signed the completed transaction is immediately submitted to our network node and broadcast to the network. This can be verified by viewing a 3rd party network explorer. However, a signed transaction may still fail once broadcast to the network for other reasons, even while displaying broadcast on the dashboard so care should be taken to ensure completion.

Can I cancel a signature e.g. I made a mistake and did not want to sign?

No, you cannot cancel a signature. You should review the transaction details very carefully before completing the signing process. In the case where you may have made an erroneous approval, immediately close the application (which will prevent your device from signing) and contact any other members of the vault signing party.​

A request was not executed and failed. What could be the issue?

There are two main reasons why a request (transaction or reshare) might fail:

  • Signer Availability: One or more required signers were not online and logged-in with their registered devices simultaneously to approve the request. All signers need to be present and logged-in in the app. at the same time to complete the action.

  • Time-Out Limit: The request was not approved and completed within the 24-hour time-out limit. Actions must be completed within this time frame to be successfully executed.

Can a single signature sign more than one transaction?

Each transaction must be signed individually. While we support signing multiple transactions in parallel, they still need to be queued and broadcast sequentially if they are on the same network.

Is batch transaction approval possible?

Batch transaction capabilities may be supported in certain systems, like smart contracts in the EVM world, but this would still rely on a single signature and may not be feasible for cross-chain use cases.

What happens if I force close the io.vault app after approving or rejecting a request?

If you force quit the io.vault app while signing a request, the process will be interrupted, causing the transaction to fail. You will need to initiate a new request and approve it again to complete the transaction.

Why is background signing not working?

Geolocation must be enabled on both your phone’s system setting and the app’s setting for background signing to work. If either is disabled, the app won’t be able to access location data causing the signature to fail. Please also ensure location settings are enabled for all members of your signing party.

Troubleshooting steps:

  • Make sure all signers’ devices are on the latest app version.

  • Restart the app completely before retrying.

  • Keep the app open and active during signing.

  • Ensure your device has a stable internet connection (avoid switching Wi-Fi or VPN).

If the issue persists, export the app logs from the settings and share them with Support.

I rejected a transaction while holding enough signing power to meet the threshold. Why wasn’t it rejected immediately?

Even if your rejection carries enough power to meet or exceed the threshold, the system still checks whether other participants could collectively approve. For example, if two other users each hold +1 signing power, their combined approval would still satisfy a threshold of 2.

So in this case:

Your rejection did not eliminate all possible approval paths — so the transaction remained pending.

Only after another participant also rejects, preventing the remaining group from reaching the threshold, will the system update the transaction status to Rejected.

This behavior is intentional: io.vault’s logic ensures that transactions are only rejected when absolutely no valid approval combination remains. It prevents accidental rejections in multi-user environments and reinforces the principle that rejection requires blocking all remaining paths to approval, not just a strong individual vote.