# Delegate Attestation Creation

Through this tutorial, we will utilize direct interaction with the Sign Protocol [Smart Contract](https://docs.sign.global/for-builders/index-1/index/index/index/isp) and the [NPM SDK](https://docs.sign.global/for-builders/index-1/npm-sdk).

### Problem Statement: Delegate Attestation Creation

There are two main reasons for delegate attestation creation: when initiated offchain, delegate attestations allow your backend to pay the gas fees for your users; when initiated onchain, delegate attestations allow your smart contract to create attestations on behalf of wallets interacting with it. This tutorial assumes you have a schema created and know how to create an attestation. Any schema will work; if you need help getting started, refer to [Building a Simple Notary Platform](https://docs.sign.global/for-builders/getting-started/tutorials/building-a-simple-notary-platform).

This tutorial will be split into two parts - a JS backend and a Solidity contract. Both parts will require shared code to be placed into your frontend for requesting a delegate signature from users.

### Finished Code

The finished code from this tutorial can be found in our examples repository [here](https://github.com/EthSign/sign-protocol-examples).
