YOUR PERMISSION · ON YOUR LAPTOP

Sign the exact intent.

Keep the keys with you.

Create a signed test intent in your laptop’s terminal, then check its public evidence in the browser.

Experimental test credits only. Matching evidence remains Pending Sync. No settlement service is connected.

If you opened this from the checker, return to that browser tab to continue. The guide opens separately so it does not replace your form.

01 / PREPARE

Start with the local tools

Use Node.js 24 on Linux or macOS and a reviewed source checkout or the independent reference kit. Extract the kit and open a terminal in its top-level folder, which contains nearby-protocol and public.

Check your installed Node version:

node --version

It should begin with v24.. The prebuilt verifier and Node’s built-in modules need no npm installation for the commands below. These instructions assume you are in the kit’s top-level folder.

The website cannot connect to your signer or access its keys. Run only source you have reviewed. The local computer, runtime, terminal and storage remain trusted; this is not hardware key isolation.

02 / CREATE TEST KEYS

Keep the passphrase in the terminal

node nearby-protocol/authority-cli.mjs init ./nearby-private

At the hidden terminal prompt, choose a unique passphrase of at least 16 characters. Keep it out of browser fields, command arguments, environment variables, logs and screenshots.

The command creates separate encrypted issuer and payer keys in a new nearby-private directory. It refuses to overwrite existing state. Record the printed public profile keys separately; those are the values the checker will need.

Both roles live on this laptop. This reference is for testing and has no key-recovery interface. Keep the passphrase and local state available for the rest of the test.

03 / GET THE REQUEST

Retain the receiver’s details separately

The receiver uses Signed exchange (new tab) to review and sign a request, then exports its .ereq file. This adapter accepts whole test credits on echo-demo-local, with scale 0.

Save that file as request.ereq in the kit’s top-level folder. Separately retain the full request ID and confirm the full receiver address through your trusted exchange. The incoming file cannot establish its own trust.

Keep the device clocks correct and the request valid while signing. A receiver may restrict the request to a specific payer; that address must match your local payer.

04 / REVIEW & SIGN

Approve only the exact test intent

node nearby-protocol/authority-cli.mjs sign ./nearby-private ./request.ereq ./payment.eauth

The terminal asks for the separately retained request ID, confirmed receiver address and your local passphrase. It then displays the proposed intent and permission ticket. Review the receiver, amount, request ID and time window before typing SIGN.

Approval happens before the five-second permit starts. That limit applies to signing; you do not have to transfer or inspect the file within five seconds.

A completed result is retained locally before payment.eauth is exported. The file contains public signed evidence, not private keys.

05 / CHECK EVIDENCE

Bring the file and confirmed public values

Return to your original Check authority evidence tab, or open the checker. Import payment.eauth, then enter the values you retained separately:

Choose Check permission evidence. A match establishes historical permission evidence and still says Pending Sync. It does not establish current revocation status, complete budget history, actual execution, funds or settlement.

After a match, choose Test an altered copy. A changed amount must be refused while the original evidence remains unchanged. The checker does not save evidence or trust values; retain the files and re-enter confirmed values after a reload.

IF AN EXPORT FAILS

Recover the retained result

Replace FULL_REQUEST_ID below with the full ID you retained. Re-exporting a completed result returns the same bytes without signing again:

node nearby-protocol/authority-cli.mjs export ./nearby-private FULL_REQUEST_ID ./retained.eauth

If the tool reports OUTCOME_UNKNOWN, keep the state and investigate. Do not delete the journal or create a new request to bypass the block. Output files are never overwritten.

TAKE THE GUIDE WITH YOU

Prepare before disconnecting

Open the standalone checker while online and choose Prepare offline copy. The prepared copy includes this guide and the verifier, but not your evidence, confirmed values or the surrounding website. Export the files you need first.

The full technical specification includes the exact signed fields, terminal inspection commands and implementation limits. Download the full specification (.md).