On this page
lnurl
Request to execute a LNURL request. The application needs to pass a LNURL string which should be provided for example by the application’s backend. The lnurl function can also accept a LUD-16 static identifier (e.g. [email protected]) instead of a LNURL string.
The method returns a promise which resolves once the LNURL flow is completed. It returns the last response from the LNURL server. For LNURL-pay requests it also contains payment information (preimage, payment hash) and for LNURL-auth requests it contains auth information (message, signature)
Method
declare function lnurl(lnurl: string): Promise<LNURLResponse>;;Response
type LNURLResponse =
| {
status: "OK";
data?: unknown
}
| { status: "ERROR"; reason: string };LNURL-pay Response
type LNURLPayResponse =
| {
status: "OK";
data: {
preimage: string,
paymentHash: string,
paymentRequest: string
}
}
| { status: "ERROR"; reason: string };LNURL-auth Response
type LNURLAuthResponse =
| {
status: "OK";
data: {
message: string,
signature: string
}
}
| { status: "ERROR"; reason: string };Example
const lnurl = "<LNURL_OR_LIGHTNING_ADDRESS>";
const provider = (window.$onekey && window.$onekey.webln) || window.webln;
if (!provider || typeof provider.lnurl !== "function") {
throw new Error("LNURL is not supported by this provider.");
}
await provider.enable();
const result = await provider.lnurl(lnurl); // promise resolves once the LNURL process is finished (e.g. a payment is sent or the login is complete)Check result.status: an ERROR response contains a reason. Also catch rejected promises, including connection or user-approval failures. The optional data payload depends on the LNURL flow; do not assume a fixed shape without checking it.