Skip to main content

createTransferLink — Receive within Tenebrae

Build a shareable private transfer link (discovery URL) so a sender can pay you while you stay offline.

Product motion: Receive within Tenebrae (Quickstart · Receive).

Where the URL is used. Your next step is share transferLink (QR / copy). The sender pastes it into Send, calls resolveTransferLinkSenderView then prepareTransferViaTransferLink — the URL is not passed into prepareTransfer(asset, to).

Recipient discovery is not the privacy mechanism — privacy is client-side ZK Proofs (Noir) on protocol state.

plugin.createTransferLink(args: {
recipientAssetTransferLinkHashHex: string;
path?: string;
}): Promise<{ transferLink: string }>
ParameterTypeRequiredDescription
recipientAssetTransferLinkHashHexstringyesLink hash from Host Auth / receive material
pathstringnoOptional path under publicAppOrigin

Requires publicAppOrigin on SDK Plugin Config (e.g. https://tenebrae.xyz). Fails closed if unset.

// Host Auth / client receive flow owns hash derivation — not createTransferLink.
const { transferLink } = await plugin.createTransferLink({
recipientAssetTransferLinkHashHex: RECIPIENT_ASSET_TRANSFER_LINK_HASH_HEX,
});
console.log(transferLink); // share (QR / copy). Sender pastes → resolveTransferLinkSenderView → prepareTransferViaTransferLink.

Sandbox twin: Core Operations · Receive.


Next