MCPcopy Index your code
hub / github.com/bitsongofficial/go-bitsong

github.com/bitsongofficial/go-bitsong @v0.24.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.24.0 ↗ · + Follow
4,103 symbols 14,947 edges 205 files 678 documented · 17%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

License: Apache-2.0

Introduction

What is BitSong?

BitSong is a multifunctional blockchain-based ecosystem built to empower the music industry. It unites artists, fans, distributors in an environment where music, merchandise, and fan loyalty are assets of value. BitSong’s decentralized ecosystem of services providers the global music community with a trustless marketplace for music streaming, Fan Tokens, and NFTs, powered by the BTSG token.

Brief History of BitSong

BitSong was conceived in 2018 by developer and entrepreneur Angelo Recca. Angelo realized that while the digitalization of music has brought many benefits to the industry, it’s also created a new set of problems around the ownership of music and attribution of royalties. He joined forces with Iulian Anghelin and BitSong was born. The initial intention was for BitSong to become an Ethereum-based application where fans could stream music and artists could receive royalties directly. However, after discovering Cosmos and its ambition to become the “Internet of Blockchains,” Angelo and Iulian immediately recognized the full potential of becoming part of a multi-chain environment. After launching the main BitSong blockchain in August 2020, the bitsong-2b mainnet went live on October 21, 2021. Featuring Fan Tokens, NFTs, and music streaming platform, all underpinned by secure, robust, battle-tested blockchain technology, the launch of BitSong marks a turning point in the ongoing development of the music industry.

NOTE: This is alpha software. Please contact us if you aim to run it in production.

Note: Requires Go 1.23.x+

Install BitSong Blockchain

There are many ways you can install BitSong Blockchain Testnet node on your machine.

From Source

  1. Install Go & Environment Tooling bash sudo apt update sudo apt install -y curl git jq lz4 build-essential wget -q -O - https://git.io/vQhTU | bash -s -- --remove wget -q -O - https://git.io/vQhTU | bash -s -- --version 1.23.5
  2. Clone BitSong source code to your machine bash git clone https://github.com/BitSongOfficial/go-bitsong.git cd go-bitsong
  3. Compile bash # Install the app into your $GOBIN make install # Now you should be able to run the following commands: bitsongd help The latest go-bitsong version is now installed.
  4. Run BitSong bash bitsongd start

Running the test network and using the commands

To initialize configuration and a genesis.json file for your application and an account for the transactions, start by running:

NOTE: In the below commands addresses are are pulled using terminal utilities. You can also just input the raw strings saved from creating keys, shown below. The commands require jq to be installed on your machine.

NOTE: If you have run the tutorial before, you can start from scratch with a bitsongd unsafe-reset-all or by deleting both of the home folders rm -rf ~/.bitsong*

# Initialize configuration files and genesis file
bitsongd init MyValidator --chain-id bitsong-localnet

# Copy the `Address` output here and save it for later use
# [optional] add "--ledger" at the end to use a Ledger Nano S
bitsongd keys add jack

# Add both accounts, with coins to the genesis file
bitsongd add-genesis-account jack 100000000000ubtsg --keyring-backend test

# Generate the transaction that creates your validator
bitsongd gentx jack 10000000ubtsg --keyring-backend test

# Add the generated bonding transaction to the genesis file
bitsongd collect-gentxs
bitsongd validate-genesis

# Now its safe to start `bitsongd`
bitsongd start

You can now start bitsongd by calling bitsongd start. You will see logs begin streaming that represent blocks being produced, this will take a couple of seconds.

Resources

Decentralized Exchanges

Community

License

APACHE 2.0

Versioning

SemVer

BitSong uses SemVer to determine when and how the version changes. According to SemVer, anything in the public API can change at any time before version 1.0.0

To provide some stability to BitSong users in these 0.X.X days, the MINOR version is used to signal breaking changes across a subset of the total public API. This subset includes all interfaces exposed to other processes, but does not include the in-process Go APIs.

Extension points exported contracts — how you extend this code

Authenticator (Interface)
Authenticator is an interface that encapsulates all authentication functionalities essential for verifying transactions, [11 …
x/smart-account/authenticator/iface.go
CosmosApp (Interface)
CosmosApp implements the common methods for a Cosmos SDK-based application specific blockchain. [1 implementers]
app/types.go
ParamSubspace (Interface)
ParamSubspace defines the expected Subspace interface for parameters (noalias)
x/fantoken/types/expected_keepers.go
BaseAppParamManager (Interface)
BaseAppParamManager defines an interrace that BaseApp is expected to fullfil that allows upgrade handlers to modify Base
app/upgrades/types.go
Descriptor (Interface)
(no doc) [2 implementers]
btsgutils/btsgcli/dynamic.go
GenerateAccountStrategy (FuncType)
(no doc)
app/testing/test_suite.go
LessFunc (FuncType)
(no doc)
btsgutils/slice_helper.go
AuthenticatorTxOptions (Interface)
AuthenticatorTxOptions [2 implementers]
x/smart-account/types/codec.go

Core symbols most depended-on inside this repo

n
called by 2831
swagger/swagger-ui/swagger-ui-bundle.js
n
called by 2831
swagger/swagger-ui/swagger-ui-es-bundle.js
r
called by 1549
swagger/swagger-ui/swagger-ui-standalone-preset.js
V
called by 778
swagger/swagger-ui/swagger-ui.js
r
called by 751
swagger/swagger-ui/swagger-ui-es-bundle-core.js
n
called by 615
swagger/swagger-ui/swagger-ui.js
o
called by 500
swagger/swagger-ui/swagger-ui-bundle.js
o
called by 500
swagger/swagger-ui/swagger-ui-es-bundle.js

Shape

Function 1,919
Method 1,899
Struct 201
Class 51
Interface 24
Enum 3
FuncType 3
TypeAlias 3

Languages

Go62%
TypeScript37%
Rust1%

Modules by API surface

swagger/swagger-ui/swagger-ui-es-bundle.js510 symbols
swagger/swagger-ui/swagger-ui-bundle.js510 symbols
x/fantoken/types/tx.pb.go256 symbols
swagger/swagger-ui/swagger-ui-standalone-preset.js253 symbols
x/smart-account/types/tx.pb.go175 symbols
x/cadence/types/tx.pb.go159 symbols
swagger/swagger-ui/swagger-ui.js128 symbols
x/fantoken/types/query.pb.go123 symbols
x/fantoken/types/events.pb.go123 symbols
swagger/swagger-ui/swagger-ui-es-bundle-core.js123 symbols
x/smart-account/types/query.pb.go122 symbols
x/cadence/types/query.pb.go122 symbols

For agents

$ claude mcp add go-bitsong \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page