About five minutes
Your first successful claim.
Create a Developer account and Project
Add the exact HTTPS Allowed Origin and copy the one-time-displayed publishable key.
Install
npm install @dermoptera/handoffValidate your state
Define a narrow JSON type and a strict runtime validator that rejects unknown fields.
Create and display
import { createTransfer, HandoffClient, FetchTransport } from "@dermoptera/handoff";
const config = {
endpoint: "https://api.dermoptera.work",
publishableKey: "pk_live_your_project_key",
appId: "quote-wizard",
schemaVersion: "v1",
};
const transfer = await createTransfer({
...config,
state: { step: 2, answers: { size: "medium" } },
ttl: 600,
continueUrl: "https://app.example/continue",
});Render transfer.url as a QR or continuation link.
Claim and resume
Use HandoffClient.claimAndResume() with an Application Adapter so existing-state confirmation happens before claim.
Never log the continuation URL. It contains the claim token and AES key in its fragment.
Full copy-paste examples are in the package README and repository docs/QUICKSTART.md.