Skip to content

cbonoz/fantom23

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation




FantomSign

FantomSign is a web3 implementation of esignature collection built on Fantom smart contracts and IPFS.

Enables Docusign-like capabilities and takes advantage of the low costs, speed, and throughput of the Fantom blockchain to facilitate secure esigning on web3 infrastructure.

Submitted to the Fantom Q1 hackathon 2023 on devpost.

Try it out here! (note: requires Metamask connected to Fantom testnet or Fantom Opera).

Demo video: https://youtu.be/v6PPFMlGXYA

Benefits

  • FantomSign enables anyone to create and collect esignature against documents without a vendor agreement. A fantom smart contract is deployed for each request.
  • Each packet of documents for esignature is made accessible at an IPFS url.
  • When the esignature is completed, an NFT is generated that links both the signer's signature and the documents being agreed on.
  • Hosted documents and the request are immutable.
  • Smart contract deployed on Fantom 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.
  • View history of requests and completed esignatures using the covalent chain history API directly from the app.
  • An individual in the context of the FantomSign application is the pairing of a canvas (handwritten) signature and wallet signature/address.

Technologies used

  • Covalent: Enables in-app history queries of past esignature requests and fulfillment for a given fantom address.
  • NFTPort: Generation of the esignature record / proof. Attaches the final esignature/agreement to an NFT and saves a link to it in the smart contract.
  • Metamask: Wallet connection. Follow guides to connect your metamask account here: https://docs.fantom.foundation/wallet/set-up-metamask
  • Fantom: 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 Fantom contract is deployed for each new esignature request.

To run/demo the project locally, FantomSign requires the following environment variables.

    REACT_APP_COVALENT_KEY={YOUR_COVALENT_API_KEY} # Covalent key for the transaction history page. See https://www.covalenthq.com/docs/networks/fantom/
    REACT_APP_NFT_PORT_KEY={YOUR_NFT_PORT_API_KEY} # NFT port api key for receipt creation (nftport.com)
    REACT_APP_STORAGE_KEY={YOUR_WEB3_STORAGE_KEY} # web3.storage key for web3-based file hosting.

After declaring the above environment variables, use the below command to start the project: yarn; yarn start

Recompiling FantomSign contract: cd contracts; npx hardhat compile

Example esignature requests contract: https://testnet.ftmscan.com/address/0xDDC2Fd0930150dA06f9FEC09c77aAd1675fB49a0

First transaction shown is the deployment, second is the signing.

Example request url: https://fantomsign.surge.sh/sign/bafybeibm22omnto4xi7by6vvkrkzni3tw6c5rkwk3nrpkbhl5q62qkkiia.

Example hosted document artifacts: https://bafybeibm22omnto4xi7by6vvkrkzni3tw6c5rkwk3nrpkbhl5q62qkkiia.ipfs.w3s.link/

Useful links

Screenshots

Home page

Creating a request

Request saved via IPFS (both the docs and request metadata).

Fantomsign enforces the signer is logged in with the intended address

Esigning

Signature saved as an NFT with a transaction recorded to Fantom

Completion esignature NFT

Both the creation of the request and the signature get saved as events on a smart contract

Contract source snapshot

Viewing signing history via Covalent.

Future work ideas

  • Integration with additional blockchain networks to expand the availability of the platform and its features.
  • Adding support for multi-party signature requests to facilitate document collaboration.
  • Enhancing the user interface to make it more intuitive and user-friendly, with features such as document templates, drag-and-drop functionality, and customizable branding.
  • Developing an API to allow businesses to integrate FantomSign with their existing workflows and systems.
  • Building advanced security features, such as two-factor authentication, encryption, and access controls, to enhance the platform's security.
  • Integrating with third-party identity verification services to further strengthen the platform's authentication process.
  • Native app support to allow users to connect to Fantom and complete signatures from an app
  • Expanding the platform's capabilities to include additional document types, such as contracts and legal agreements.
  • Building analytics and reporting features to provide users with insights into their esignature requests and usage.
  • Developing a feature that allows users to send reminders and follow-ups to signers who have not yet completed their signature requests. These reminders could be facilitated on web3 push networks.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors