For the complete documentation index, see llms.txt. This page is also available as Markdown.

Approve from another device

Sign an approval on one device, move it as a signed file, and submit it from another device that holds a broadcaster wallet.

Where: Approvals (both devices) · You need: an account with a Signed approval path configured, the approver's wallet on a second device, a broadcaster wallet

Scenario

The approver's laptop is not the browser where the request was created, or the approver signs on an air-gapped machine that is never online. A Signed file (.bloxmeta.json) carries the signed approval from the approver to whoever submits it. No sign-in and no relay is needed. The payload never travels in a URL.

Think of the file as an authorize → broadcast handoff: the approver authorises, the broadcaster broadcasts.

Who is involved

Device
Wallet
Does

Requester's browser

Treasury Requester 0x8C4e…21bB

Creates the request

Approver's device

Treasury Approver 0xD27a…f9E3

Signs the approval and exports the file

Broadcaster's device

Broadcaster 0x5E60…c7D1

Imports the file and executes

Time: about 15 minutes.

Before you start

  • The action must have a Signed approval path with the approver's role on the Approval step and Broadcaster on Execute (see Team treasury, Phase 4).

  • Each device needs the account open. Share the account link (Share → Copy open link) or import the account by address on each device. Reading works without a wallet.

Steps

1. Requester creates the request

  1. Select New request → Transfer, fill in asset, amount and an allowlisted recipient.

  2. Select Submit request with the Wallet method and confirm. The request is posted on-chain and appears in Approvals as Awaiting Approval.

2. Approver signs on their own device

  1. On the approver's device, open the account and go to Approvals. The request is there because it lives on-chain.

  2. Open the row. In Approve request, switch the toggle to Sign and select Approve. Sign in the wallet. The dialog shows how long the signature stays valid (for example Meta-tx expires in 1h).

Approve request dialog with the Wallet and Sign toggle, Approve and Cancel buttons
Choose Sign to produce an off-chain approval instead of an on-chain transaction.
  1. Open Approvals, switch to the Approved tab and open the signed item. In the Signed transaction dialog choose Share to another device. The Share signed request dialog opens. Read the notice and tick I understand that anyone who receives this file and can submit may broadcast it until it expires or is used.

  2. Select Download to save the .bloxmeta.json file (or Copy JSON if you will paste it).

Share signed request dialog with the acknowledgement checkbox and Share file, Download and Copy JSON buttons
The acknowledgement is there for a reason: the file is as good as the approval it contains.

3. Move the file

Transfer the file to the broadcaster's device over a channel you trust: a USB stick for an air-gapped signer, or an end-to-end encrypted message. Do not post it publicly.

4. Broadcaster imports and executes

  1. On the broadcaster's device, open the account, go to Approvals and select Import signed file.

  2. Drop the file, or select Paste JSON instead and paste the content.

  3. Review the preview. It decodes the operation, amount and recipient. The heading reminds you to Treat this like a signed check.

Import signed file dialog with a drop zone, Paste JSON instead, and a preview
Check the decoded details before adding the file to Approved.
  1. Select Add to Approved. The item appears on the Approved tab.

  2. Open it and select Execute with the broadcaster wallet connected. The broadcaster pays gas.

  3. Confirm Executed in History.

Safety rules

If the signature expired

Every signed approval carries an expiry. If the Approved row reads Expired. Execution disabled. Delete this invalid entry.:

  1. Select Delete on the broadcaster's device.

  2. Ask the approver to open the same request in Approvals and sign again. The on-chain request is still pending; only the signature was time-limited.

  3. Move the new file and repeat step 4.

If the underlying request has itself been cancelled or already executed, the row shows that state instead, and no new signature is needed.

Checklist

Last updated

Was this helpful?