{"id":13563099,"url":"https://github.com/dymensionxyz/dymension","last_synced_at":"2026-01-21T13:01:23.324Z","repository":{"id":61624988,"uuid":"512413660","full_name":"dymensionxyz/dymension","owner":"dymensionxyz","description":"Dymension Hub","archived":false,"fork":false,"pushed_at":"2025-12-31T09:14:47.000Z","size":41449,"stargazers_count":387,"open_issues_count":74,"forks_count":423,"subscribers_count":14,"default_branch":"main","last_synced_at":"2026-01-04T13:21:26.528Z","etag":null,"topics":["blockchain","cosmos-sdk","dymension","hub","settlement-layer"],"latest_commit_sha":null,"homepage":"https://dymension.xyz","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dymensionxyz.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","contributing":"Contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-07-10T11:10:17.000Z","updated_at":"2025-12-31T09:14:35.000Z","dependencies_parsed_at":"2023-10-26T15:39:36.994Z","dependency_job_id":"4b9123a0-6c80-4504-b8ca-a6e1f1cb057b","html_url":"https://github.com/dymensionxyz/dymension","commit_stats":{"total_commits":333,"total_committers":45,"mean_commits":7.4,"dds":0.7447447447447447,"last_synced_commit":"983dd904dacc3b5a6ff5c3122b02fdbf450cd730"},"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"purl":"pkg:github/dymensionxyz/dymension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dymensionxyz%2Fdymension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dymensionxyz%2Fdymension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dymensionxyz%2Fdymension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dymensionxyz%2Fdymension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dymensionxyz","download_url":"https://codeload.github.com/dymensionxyz/dymension/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dymensionxyz%2Fdymension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28633747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","cosmos-sdk","dymension","hub","settlement-layer"],"created_at":"2024-08-01T13:01:15.168Z","updated_at":"2026-01-21T13:01:23.316Z","avatar_url":"https://github.com/dymensionxyz.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Dymension Hub\n\n![image](./docs/dymension.png)\n\n![license](https://img.shields.io/github/license/dymensionxyz/dymension)\n![Go](https://img.shields.io/badge/go-1.18-blue.svg)\n![issues](https://img.shields.io/github/issues/dymensionxyz/dymension)\n![tests](https://github.com/dymensionxyz/dymension/actions/workflows/test.yml/badge.svg?branch=main)\n![lint](https://github.com/dymensionxyz/dymension/actions/workflows/golangci_lint.yml/badge.svg?branch=main)\n\n## Overview\n\nWelcome to the Dymension Hub, the **Settlement Layer of the Dymension protocol**.\n\nThis guide will walk you through the steps required to set up and run a Dymension Hub full node.\n\n## Table of Contents\n\n- [Dymension Hub](#dymension-hub)\n  - [Overview](#overview)\n  - [Table of Contents](#table-of-contents)\n  - [Prerequisites](#prerequisites)\n  - [Installation](#installation)\n  - [Initializing `dymd`](#initializing-dymd)\n  - [Running the Chain](#running-the-chain)\n  - [Bootstrapping liquidity pools](#bootstrapping-liquidity-pools)\n  - [Adding incentives](#adding-incentives)\n    - [Creating incentives streams](#creating-incentives-streams)\n    - [Locking tokens](#locking-tokens)\n    - [Checking rewards](#checking-rewards)\n    - [Updating a community-driven distribution](#updating-a-community-driven-distribution)\n  - [Debugging Container](#debugging-container)\n  - [Developer](#developer)\n    - [Setup push hooks](#setup-push-hooks)\n\n## Prerequisites\n\n- [Go (v1.18 or above)](https://go.dev/doc/install)\n\n## Installation\n\nClone `dymension`:\n\n```sh\ngit clone https://github.com/dymensionxyz/dymension.git\ncd dymension\nmake install\n```\n\nCheck that the dymd binaries have been successfully installed:\n\n```sh\ndymd version\n```\n\nIf the dymd command is not found an error message is returned,\nconfirm that your [GOPATH](https://go.dev/doc/gopath_code#GOPATH) is correctly configured by running the following command:\n\n```sh\nexport PATH=$PATH:$(go env GOPATH)/bin\n```\n\n## Initializing `dymd`\n\n- Using the setup script:\n\n  This method is preferred as it is preconfigured to support [running rollapps locally](https://github.com/dymensionxyz/roller)\n\n  ```sh\n  bash scripts/setup_local.sh\n  ```\n\n- Manually:\n\n  First, set the following environment variables:\n\n  ```sh\n  export CHAIN_ID=\"dymension_100-1\"\n  export KEY_NAME=\"hub-user\"\n  export MONIKER_NAME=\"local\"\n  ```\n\n  Second, create genesis and init dymension chain:\n\n  ```sh\n  dymd init \"$MONIKER_NAME\" --chain-id \"$CHAIN_ID\"\n  ```\n\n  Third, set parameters to ensure denom is udym:\n\n  ```sh\n  bash scripts/set_params.sh\n  ```\n\n  Then, add genesis account and provide token to the account:\n\n  ```sh\n  dymd keys add \"$KEY_NAME\" --keyring-backend test\n  dymd add-genesis-account \"$(dymd keys show \"$KEY_NAME\" -a --keyring-backend test)\" 1000dym\n  dymd gentx \"$KEY_NAME\" 670dym --chain-id \"$CHAIN_ID\" --keyring-backend test\n  dymd collect-gentxs\n  ```\n\n## Running the Chain\n\nNow start the chain!\n\n```sh\ndymd start\n```\n\nYou should have a running local node!\n\n## Bootstrapping liquidity pools\n\nTo bootstrap the `GAMM` module with pools:\n\n```sh\nsh scripts/pools/pools_bootstrap.sh\n```\n\n## Adding incentives\n\n### Creating incentives streams\n\nAfter creating the pools above, we create 3 incentive streams through gov:\n\n```sh\nsh scripts/incentives/fund_incentives.sh\n```\n\nWait for the gov proposal to pass, and validate with:\n\n```sh\ndymd q streamer streams\n```\n\nThe last stream is community-driven and governed by `x/sponsorship`.\n\n### Locking tokens\n\nTo get incentives, we need to lock the LP tokens:\n\n```sh\nsh scripts/incentives/lockup_bootstrap.sh\n```\n\nvalidate with:\n\n```sh\ndymd q lockup module-balance\n```\n\n### Checking rewards\n\nEvery minute a share of the rewards will be distributed!\n\nvalidate with:\n\n```sh\ndymd q incentives active-gauges\n\n# alternatively, watch the output - you will see the \"amount\" change every minute\n#  watch -n1 -d \"dymd q incentives active-gauges --output json | jq '.data[] | { \"id\": .id, \"coins\": .coins } '\"\n```\n\n### Updating a community-driven distribution\n\nThe following script casts two votes for a community-driven distribution.\n```sh\nsh scripts/incentives/sponsorship_vote.sh\n```\n\nThis will change the corresponding stream distribution at the end of the current epoch.\n```sh\ndymd q streamer streams\n```\n\nThe community-driven distribution may be queried with:\n```sh\ndymd q sponsorship distribution\n```\n\n## Debugging Container\n\nPre-requisite:\n Install [Docker](https://docs.docker.com/get-docker/)\n Install [VSCode](https://code.visualstudio.com/)\n Install [VSCode Go extension](https://marketplace.visualstudio.com/items?itemName=golang.go)\n Install [Delve](https://github.com/go-delve/delve)\n\nTo debug, you can use the following command to run the debug container:\n\n```sh\nmake docker-run-debug\n```\n\nThen you can run the debugger with the following config for `launch.json` in VSCode:\n\n```json\n{\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"name\": \"Dymension Debug Container\",\n            \"type\": \"go\",\n            \"request\": \"attach\",\n            \"mode\": \"remote\",\n            \"port\": 4000,\n            \"host\": \"127.0.0.1\",\n            \"debugAdapter\": \"legacy\" // To be removed in the future after https://github.com/golang/vscode-go/issues/3096 is fixed\n        }\n    ]\n}\n```\n\nAfter that, you can run the debugger and set breakpoints in the code.\n\nExample: \n\nAdd breakpoint to `ctx` in `x/eibc/keeper/grpc_query.go` :\n\n```go\nfunc (q Querier) Params(goCtx context.Context, req *types.QueryParamsRequest) (*types.QueryParamsResponse, error) {\n\tif req == nil {\n\t\treturn nil, status.Error(codes.InvalidArgument, \"invalid request\")\n\t}\n\tctx := sdk.UnwrapSDKContext(goCtx)\n\n\treturn \u0026types.QueryParamsResponse{Params: q.GetParams(ctx)}, nil\n}\n```\n\nOpen your browser and go to `http://localhost:1318/dymensionxyz/dymension/eibc/params` and you will see debugger stop and print the value at the breakpoint.\n\n## Developer\n\nFor support, join our [Discord](http://discord.gg/dymension) community and find us in the Developer section. See [Contribution guidelines](./Contributing.md).\n\n### Setup push hooks\n\nTo setup push hooks, run the following command:\n\n```sh\n./scripts/setup-git-hooks.sh\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdymensionxyz%2Fdymension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdymensionxyz%2Fdymension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdymensionxyz%2Fdymension/lists"}