SecureSign

SecureSign

Mantle-backed esignature requests for everyone|.

The problem SecureSign solves

SecureSign is a prototype web3 implementation of esignature collection built on Mantle smart contracts and IPFS.

Enables Docusign-like capabilities / use-cases using web3 infrastructure.

Benefits

  1. SecureSign enables anyone to create and collect esignature against documents without a vendor agreement. A mantle smart contract is deployed for each request.
  2. Each packet of documents for esignature is made accessible at an IPFS url.
  3. When the esignature is completed, an NFT is generated that links both the signer's signature and the documents being agreed on.
  4. Signer can only sign the documents they are intended to after they give proof of humanity.
  5. Hosted documents and the request are immutable.
  6. Smart contract deployed on Mantle which marks the progress/fulfillment of the esignature request. The contract can only be marked completed by the designated signer address at time of final signature.
  7. View history of requests and completed esignatures using the knowYourCatId and covalent chain history API directly from the app.
  8. An individual in the context of the SecureSign application is the pairing of a canvas (handwritten) signature and wallet signature/address.

Technologies used

  1. Mantle: In-app deployment of the request smart contract and marked completed upon completion of the each request based on receival of signer's signature. A new Mantle contract is deployed for each new esignature request.
  2. zk.me: Enabled proof of humanity by using Anti-Sybil SDK of zk.me.
  3. nft.storage: Generation of the esignature record / proof. Attaches the final esignature/agreement to an NFT and saves a link to it in the smart contract.
  4. web3.storage: for storing files(aggrements).
  5. KnowYourCat: To make minted NFT into a CAT-agory so that its information can be fetched with ease.

Challenges I ran into

I faced issues with integration of KnowYourCat protocol on mantle testnet. Even after creating a CAT-egory contract I could get the data in mantle testnet, strangely it was working on mantle mainnet. It was aggregating data correctly for my address. I could figure out the problem, so I also add covalent as an alternative to fetch history of transactions.

Discussion