Skip to content

GOSH Web

GOSH Web is also a good way to get started with GOSH.

It implements GOSH repository management as a simple web interface.

You will be able to create your GOSH account and Decentralized Autonomous Organization (DAO), set up and manage repositories. Repositories stored in GOSH can then be interacted with like any regular remote repository, with a few small configurations to git, making decentralized code management easily available to anyone.

Working with account

Create account

To get started with GOSH, you need an active Github-account.

Click Create account with Github to start registering on GOSH

After click Authorize gosh-sh

Info

The special GOSH DAO Bot will help with registration in Gosh. It will deploy your DAO and upload your selected repositories to GOSH.

In the list of organizations received from Github, click on the organization

and select repositories for upload into Gosh.

Do this for each organization for which you want to upload repositories to Gosh.

Danger

After registering on GOSH you will not be able to return to this step in this release.

This will be available later

Info

If you want other GOSH users to be able to find you by your email, give permission.

Then click Upload

​If you are familiar with blockchain, you know what to do with a seed phrase.

If you're new to blockchain, all you need to know, is that this is the key to your account and all your assets on GOSH. Your public key, which can identify you on the blockchain and the secret key you'll use to sign your actions can always be calculated from your seed phrase.

To create the GOSH-account, the seed phrase will be generated for you. If you already have the GOSH-account, click Clear and enter your own one seed phrase.

Info

Your seed phrase will be used to log into GOSH.

Danger

Write your seed phrase down and store it somewhere safe, and never share it with anyone. Avoid storing it in plain text or screenshots, or any other non-secure way. If you lose it, you lose access to your assets. Anyone who gets it, gets full access to your assets.

Once you have written down your seed phrase, click Continue.

Then choose your username in GOSH. This is your unique cryptographic identifier in Gosh.

Danger

Please note that after creating your username it will be impossible to change it in the future.

if your username is already taken, please choose another one.

Warning

The username must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

And click Create account.

When entering the GOSH will ask you to set up a PIN code:

Info

Set a new PIN code for each new session.

And unlock with PIN code.

Warning

If the name of the organization or repository already exists, you will receive the message. Change the name, click save changes and confirm the action with a pin code.

The Organizations page will open after your account is created.

Info

When the repositories are uploaded, a notification will be sent to your email.

Follow the link in the letter.

Enter the saved seed phrase and click Sign in.

Also set up a PIN code and unlock with PIN code.

View Public Key

A user needs to know their public key, for example, when joining an organization.

To view your public key go to the main page of your account and click Settings.

Danger

Avoid storing your private key and seed phrase in plain text or screenshots, or any other non-secure way. If you lose it, you lose access to your assets. Anyone who gets it, gets full access to your assets.

Working with DAO

​Once created, your organization will appear in the organization list. Click on it to continue.

The first mandatory member is the GOSH DAO Bot. It will synchronize repositories with github on Gosh.

The second member is the creator, identified by their username.

At any later time the list of members can be expanded by voting.

Create Organization (DAO)

Click Сreate new DAO button in the Organizations section.

On the DAO settings page that opens, input:

  • Organization name

    Warning

    The Organizations name must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

  • Organization picture

    The icon will be generated automatically.

  • Theme tags

    You can add up to 3 tags separated by spaces. According to them, GOSH users will be able to find your DAO.

  • Description

    A short description that can be seen on the DAO tab under the heading.

    The extended description can be added to the Readme file into _index system repository from the Overview page after creating the DAO.

  • Total supply

    You also need to enter the number of tokens that will be issued for this DAO.

    The maximum value of the total supply can be the number 2^128.

  • Allow mint

    This is a permission to emission DAO tokens. It is enabled by default.

    In the future, it will be possible to disable the emission of DAO tokens through proposal and voting in the Settings section.

    Warning

    If you uncheck this option, the number of tokens issued for this DAO will be capped to the number entered during the initial setup

Click Create organization.

The DAO tab will open after its creation.

Overview of the DAO

All information about your DAO and its activities will be displayed here.

Information about DAO assets is displayed on the right.

  • DAO total supply - the total issue of tokens of this DAO.

  • DAO reserve - unallocated tokens.

    Push on the Send button, you will create an proposal to transfer tokens from the DAO reserve to the DAO member.

    Push on the Mint button, you will create an proposal to mint additional tokens for this DAO.

  • Your wallet balance - the amount of tokens you have in this DAO.

    Info

    When creating a DAO, 20 tokens from the DAO reserve will be issued to your wallet.

    Push on the SEND button, you will to transfer your tokens to the DAO reserve or to the GOSH user.

  • Karma - the amount of tokens (upper limit) within which a DAO member can vote.

    It is assigned when accepted as a member of the DAO. This determines the reputation of the DAO member. The Karma can be changed only by voting.

  • Members - total number of DAO members.

    From here you can also send an invitation to become a member of the DAO.

  • Recent proposals

Information and status of the recent proposals will be displayed in this section. Click on the name of the proposal you can go to the event page and vote.

  • DAO system repository

The _index is a DAO system repository that is created automatically.

Info

After creating the DAO, it will already contain a text file with a brief description of your DAO, which you added in the settings earlier.

To add a README for your DAO, go to the _index repository or follow the link in this section.

Make sure you are in the main branch and click Add file button.

Enter file contents and name.

You can use Preview if needed. MD syntax is supported for preview.

After scroll down and enter commit info:

  • Commit description - you can add a description of your commit;

  • Commit tags - this is a mutable pointer of the commit. You can add the tag to quickly go to this commit and see what has been done;

  • Select a task - if you want to attach your commit to the solution of the Task, then select the desired task from the list;

  • and add Assigners, Reviewers and Managers if necessary.

If a Task has been selected, check the Create proposal box.

And click Commit changes

After that a proposal to the pull request will be created.

When the proposal to the pull request is accepted, the description of the DAO will appear on the Overview tab.

DAO Set up

You can continue with the initial setup the DAO in the Settings tab.

In the Token Setup section, you can create a proposal to ban the issue of tokens from this DAO by unchecking the box.

Warning

After the ban on the issue of DAO tokens, it will be impossible to allow the issue.

In the Proposal setup section you can enable/disable the option to view the voting results before it ends.

And also allow or prohibit discussion when working with proposals.

In the Members setup section you can grant or deny external users the ability to request membership in this DAO.

Then add a comment on changing the settings for other members of the DAO and click Save changes and start proposal.

Info

All settings and actions in the DAO will be performed the voting procedure.

Upgrade

Basic information

When a new version of contracts is released in GOSH, the user needs to upgrade their contracts.

The upgrade is initiated by the proposal.

Warning

Make sure that the proposal for such an update has not yet been created.

Info

Complete all proposle before starting the upgrade. All uncompleted proposals will be rejected and will not be transferred to the upgraded version.

You can see a message about the availability of a new version and an invitation to update in the DAO.

Depending on which version you currently have, choose the appropriate update method.

It is recommended to upgrade to the latest version.

Info

All token holders after upgrading the DAO must transfer their tokens from previous versions.

From version 1 to version 2

You can switch to the Upgrade section from the new version message or go to the Settings tab.

Select the version you want to upgrade and click Create proposal for DAO upgrade:

You will be taken to the DAO tab with events.

After accepting the proposal, the procedure for updating your DAO will begin.

Then you need to update all the Repositories.

To do this, go to their tab and click Get repositories

and then click Start repositories upgrade to create a proposal.

On the DAO tab, vote for the proposal to create a repository.

After the proposal is accepted, the contract version will be upgraded.

From version 2 to version 3

The Tasks were added in contracts version 2.

Uninitialized Tasks will not be migrated to the new version. You will need to create these tasks in the new version.

Warning

Before starting the update make sure that there are commits in the Tasks.

Go to the Settings tab or follow the link in the upgrade message.

Select the version you want to update and click Create proposal for DAO upgrade

You will be taken to the DAO tab with events.

Inside the event, you can get acquainted with the details of the proposal.

After accepting the proposals, the DAO update process will begin.
Before continuing, you need to transfer your tokens.

To do this, go to the Overview tab in the Your wallet balance section and click Transfer from previous version.

You can also do this on the Members tab.

Then you need to update the DAO repositories and tags.
To do this, click upgrade in the information message

and go to the repository uprade page.
Click Get repositories.

Then click Start repositories upgrade to create a proposal.

The process will be displayed below:

As a result, you will be redirected to the DAO events page.

The details of the Multi proposal can be found at the event.

Then click tasks upgrade page in the information message

and click Start tasks upgrade on the page that opens.

You will be taken to the DAO tab with events.

After accepting the proposal, the tasks will be transferred from the previous version and the contract upgrade to version 3 will be completed.

From version 3 to version 4

Uninitialized Tasks will not be migrated to the new version. You will need to create these tasks in the new version.

Warning

Before starting the update make sure that there are commits in the Tasks.

Go to the Settings tab or follow the link in the upgrade message.

Select the version you want to update and click Create proposal for DAO upgrade

You will be taken to the DAO tab with events.

Inside the event, you can get acquainted with the details of the proposal.

After accepting the proposals, the DAO update process will begin.
Before continuing, you need to transfer your tokens.

Info

Starting from the 5th version, tokens are transferred automatically.

Warning

If, at the time of the upgrade, you still have tokens that were locked into voting in previous versions of the DAO, then these tokens will be transferred only after the expiration of the proposal.

If you have a DAO version lower than the 4th inclusive, then to transfer tokens go to the Overview tab in the Your wallet balance section and click Transfer from previous version.

You can also do this on the Members tab.

Then you need to update the DAO repositories and tags.
To do this, click upgrade in the information message

and go to the repository uprade page.
Click Get repositories.

Then click Start repositories upgrade to create a proposal.

The process will be displayed below:

As a result, you will be redirected to the DAO events page.

The details of the Multi proposal can be found at the event.

Then click tasks upgrade page in the information message

and click Start tasks upgrade on the page that opens.

You will be taken to the DAO tab with events.

After accepting the proposal, the tasks will be transferred from the previous version and the contract upgrade to version 4 will be completed.

Proposals and voting in SMV (Soft Majority Vote)

Actions that require a DAO vote are performed by creating a proposal.

Warning

To create an proposal, you must have at least 20 tokens on your wallet balance.

  • Disable minting DAO tokens
  • Change DAO member Karma
  • Allow event discussions
  • Show event progress

To vote for the proposal, some of your tokens must be be allocated to SMV (once the proposal is completed), you can get them back.

Info

You can vote for a proposal only once.

For example, to merge into main, create a pull request from some other branch. A proposal will be generated and will appear on the DAO tab.

Open the proposal and review the contents.

The voting period is indicated on the proposal page. This is the time allotted for voting.

Unless a decisive majority of >50% Global Karma Count is achieved early, votes will be counted at the end of this period.

Info

Global Karma Count is the total amount of Karma calculated by summing up the Karma of all DAO members at the time of the proposal creation.

Once you have made a decision, input the amount of tokens, select Approve or Reject and click Vote for proposal. Vote registration can take a bit of time.

Info

As per the rules of Soft Majority Voting, to have a proposal approved early, you need at least 50% of the total supply of tokens in the repository + 1 token used to vote for the proposal.

For example, in a repository with two members, where the total supply of tokens is 200, 101 token needs to be used to instantly approve a proposal. Thus with every member holding 100 tokens a proposal can never be instantly completed without the participation of members other than the proposal's author.

On the other hand, so as not to depend on all members of an organization to vote, soft majority vote will complete with an approval at the end of the voting period, if 10% of the total token supply were used to vote for, and no one voted against.

The more tokens are sent against the proposal, the higher the approving amount needs to be (up to 50% of the total supply + 1 token) for the proposal to pass.

Other members of the Organization, who have transferred their tokens to SMV, will be able to vote for the proposal on this page in their own accounts.

Info

Currently, even in organizations with a single member, voting still takes place when a proposal is created. 51 tokens are needed to approve a proposal in such a repository.

Once a majority has been reached early, or the voting period ended and the soft majority vote result was decided, the proposal completes and the proposed action is performed.

Working with tokens and Karma

Additional minting of tokens for DAO

Warning

The option allowing the minting of DAO tokens must be enabled on the Settings tab in the Token Settings section.

Click on the Mint button on the right on the Overview tab in the DAO Reserve section. You will create an proposal to mint additional tokens for this DAO.

In the window that appears, enter the amount of tokens to emission and add a description of the DAO members. Then click Create proposal to mint tokens

After creating the proposal, you will be redirected to the DAO tab with events.

Inside the event, you can get details of proposal.

After the proposal is accepted, the changes will take effect.

Additional voiting tokens and Karma

Any member of the DAO can send a request to change Karma.
To do this, go to the Members tab and change the number of Karma and token balance of one or more DAO members, including for yourself.

Warning

To create an proposal, you must have at least 20 tokens on your wallet balance.

Warning

Be careful when distributing karma among the members of the DAO.
Avoid the possibility of a preponderance in the votes of one of the DAO members.
To avoid a situation where one participant will be able to transfer the entire balance of the DAO to his wallet.

Then click Save changes and create proposal.
As a result, a Multi proposal will be created and you will be redirected to the event tab Dao.

Inside the event, you can get details of Multi proposal.

After accepting the multi proposal, the user will receive tokens and Karma from DAO reserve. This can be seen on the Members tab.

Transfer of tokens from DAO reserve

Tokens can be sent from the DAO reserve to

  • a member of this DAO;
  • any GOSH user, who has visited this DAO at least once.

To do this, on the Overview tab in the DAO reserve section, click Send.

In the window that opens, enter the name of the GOSH user or the name of the DAO and the amount of tokens to send.

If you want the recipient's Karma to increase jointly with the token balance, then check this box.
Also write a description for the token transfer. This will help the DAO members to make a decision when voting.

Warning

Be careful when distributing karma among the members of the DAO.
Avoid the possibility of a preponderance in the votes of one of the DAO members.
To avoid a situation where one participant will be able to transfer the entire balance of the DAO to his wallet.

Then click Create proposal to send tokens

After creating the offer, you will be redirected to the DAO page with events.

Inside the event, you can see detailed information about the proposal.

After the proposal is accepted, the tokens will be transferred to the balance wallet of the GOSH user or DAO.

Transfer of tokens from user's wallet

Tokens can be sent from the DAO reserve to

  • a member of this DAO;
  • any GOSH user, who has visited this DAO at least once.

Info

Only regular tokens are transferred. You will not be able to vote with such tokens.

To send tokens from your wallet to the DAO, go to the Overview or DAO tab on the Your wallet balance section and click Send.

In the window that opens, enter the name of the member of the DAO and the amount of tokens to send. Then click Send tokens

After that, the tokens will be transferred to the recipient's wallet balance.

Working with DAO Members

Adding Members to DAO

Membership in the DAO can be obtained in several ways.

The user can be invited to the DAO using a special form or by an invitation link.

Also, the user can independently create a membership request in the DAO.

Info

Adding a member to the DAO is possible only through an proposal.

Depending on the chosen path, tokens and Karma will be distributed immediately after acceptance proposal, or additional proposals will need to be created for this.

Adding by GOSH username or e-mail

A DAO member can create a proposle to add GOSH user into the DAO.

To do this, go to the tab Members in the section Invite user to DAO.

  • If you know the GOSH username, then enter it.

  • If you don't know the name or the user doesn't have a GOSH account yet, enter their email address.

Info

The email address will change to the GOSH username if the user has given permission during registration so that it can be found by email.

Offer the amount of karma for him and please comment your decision.

Info

You can send an invitation proposal to several users at once.

And click Send invite.

Info

At the same time, a multi proposal will be created to add DAO members and provide voting tokens.

Go to the DAO tab and select the desired event for voting.

You can invite a user to the DAO by generating an invitation link for them.

Warning

Enable "Allow external users to request DAO membership" option in DAO settings to enable invites by email/link.

To do this, on the tab Members in the section Invite user to DAO click on Get one-time invitation link.

Info

The link to the invitation can only be used one time.

All active invitation links will be displayed in the section on the right.

When the invited user creates a membership proposle in the DAO, the link entry disappears.

You can also deactivate the link click on the Revoke.

When the user clicks the link, they will be able to create an account or log into GOSH.

Then input a short nickname or and click Create account and continue.

Enter a short comment who are you and click Accept invitation.

On the event page that opens, you can find a request for your acceptance as a member of the DAO.

Click on it you can track the results of voting and discussions.

After the proposal is accepted, its status will change to Accepted

Info

You will be able to request voting tokens after you are accepted into the DAO by creating your proposal.

Request DAO membership

You can create a membership request in the DAO yourself. To do this, you need to know the link to this DAO.

Info

Only a registered user will be able to create a membership request.

Follow this link and you will see the overview tab of the DAO you are interested in.

Click Request membership.

In the window that opens, write who you are and why you want to become a member of this DAO. This description will help the members of the DAO to make a decision when voting.

Then click Create proposal.

On the event page that opens, you can find a request for your acceptance as a member of the DAO.

After the DAO members vote, the status of your request will change to Accepted or Rejected

You can follow the voting and discussion by opening the event.

Delete Members from the DAO

To delete a member from the DAO, go to the Members tab and click on the cross to the desired member.

Warning

To create an proposal, you must have at least 20 tokens on your wallet balance.

Confirm the deletion by clicking OK.

As a result, a Multi proposal will be created and you will be redirected to the event tab Dao.

The details of the multi proposl can be seen by going to it.

After voting and accepting multi proposal, the user will be deleted from the list of members of the DAO.

The Karma of the deleted user will be equal to 0.
But the tokens, if they were, will stay on the balance of the user's wallet.

Then click Save changes and create proposal.
As a result, a Multi proposal will be created and you will be redirected to the event page Dao.

Inside the event, you can get details of Multi proposal.

After accepting the multi proposal, the user will receive tokens and Karma from DAO reserve. This can be seen on the Members tab

Delete Members from the DAO

What's next?

Set up Git Remote Helper and continue working with your repository.

You'll need your wallet credentials. Go to the main page of your account and click User Settings.

Scroll down to the Git remote config section, click Show and unlock with PIN code

Download the configuration file by clicking on the icon
and save it to folder ~/.gosh

To view the command to clone your repo, click the Clone button on your repo page.

Working with Repository

Create Repository

To create a repository in your DAO click Create new in the Repositories section or Overview section.​

Enter repository name and its description and click Create repository.

Warning

The repository name must contain only Latin letters, numbers,hyphen, underscore character( a...z, 0...9, -, _ )

A page with DAO events will open for you.

Open the event click on its name.

The page that opens displays the name of the proposal, its status, and the time of creation and as well as the end of voting.

The scale shows the number of votes for the proposal and against.

Specify the number of tokens less than or equal to your Karma for voting and accept or reject this proposal.

Add your opinion about the proposal to the discussion below and click Send vote

The created repository will appear in the list on the Repositories tab.

​Create Branch

Repository is created with default main branch. To create another branch, click on the branches counter.​

Select the branch to be forked, enter new branch name, and click​ Create branch.

Warning

The branch name must contain only Latin letters, numbers, hyphen, underscore character ( a...z, 0...9, -, _ )

Once the branch is created, it will appear in the branches list.

Switch to it via drop down list.

Create File

To create file, click Add file button.

Enter file contents and name.

You can use Preview if needed. MD syntax is supported for preview.

After scroll down and enter commit info:

  • Commit description - you can add a description of your commit;

  • Commit tags - this is a mutable pointer of the commit. You can add the tag to quickly go to this commit and see what has been done;

  • Select task - if the branch is not protected and your file is a solution to a problem, you can choose a particular task;

  • and add Assigners, Reviewers and Managers if necessary.

and click Commit changes

If the branch you are working in requires no voting to confirm commits, the file will be added. Otherwise a DAO vote will be initiated.

Commit status will be displayed below.

Create Pull Request

Click on the Pull requests tab and set up the pull request: what branch to merge from and to. Once selected, click Compare.

The branches will be compared. Review the changes, set up the pull request and click Commit changes.

Info

Note: When merging into the main branch, and in some other cases (depending on DAO setup), a DAO proposal will be initiated by trying to commit.

Organization Tokens have to be sent to the DAO Soft Majority Vote contract to start a proposal for DAO members to vote on.

Add protection for a branch

If you want the changes to be added to the branch based on the voting results, then add protection to the branch.

This can be done by creating an appropriate proposal.

To do this, go from the Repositories tab to the repository you need.

Then, on the Branches tab, click the Protect button for the branch to which you want to add protection.

After creating the proposal, you will be redirected to the DAO page with events.

Inside the event, you can get details of proposal.

After the proposal is accepted the branch is marked as protected.
A commit can be made to it only by voting.

Remove protection for a branch

If the branch no longer needs protection, you can remove it by initiating appropriate proposals.

To do this, go from the Repositories tab to the repository you need.

Then, on the Branches tab, click the Unprotect button for the branch to which you want to add protection.

A vote will be created and you will be redirected to the DAO page with events.

Inside the event, you can get details of proposal.

After accepting the proposal, the protection mark will be removed from the branch.
Now everyone can upload changes to the branch without voting.

Adding comments to file

You can add a comment to any line in the file.

Info

Comments are linked to a specific comment.

To do this, open the file and hover over a line or block of lines and click on the blue icon that appears on the left.

In the window that opens, enter your comment and click on the blue circle with an arrow to send it.

The comment line will be marked with a red icon on the left.

A thread of comments and replies to them will open on the right.

The discussion can be resolved. To do this, click the appropriate button:

Info

The discussion can be resumed if a new comment has been added to it.

Up to 3 discussions can be expanded in one line. You can switch between them.

Adding comments to Pull Request

You can also add comments to Pull Request. To do this, go from the DAO events page to the Pull Request vote in the Pull request diff section. you can leave comments on any line or block of lines in the same way as in commenting on a file.

Working with Task

Create Task

To create a Task, go to the Tasks tab and click Create Task

Then you need to fill in the Task conditions.

The result of the Task should be a pull request to include changes in the repository.

Select the repository for which the Task is being created.

Add the Task name.

You can add 3 tags separated by spaces to quickly find the task.

Then you need to evaluate the Task.

Task cost is the number of tokens that will be paid from the DAO reserve for its execution.

Info

The members of the DAO agree between themselves how to evaluate the Tasks.

After attaching a pull request to the Task, the tokens will be distributed between the author, reviewer and manager in the ratio you set.

Commit author - the person who executes the Task.
Reviewer - the person who checks the correctness of the Task.
Manager - the person who manages the Task execution process.

Info

The number of authors, areviewers and managers is set at your choice.

Select vesting and lock periods.

Lock (cliff) - the period after which the reward payments will begin. The countdown will start after accepting the proposal about completing the Task.
Vesting - rules for transferring the fixed part of the tokens to the disposal of the contractor.

For example, lock - 12 months, vesting - 2 months.

Warning

In order for the investment scheme to be correct, the smaller of the number of tokens allocated to the members of the task must be a multiple of the number of months of investment.

Add a comment the token distribution rules and click Create task and start proposal

After creating the proposal, you will be taken to the DAO tab with events.

Inside the proposal you will be able to see all the conditions of the Task.
In the table you can see the period since which month and in what parts the payments will be made to the members of the Task.

After accepting the proposal, the Task will appear in the list on the Tasks tab with the status Awaiting commits.

Info

When creating a Task the tokens (Task cost) from the DAO-reserve are written off and reserved on the Task-contract.

When the Author has completed the Task, he adds it to the commit.

Info

If you need to make several commits to complete a Task,, create a separate branch.

And do Select task when creating the proposal to the pull request.

Select the Task performed(s), reviewer(s), manager(s) if they worked on the task. The allocated shares of those who were not specified will be returned to the DAO-reserve.

After that a proposal to the pull request will be created.

Detailed information can be viewed by going to it on the DAO tab with events.

If the reviewer was specified during the commit, the event will wait for verification from them.

Then, after the reviewer send the solution, it will be possible to vote for the proposal.
When the pull request is accepted, the Task status will change to Confirmed.

After the lock period ends, the members of the Task can receive a reward. To do this, go to the Tasks tab in the completed Task and click Claim reward.

Note

If Lock period (cliff) has been set to zero, then you can click Claim reward immediately after accepting the pull request.

Thus the tokens will begin to be transferred to the wallets of the members of the completed Task in accordance with the vesting scheme when the lock period ends.

Deletе Task

To delete a Task, go to it on the Tasks tab. And click to Delete task

After creating a proposal about deleting a Task, you will be redirected to the event tab Dao.

When the proposal is accepted, the Task will be deleted.
The tokens allocated for this Task will be returned to the DAO reserve.