-
-
Accord logo
-
Immutable request metadata uploaded to IPFS on creation
-
An instance of the signing contract is deployed to XDC with each request
-
XDC contract events (deployment and signing)
-
Message that appears when a non-designated signer views a signing url
-
Complete signing page for an authorized signer
-
Home page
-
Authorized signer using his/her signature to complete a signing request
-
New signature request flow
-
Example document that could be acknowledged (any < 5mb docs can be uploaded and bundled with a request).
Accord
Accord is a ported dapp for producing sending and accepting document agreements on smart contracts, with signatures minted as NFTs. Enables Docusign-like capabilities and use-cases using web3 infrastructure to set up and collect signed document agreements on the XDC Apothem testnet or XDC mainnet.
Try it out here! (requires Metamask connected to XDC testnet).
Demo video: https://www.youtube.com/watch?v=T6zYfxUCfjM
Benefits
- Accord enables anyone to create and collect esignature against documents without a vendor agreement. An XDC smart contract is deployed for each esignature 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 XDC marks the progress/fulfillment of the esignature request. The contract can only be marked completed by the designated signer address at the time of final signature.
- An individual in the context of the Accord application is the pairing of a canvas (handwritten) signature and wallet signature/address.
- Wallet addresses are used as the source of identity instead of traditional means like username/password pairs and email addresses. Users attempting to access an esignature request without being under the assigned signer address are denied access.
Technologies used
To run/demo the project locally, Accord requires the following environment variables.
REACT_APP_NFT_PORT_KEY={YOUR_NFT_PORT_API_KEY} # NFT port api key for NFT signature receipt creation.
REACT_APP_STORAGE_KEY={YOUR_WEB3_STORAGE_KEY} # web3.storage key for file hosting.
REACT_APP_USE_MAINNET={false/true} # (Optional) String boolean indicating whether the XDC mainnet should be used. Defaults to false (testnet) if unset.
After declaring the above environment variables, use the below command to start the project:
yarn; yarn start
Recompiling AccordSigning contract:
cd contracts; npx hardhat compile
See github for more detail, contract, and screenshots: https://github.com/cbonoz/xdc22
Built With
- ethers
- ipfs
- react
- web3
- xdc
- xdc-mainnet
- xdc-testnet

Log in or sign up for Devpost to join the conversation.