Q1 2019 Report

During this quarter Luciap Technology Inc. fulfilled all the mandatory tasks that fall to Factom Authority Node Operators:

  • We have participated in every vote that involved ANOs. We have also weighted our technical vision in several governance discussions.
  • We have been continuously running our fleet of mainnet and testnet servers with high availability. We are generally among the very first to update to the newest factomd versions due to our involvement in the Core and code deploy committee.

Luciap is operating at 50% efficiency (unchanged since election) and here is the list of extra activities we have been performing during this quarter which we believe justify our efficiency:

Software development

  1. We have finally released the version 1.0 of factom.js! If you want to integrate with Factom in a Node.js application or in the internet browser, this is the library you need. A lot of efforts have been put in to make it very easy to use with many high level functions. The code is fully open-source, with code following the current highest standards of JavaScript development and with over 92% of code coverage. We promised to deliver an enterprise-grade library and we believe this achieves that goal.
  2. We wrote a comprehensive walk-through tutorial on the Factom Protocol developer portal for learning how to write your first Factom application in JavaScript. This should allow any developer to quickly ramp up on Factom fundamental concepts and operations.
  3. We have been providing technical support for factom.js to a company looking to integrate Factom in their wallet application.
  4. We released the npm package joi-factom, an extension for JOI, a popular object schema validation library. It allows to validate Factoid addresses, Entry Credit addresses and digital identity keys.
  5. We released factom-keystore, a pure JavaScript key store that supports all the kind of keys used in the Factom ecosystem. It is a simple and safe (using xsalsa20-poly1305 authenticated encryption) component to use in your JS application that would require storage of Factom keys. It will be the keystore used in the FAT Wallet. Working on this project also lead us to make open-source contributions to other software inside and outside the Factom ecosystem.
  6. During the first grant round of 2019 we released a small web app that helped standing parties rank the grants and facilitate good judgment.
  7. We published a brand new version of our experimental tool factom-storage (which allows to store whole files on Factom). We revamped the underlying design based on the knowledge we gathered during the last year working on the on-chain voting and FAT protocols.
  8. We made a new PR to factom-walletd to add a small feature. Not much other “core” contribution recently, but we now have some great new core developers (from grants) working full time on that!
  9. Additional developer time has been invested in one library and one dev tool that will be announced when finalized (nothing secret, as usual this is open-source, the work is already visible on github).

Community involvement

  • Core and code deploy committee: as part of our continuous involvement we often act as the guinea pig for new releases both on testnet and mainnet. We also perform load testing on the testnet. And finally we participate in all internal discussions on bugs, improvements and next releases.
  • We joined the on-chain governance working group meant to pave the way for a more transparent and inclusive governance (e.g involving FCT holders).
  • We also joined as tech enthusiasts two technical discussion groups meant to discuss and develop new capabilities and usage on Factom.


  • We updated our factom-vote library to allow the support of Ledger S when voting on MyFactomWallet. This is an additional feature that was not pledged in the grant.
  • The on-chain voting grant has been officially delivered. Please read the report from our grant sponsor.
  • A massive amount of our time during this Q1 2019 was spent on the Factom Asset Tokens project (FAT). At present this is the #1 project we are investing time in. As a FAT Editor we are involved in the design of the various aspects of the protocol. And as developers we are focused on building the FAT wallet: a new wallet supporting all the fungible and non-fungible FAT tokens together with the regular Factoids and Entry Credits. It will also allow you to manage your Factom digital identities. We are really impatient to present an early version to the community! We will most likely talk at length of the FAT wallet in the near future. The FAT protocol is steadily maturing and very promising.

November and December Update

  • Since the last update the Factom Asset Tokens (FAT) project got awarded a grant by the community. This is currently the main project we are working on and it is taking up most of our time and effort. We are focusing on the development of a desktop wallet that will support all FAT tokens in one place, help you manage your digital identities and more. As all the work is open-source the development can be followed here. We are also participating in all technical discussions and FAT specifications improvements (FATIP).
  • We have published our first technical and educational article on Factom. It describes a handful of common design patterns (and anti-patterns) to use on Factom. This is drawn from our experience of developing Factom libraries and working on the on-chain voting protocol and the FAT protocol. We are very happy with the reception it got and will produce more in the future.
  • We have been finalizing version 1.0 of factom.js. A Release Candidate version is already available for download and we now have a full online documentation. The official 1.0 release should happen within the next few weeks and will be the results of months of refinements and feedback from users.
  • We worked on a factomd issue. This is worth a look to see a good example of community cooperation: the feature request was made by an ANO member, we proposed to take on the task and Factom Inc. employees answered to our questions to facilitate the implementation. The feature will be available in the next release of factomd. Speaking of contributions to Factom software, if you haven’t seen Factom Inc. November technical update, all the “community contribution” mentions here were made by Luciap Technology 😉
  • We have been working on an update of our Factom identity JavaScript library to support the upcoming digital identities on Factom developed by Factom Inc. We based our implementation on the current specification and we already used it in the on-chain voting system and the FAT wallet. This update will be released once Factom Inc. themselves release officially the new version of factom-walletd supporting those digital identities. The documentation of the updated version is available online.
  • We published a version 0.2 of the factom-identity-cli. This brought UI improvements and some warnings about some common issues that can happen when using the tool (clock synchronization).
  • We have been doing support for the ongoing on-chain grant. We have tweaked our JS voting library to help the integration in the MyFactomWallet UI.
  • Core and code deployment committee: we reviewed the initial proposal of the Factom Improvement Protocol (FIP) produced by Niels Klomp.

We wish you all a great holiday season and we are looking forward for another prolific year of Factom development! See you in 2019!

October update

  • As part of our ongoing work for the on-chain voting grant:
    1. We finished the full implementation of the voting protocol in JavaScript. The library is open-source. It will be in particular integrated in MyFactomWallet voting UI.
    2. We created a CLI tool to create a vote, participate in a vote and retrieve the details and results of a vote. Currently in beta but fully functional.
    3. We reviewed MyFactomWallet website before it got released to the community.
  • We have been invited to join the ambitious Factom Asset Token project lead by DBGrow and in collaboration with Canonical Ledgers and LayerTech.

    “FAT is an open source tokenization protocol built on the Factom blockchain that is efficient, modular, composable, and extensible allowing developers to layer token functionality to meet their specific use case. FAT is built around a set of open source standards that establish a pure-data tokenization implementation directly within the efficient entry chain structure of the Factom blockchain.”

    Paul (@luap) became an Editor of the project and has started contributing to specifications together with other Editors. A grant to fund the work on this project has been submitted, please have a look and feel free to give your feedback in the forum thread.

  • We are really proud to say that we became the first non-Factom Inc. contributor to the Factom software! We are happy and grateful that Factom Inc managed to unlock the situation regarding external contributions. The code change in question is about adding CORS settings to factomd and is visible in this pull request. This new feature will be available as part of the next release of factomd.
  • In line with the above, we also jumped on the opportunity to propose a fix for a bug present in walletd. The contribution was accepted and merged, it will be part of the next release.

August & September update

  • The work on the Facton on-chain voting grant has been what has keep us the most busy during those 2 months. We actively participated in the writing of the final version of the specification that can be found here. Luciap is also responsible for the implementation of the spec in JavaScript and you can find the code repository here. By the end of this week the full implementation will be available. This library will be in particular used in the MyFactomWallet website to create and sign vote entries in the browser. For a general update on the on-chain voting grant and the rest of the work being done by the other parties involved, please have a look at the forum thread with the updates of our sponsor.
  • We extended our tool factom-identity-cli to allow the submission of coinbase cancel messages. Until then there was no existing tool to trigger this functionality of the Factom protocol.
  • We organized a coinbase cancel exercise on the testnet in real conditions. The exercise was successful in the sense that enough ANOs participated and we managed to cancel a coinbase output. But it also highlighted a bug in the protocol regarding the threshold at which the coinbase cancel is effective (1/4 of the authority set instead of 1/2).
  • We released version 0.3 of factom.js in August (at the time we speak we are at version 0.3.5). Version 0.3 was focused on the utilization in a web browser with a work of optimization on the dependencies of the library to make it lighter, among other things.
  • We reviewed the technical design and API definitions of the identity and standing parties functionality being developer by Factom Inc.
  • Active participation in the discussions of the “Core and code deploy” committee.

July 2018 update

  • On-chain voting system: the grant issuance has been postponed multiple times during the month of July. As we speak grants are supposed to be paid out on 6th August. Nonetheless Luciap already met few times during the month with the other parties of the project to plan for the work and iron the voting protocol specification. We designed an initial version that is satisfying enough to start the implementation but we are still looking for a peer review by Factom Inc. It’s particularly important as the voting has some deep connection with the standing party identities being developed by Inc. We expect Luciap to start the actual implementation of the core specification in JavaScript during the month of August.
  • Our lead developer Paul (ex-Amazonian) has been ramping up on the Golang programming language by taking online courses and reading books of reference. Most of the ecosystem of software created by Factom Inc. is in Golang and the end goal here is to be able to make direct contributions to the original tools and, hopefully, to also make code changes to the core software. As a first step Paul made some code changes ([1] [2]) to allow specification of CORS domains for a factomd node. Setting CORS would allow to make calls to a Factom node directly from a browser which open doors for some interesting experimentation with have in mind. We hope this is the first of many contributions to the Factom codebase!
  • Participation in the (newly revived and active) core and code deploy committee. With the recent series of stalls there is a lot of matter to discuss here.
  • We made some brush up work on factom-storage which is a tool to store entire files on Factom blockchain. After some optimizations to make the tool more robust we managed to store a 15Mb high resolution picture on the testnet at a cost of 14,778 EC (~$14.778). Downloading the file is as easy as `factom-storage download 3865669b99fb8453905b167c8ccf5033bed3570de4ac646cb54bd7072e964caf`!
  • Small continuous improvements to factom.js now in version 0.2.6.
  • We also have started to work on a project about integrating Factom with some AWS services (Amazon cloud services) as seamlessly as possible. More details to come in the following months…
  • Luciap has changed its legal structure to become a corporation of British Columbia, Canada. To reflect this change of legal entity we rotated our payout addresses which are now FA3ng8sPtUESh97yy6MzeLmT4Azqj8PVYyg6CLxYfQnS3QC3ytKL and FA2cQhPNrQZRjUpr4hpt3WeUSWaBJDyzBzLrpUhQzdiwnmV4ApBs. You can keep track of our old addresses using https://luciap.ca/#/authority-set (and notice that we still haven’t move any FCT from there).

June 2018 update

We started this month of June by putting together an initial grant proposal: on-chain voting protocol. This grant is meant to develop a fundamental component of the Factom decentralized governance as this on-chain protocol will be used for voting subsequent grants, guide elections, amendements of the governance document, etc. It’s also worth noting that this grant is a partnership between 4 entities: the Factoid Authority, Factomatic, MyFactomWallet and Luciap. This grant proposal was submitted to the community and approved without vote against it. The actual payment of grants will happen sometimes in July. Meanwhile we have already started some planning/coordination discussions with the other teams involved in this project. The development for this grant is going to be a big part of what we are going to work on in July.

We released a straightforward web UI where anyone can see details of the identities of the authority set: https://luciap.ca/#/authority-set(if you’ve already seen it you can still have a look and see the new ANOs on-boarded the last few days) This includes in particular the efficiency of each Authority Node Operator together with their payout addresses (past and present). The goal is obviously transparency and with this info it’s fairly easy to analysis if ANOs are sticking to their campaign promises. We did our own analysis of the payout addresses of all ANOs and found that 8/11 haven’t even touched a single FCT. With this data in hands it should be fairly easy to debunk the myth that ANOs are dumping on the market ;).

Factom.js reached version 0.2.3. We got couple of new projects that started relying on it and we are very happy about that.

We extracted the core logic of our tool factom-identity-cli into a standalone  NPM package factom-identity-lib which makes it reusable by any other application that would want to deal with Factom identities. This is the package used by our authority set web page for instance. On the way we also fixed a bug that was rounding incorrectly efficiency updates…

Finally, we keep exploring the possibilities of Factom. We reached out to a young French company, NinjaLab, which specialize in cryptographic hardware security (and recently participated in the Ledger CTF) to get their point of view on the potential convergence of blockchain and cryptographic hardware. They were receptive to Factom (they liked the dLoc project) and we’ll try to devise a possible crypto hardware research grant to submit once the grants are open to the public.

May 2018 update – It all started

LUCIAP was selected among the first 21 Authority Node Operators (ANOs) on April 28th. We set up our mainnet infrastructure over the first two weeks and two of our nodes were onboarded in the authority set on May 19th. In common agreement with other ANOs we all started setting our efficiencies and coinbase addresses on May 29th. So May 2018 was the month it all started for LUCIAP.

Following our selection, we also had some administrative work to get us started. We were fortunate to find a lawyer versed in cryptocurrency and practicing in Canada, where we are located. But honestly all of this is not tremendously interesting 😊

Development work

We released a new major version 0.2 of factom.js, the JavaScript library of reference for Factom. This is an important milestone as this version comes with lot of improvements regarding stability, size footprint and performance. This is the first version we feel comfortable recommending people to use for their projects, but it should still be considered at a beta stage: lots of features and improvements are still in the pipeline. We welcome any feedback or recommendations. You can find a general changelog in this forum annoucement: https://factomize.com/forums/threads/factom-js.234/

We developed the tool that was used by Authority Node Operators to set their efficiency and coinbase address. Those are steps necessary for the ANOs to receive their compensation in FCT. Factom Inc. untrusted us with this task so it alleviated some of the work they had to do during the M3 launch. We integrated an offline mode in this tool that allows users to set their efficiency and coinbase address in the most secure environment (so that the private keys of their identities can’t leak).

We extended our factom-testnet-monitoring tool to allow to compute aggregated metrics about Factom blockchain. That was some work related to our involvement in the Testnet monitoring working group. This was requested by the Testnet Admin to add metrics to his monthly report. Please note that the tool and script can actually be run against mainnet blockchain…


We were involved in multiple (mostly technical) discussions on the Factomize forum:

LUCIAP Factom identities

LUCIAP Factom identities of our authority nodes are:

  • 888888aac90d34ba84830046be9bdbc0c12d39045ce8f3f6c95f0beca4636629
  • 88888852a0821dd227735c50c5016741de67786432b9644c5d695b5ce7e42e58

As of today, the efficiency of both nodes is set to 50% in accordance with our campaigning document. Also, our two FCT payout addresses are: FA3F2aHx5hjmFpx1ySZeJgZHCzp1apg5rFfkvkgiKkq83Zrc95qv and FA2JS2Qdn5X2xYiM3xuu9hEJQEMBsVrCQsD7iSFR3kS6TvZvJyAu. All of this is publicly auditable directly in Factom blockchain.