Auto-signing contract proposals using LegalLab

It is now possible to let LegalLab auto-sign contract proposals for you, simplifying often occurring tasks during development. You enable this feature by checking the “Auto-sign contract proposals” checkbox in the Create Contract tab. The feature is only available when LegalLab is connected. If this checkbox is enabled when a contract proposal is received, the contract will be automatically loaded and presented, and LegalLab will automatically sign the contract for the proposed role.

Auto-Sign Contract Proposals
Auto-Sign Contract Proposals

#new, #development, #legallab, #features, #contracts


Killing a State Machine

If a state-machine associated with a token or set of tokens misbehaves, and needs to be stopped, an operator of Neuro-Features on the Neuron® that hosts the state-machine can kill it. This does not destroy the token or tokens associated with the state-machine, it just stops the state-machine. The event is also appropriately logged, with information about who took the responsibility to kill the machine.

In order to be able to kill a state machine, the operator needs to fullfil the following requirements:

  • Be an operator on the Neuron hosting the state-machine (i.e. have an administrative account on the Neuron).
  • Have a Digital ID associated with the account.
  • Have sufficient access rights to administer Neuro-Features. (This means, having the Admin.Notarius.NeuroFeatures privilege associated with one of its roles.)
  • Digitally sign an approval of the killing of the machine, where the user affirms to reviewing the token and taking the responsibility of killing the state-machine.

Accessing the Token

To access available tokens on the Neuron, go to the Neuro-Features section in the administrative portal:

Accessing Neuro-Features
Accessing Neuro-Features

Find the corresponding token, and open it by clicking on its ID. A link of the following type is opened:

https://DOMAIN/NeuroFeature.md?ID=TOKEN_ID

If you know the Token ID, you can open the page directly by replacing TOKEN_ID in the URL above with the correct Token ID. If you don’t know the Token ID, but you know the ID of the smart contract that created the token, you can use the script prompt, to find the Token ID, using the following SELECT statement:

select 
	top 1 TokenId 
from 
	NeuroFeatureTokens 
where 
	CreationContract=CONTRACT_ID

Killing the state machine

Once the Current State part of the Neuro-Feature page has loaded, it will present a Kill Machine button, if the token has an associated state-machine.

Accessing the Kill Switch
Accessing the Kill Switch

Press this button to open a new page where you can kill the machine. The page has the following URL. If you have the Token ID already, and cannot open the Neuro-Feature page associated with the token for some reason, you can enter this URL directly into the broker, replacing TOKEN_ID with the corresponding Token ID:

https://DOMAIN/KillMachine.md?ID=TOKEN_ID

The page that opens is simple and informs the user they need to approve the operation using their Digital ID, and that they will be responsible for the action:

Killing the machine
Killing the machine

Press the Kill Machine button to initiate the process by sending a petition to the Digital Identity of the currently logged in user:

Petition Signature for Killing Machine
Petition Signature for Killing Machine

If a Legal Identity is associated with your account you will receive an acknowledgement that a petition has been sent.

Acknowledgement Petition Sent
Acknowledgement Petition Sent

You will see this petition in your Digital ID app, as follows:

Signature Petition
Signature Petition

Take time to read through the purpose of the signature. If you agree, sign the petition, and the state-machine will be killed:

State Machine Killed
State Machine Killed

#tutorial, #new, #features, #neuro-feature, #state-machine


Embedding PDF Documents in Markdown via URL

As mentioned in a previous article, PDF documents can be embedded into Markdown. You can now also embed PDF documents, by simply using the URL, and embedding it into a multimedia construct in Markdown.

Example:

![`Harmonized Web API for real-time data.pdf`](https://neuro-foundation.io/Papers/Harmonized%20Web%20API%20for%20real-time%20data.pdf)

This results in:

#new, #features, #pdf, #neuron, #markdown


Publishing and transforming XML web content using XSLT

You can now publish XML files as web content, and have the XML source be automatically transformed to a web page using XSL transforms (XSLT). This feature is available from build 2025-08-26. The XSLT can transform the XML to either Markdown or directly to HTML. By doing this you can publish the content directly using its source in XML, without worrying about having to update any corresponding content pages. The XSLT will automatically transform the underlying source data to its presentable form when a user wants to see it.

Example

Consider the following source XML file. It describes a harmonized interface, and the XML acts as a definition for the interface:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/Xsl/InterfaceToMarkdown.xslt"?>
<interface xmlns="urn:nfi:iot:hi:1.0" id="urn:nfi:iot:hi:actuator:analogOutput:1.0">
	<description>Generical analog output.</description>
	<sensorData>
		<field name="Analog Output" use="Optional" m="true" type="q" description="Momentary output value."/>
		<field name="Analog Output, Raw" use="Optional" m="true" type="integer" description="Momentary raw binary output value."/>
		<field name="Analog Output, Bits" use="Optional" s="true" type="integer" description="Number of bits of precision of output value."/>
		<field name="Analog Output, Range, Low" use="Optional" s="true" type="q" description="Lowest possible value."/>
		<field name="Analog Output, Range, High" use="Optional" s="true" type="q" description="Highest possible value."/>
		<comment><![CDATA[The output value must be reported using the correct precision and unit. Examples of units that could be used:

* `%` - for instance 0-100 %
* `mA` - for instance 4-20 mA
* `V` - for instance 0-10 V]]></comment>
	</sensorData>
	<controlParameters>
		<parameter name="Analog Output" use="Mandatory" type="numeric" range="RangeElement" description="Desired state of output."/>
		<parameter name="Analog Output, Raw" use="Optional" type="integer" range="RangeElement" description="Desired raw state of output. The int version must always be supported. If the range supports numbers larger than that supported by the int type, the device must also support the long version."/>
	</controlParameters>
</interface>

Notice the second row. It contains a processing instruction that references an XSL Transform document that can be used to transform the XML:

<?xml-stylesheet type="text/xsl" href="/Xsl/InterfaceToMarkdown.xslt"?>

You can review the XSLT transform referenced here. See if you can see how it works. Otherwise, review the XSLT tutorial on w3schools to learn how XSLT works.

XSLT on the Neuron

On the TAG Neuron®, the XSL Transform procedure works a bit differently than on a traditional web server. In the traditional case, it is the browser that transforms the XML into a presentable page. This means that all the information is returned, including information you might not want to present. The process is also somewhat slowed down, since two requests have to be made.

Traditional Flow title=
Traditional Flow

On the Neuron, it is the the web server that transforms the XML into a presentable page, not the browser. This means that only one request has to be made. Furthermore, the web server can transform the content in two passes, simplifying the construction of the XSLT: The developer can choose to transform the XML to Markdown first. This Markdown then gets implicitly transformed into HTML in a second step:

XSLT Transform on a Neuron (using Markdown) title=
XSLT Transform on a Neuron (using Markdown)

A developer can also choose to transform the XML directly to HTML, as in the traditional case. Still, on the Neuron, this transform would be performed on the server:

XSLT Transform on a Neuron (directly to HTML) title=
XSLT Transform on a Neuron (directly to HTML)

An added benefit of transforming the content on the web server, is that you get consistent results regardless of browser used to view the page.

#web, #xml, #xsl, #markdown, #new, #features


Embedding PDF Documents in Markdown

It is now (from build 2025-07-24) possible to embed a PDF document into a Markdown page using a simple code block. The basic syntax is as follows:

```application/pdf:PDF Document
JVBERi0xLjcNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL....
....
```

The code block is rendered to an embedded object in HTML (<embed/>), which, if the browser supports this tag, will display the PDF document directly embedded in the text.

This can be used for multiple purposes:

  • Sharing and displaying documents in posts or documentation.
  • Using PDF documents in KyC.
  • Uploading PDF documents to smart contracts, for documentation purposes.
  • etc.

Example:

This makes it seamless, for instance, to include PDF documents in idendity applications. It will be displayed embedded in the application for the operator:

PDF Document in Pending Identity Application view
PDF Document in Pending Identity Application view

#new, #features, #pdf, #neuron, #markdown, #kyc


Posts tagged #features

No more posts with the given tag could be found. You can go back to the main view by selecting Home in the menu above.