LogoLogo
  • 🤝Welcome To Agnostico Protocol
  • Introduction
    • 👩‍🏫Overview
    • 🚀Mission
    • 🧩Composable Contracts
    • 🎨Early Access NFTs
  • HOW IT WORKS
    • ✡️Sharing Your Code On Agnostico
    • 💠Deploying Code From Agnostico
  • USE CASES
    • 🌀For Developers
    • 🧊For Non-Developers
  • Q&A
    • ⭐General
    • 💸Fees And Royalties
    • 💫Community
  • COMPLIANCE
    • ⚠️Terms And Conditions
    • 🔐Privacy Policy
  • COMMUNITY
    • 💬Telegram
    • 🐦Twitter
Powered by GitBook
On this page
  • Steps To Share Your Code
  • Prerequisites
  • 1. Authentication
  • 2. Add Code To Share
  • 3. Add AgnoDoc To Agnostico Factory Contract
  1. HOW IT WORKS

Sharing Your Code On Agnostico

PreviousEarly Access NFTsNextDeploying Code From Agnostico

Last updated 2 years ago

Steps To Share Your Code

Prerequisites

  • A Github Account (Create one if you don't already have one, you can click .)

  • Basic to Advanced knowledge of solidity (agnostico currently supports only .)

  • Basic knowledge of

  • A non-custodial wallet browser extension. recommended.

1. Authentication

a. Click on the Share navigation button on the top of the page as shown below

b. Click on the github signin button. You will be redirected to github to sign in

2. Add Code To Share

Two documents are required to share your code: The first is the contract code file itself; the other one is Agnostico Document Standard or “AgnoDoc”! However, both documents have strict rules for them to work on the platform after you share them. Let's explore both documents below:

  • Contract

    Uploading your contract file from the platform is optional, the essence is to get the Content IDentifier (CID) of the file uploaded.

    • Must be a .sol file

    • Must be able to compile in solidity ^0.8.0.

    • Must not accept dynamic values from the constructor (Agnostico doesn't currently support upgradable contracts)

  • AgnoDoc

    This Document must be uploaded on the platform, its CID will be used in the Agnostico's contract.

    • Must be a .json file

    • Must have the following fields:

      • name: The name you want to give the code you are sharing, make it descriptive and short

      • contractName: This is the name of the contract to be deployed when requested. If your contract looks like contract MyAwesomeContract is Context, Ownable {...} , Your targetContract is MyAwesomeContract.

      • creatorAdddres: This is the address of the contract creator. It is also where payment will be sent for each deployment of submitted contract

      • categories: A list of key words that relates to the contract being shared.

      • external_url: Repo where other users can find the soidity file.

      • description: A short, description of the code being shared. What it does, etc.

      • image: The CID of the solidity contract file. It should look like this “QmXEdvbMdpMP3Pun...”.

      • deploymentVariables: If your contract uses varaibles in its constructor, provide them here as an array of objects with the following properties:

        • name: The name of the argument e.g tokenName, duration

        • dataType: The type of the argument e.g string, uint256

      • category: An array of strings describing the catgories of code, e.g token, erc20, timelock

Option 2: Fill in the form

Toggle the switch button and enter all the required information and click on the “

3. Add AgnoDoc To Agnostico Factory Contract

Once you click on continue, if you haven't connected your metamask wallet from before now, you will be prompted to do so. The IPFS CID for your AgnoDoc is hashed to bytes32 and stored in the smart contract for future reference.

Congratulations if you have successfully followed up till this stage, you are officially a code provider on Agnostico. Others can now deploy your code.

Should you decide to withdraw your code from our smart contract, you can interact with the factory at the following addresses:

Agnostico uses . This is to provide transparency and consistent availability. The content of the file is used to mint NFT to the creatorAddress address in the field specified

✡️
(IPFS)
here
solidity
IPFS
Metamask