Link

Web3 tools

N-Button

Short HTML you paste onto a page that gives you a button.
The visitor slides it. Payment happens.
Users can define if they still get asked confirmation via their Link Security options.

Windows · needs Link · a published @nexusnode.link paymail

What it is



One script, then a div. The button shows the amount. The visitor drags the green knob from left to right and lets go. A short drag snaps back and does not pay. A full slide pays.

While that button is paying it reads <wait>. A finished payment stays Paid in green. A failed payment reads Error in red, with the reason on the button: Error - no Link, Error - not enough funds, or Error - cancelled. That same button can be slid again. Another button on the page still works on its own.

Phones, and any computer without Link running, read Error - no Link. An empty wallet reads Error - not enough funds. Cancelling the question in Link reads Error - cancelled.

What you set

Put these on the div. A button that is missing a required field stays on Error - not set up and will not pay.

data-link-to

Required. Your @nexusnode.link paymail, or a 1… payment address. This is who receives the amount you set. A split keeps this name first.

A split

Add data-link-to2, data-link-to3, and so on, up to 12 names. data-link-to1 counts too. Several names can sit in one attribute, separated by commas. A second data-link-to does not survive in HTML, so the extra names need their own attributes. The amount is divided evenly. Sats that do not divide evenly stay with the first name. A share of 0 is left out. One bad name fails the button. The 200 sat house fee is not split.

data-link-receipt

off or on. Off is the default. On shows Click to download receipt under the button after Paid. The file lists who paid, each payee, then that payee's amount, the 200 sat house fee, the total, the page it was paid at, the message, the transaction id, the nonce, and the time Link accepted it. The local time is marked Local timezone, and the same moment is also shown in UTC. It says the payment was broadcast. If a denomination is set, the figure that was on the button is included. The bottom says it is a record of the payment, not an invoice from the site, and Provided by Dalais Org. If the button also redirects, that redirect waits 5 seconds.

data-link-sats

The amount in satoshis, as a whole number. One sat through 21,000,000 BSV. Use this or data-link-bsv. Setting both is an error.

data-link-bsv

The same payment written in BSV, such as 1.01. Up to 8 decimal places. The chain still moves an exact number of sats.

data-link-message

Required. A note stored in the on-chain record, up to 160 characters. Do not use a | character.

data-link-theme

default, rose, green, gold, or blue. Anything else is default. Paid stays green. Error stays red.

data-link-denomination

gbp, usd, or eur. Display only. The visitor still pays the sats you set. The label is the amount, then the unit: 1000 sats, 0.1 bsv, 10 gbp.

data-link-redirect

Leave it blank and the visitor stays on your page. Otherwise use a full https:// address, or a path that starts with /. About a second after Paid, or 5 seconds when data-link-receipt is on, the browser opens that address with ?txid= added.

data-link-auto-pay

off or on. Off is the default. On asks Link to pay without a question, and only when that person’s Link lamp is green and the amount is under 10 BSV.

data-link-nonce

Optional. Leave it out and the button makes one. If your server must match a nonce, set 8–64 characters from A–Z, a–z, 0–9, _ and -. One nonce, one payment, when your server enforces it.

The lamp in Link

Open Link, then Settings, then Security. The row is labelled auto-pay on/off. A circle sits to its right. Red is off. Green is on. A new install is red.

Under 10 BSV, the lamp is the permission. The page can request a silent pay with data-link-auto-pay="on". If the lamp is red, Link still asks, and the default answer is No.

10 BSV or more always asks, even when the lamp is green and the button says auto-pay. The pound, dollar, or euro figure on the button does not move that line.

Link also pays a house fee of 200 sats to webgate@nexusnode.link. The button does not print that fee. The HTML cannot remove it or send it somewhere else. The miner fee comes from the visitor’s Link.

Themes

These are the five colours. They are painted here so you can choose. Nothing on this page takes a payment.

default
rose
green
gold
blue

Pounds, dollars, euros

The denomination is a label. data-link-sats="100000" with gbp still sends 100,000 sats. The button looks up a BSV price and prints the fiat figure, such as 0.015 gbp. If that figure would round to 0.00, it shows more decimals so it does not look free.

The rate is read from this site, which asks WhatsOnChain for BSV in dollars and Frankfurter for the pound and the euro. It is cached for a few minutes. If the rate is down, the button shows the BSV amount, such as 0.001 bsv.

With no denomination, a sats button shows 100000 sats. A data-link-bsv="1.01" button shows 1.01 bsv.

After a successful pay

Set data-link-redirect to a full https:// address, or a path on your own site that starts with /. A bare dalais.org/success is not an address the button will follow.

About one second after Paid, the browser goes there. When data-link-receipt is on, it waits 5 seconds so the receipt can be clicked. It then adds the transaction id: ?txid=, or &txid= if the address already has a query. A cancel, no Link, or no funds stays on your page.

This site has a plain page for that test: dalais.org/success. It says payment succeeded, and shows the txid when the button sends one.

The record

The transaction outputs are the amounts: one output for each name that receives sats, and the 200 sat house fee. The block time is the time. The note in the transaction is short. Its type is n_button. It contains the visitor’s handle, the page origin, the page path, your message, a nonce, and a signature.

Theme, redirect, denomination, the fiat label, and a receipt are not in that note. The path does not include a query string. Your server is the lock: accept a form only after it has seen that transaction, with each payee output, the house output, and the nonce you issued.

Paste it

No plugin is required. Use a Custom HTML block so the script tag survives the editor.

  1. 1Copy the HTML block below.
  2. 2Set data-link-to, any extra names for a split, one amount, and data-link-message.
  3. 3Paste it into a Custom HTML block. One script tag is enough for every button on that page.
  4. 4Publish. Slide the button with Link running on that computer.
				
					<script src="https://dalais.org/n-button.js"></script>
<div data-n-button
     data-link-to="you@nexusnode.link"
     data-link-sats="1000"
     data-link-message="Order 1042"></div>
				
			

A second button on the same page can leave the script tag off. This one is priced in BSV, labelled in pounds, gold, splits the amount across three names, and sends a paid visitor to the test page.

				
					<script src="https://dalais.org/n-button.js"></script>
<div data-n-button
     data-link-to="you@nexusnode.link"
     data-link-to2="two@nexusnode.link"
     data-link-to3="three@nexusnode.link"
     data-link-bsv="1.01"
     data-link-message="Invoice 18"
     data-link-theme="gold"
     data-link-denomination="gbp"
     data-link-redirect="<enter a url or leave blank>"
     data-link-auto-pay="off"
     data-link-receipt="on"></div>