Storsign

Storsign is a web3 implementation of esignature collection built on Storj and Oort blockchain.

Ported application of web2 to web3 that enables Docusign-like capabilities / use-cases using web3 infrastructure.

Built for the Webstack 2022 hackathon.

Categories: Everything Web3, or Next Big Thing (as the next open sourced secure and decentralized esignature solution).

Motivation

Esignature platforms like Docusign and Hellosign exist however a) Require contracts that often charge regardless of usage. b) Entrust centralized storage and service availability, without distributed network backing. c) Have large development team overhead and maintenance with costs often baked into the per-usage fee.

Storsign is an application that enables anyone to create and collect esignature against documents without a vendor agreement or expertise of web3.

  • Each packet of documents for esignature is made accessible at an STORJ url. Users are not required to connect or authorize transactions from a wallet to use the app.
  • Hosted documents and the request are immutable.
  • Request indexed on Oort which marks the progress/fulfillment of the esignature request. The contract can only be marked completed by the designated signer based on the ownership of the correct passphrase at time of final signature
  • Differs from IPFS in permissioned urls and document assets behind an S3-compatible storage backend with unique client access/secret pair.

Technologies used

Oort: Use the Oort DSS to save and store documents, signatures, and images on Storj. See code snippet at bottom of page for sample of how the storage sdk is used for saving into the Storj network.

Storj: Used as the backbone for data storage for the Storsign app. Enables permissioned access to document and image assets hosted on the network.

How to run

You can deploy Storsign to work on Storj via your own Oort DSS account!

This app requires both the client and server code to run:

Server

From the /server folder:

Define the following environment variables.

OORT_S3_URL= # (Optional) URL of s3 server - defaults to storj base url.
OORT_ACCESS_KEY= # access key of s3 server (created in Oort portal).
OORT_SECRET_KEY= # secret of s3 server (created in Oort portal).
OORT_BUCKET_NAME= # (Optional) name of app bucket - defaults to 'storsign'.

Run yarn; yarn start

The server should now be running on port 8080.

Any created requests should be visible

Client

Open a second terminal. From root project url (i.e. project home),

Run yarn; yarn start

The client should now be running on port 3000.


Potential future work

  • Production hosting of backend and client website.
  • Add per-usage fees tied to crypto/fiat payments.
  • Tracking and analytics on user accounts / enableenable history profile.
  • Generate NFTs at time of signing for the signer.

Example screenshot of a user-uploaded signature packet:

See full detail on the github here: https://github.com/cbonoz/stack22

Built With

Share this project:

Updates