Support a city by mining, buying, or holding their CityCoin, all while generating yield in STX and BTC.
Coming very soon!
For more information on the project, its goals, and technical details, please review the Product Requirements Document.
PRs are welcome! Please see the open issues and comment if interested, or submit a PR for review.
All code submitted should be thoroughly commented and tested where applicable. Configurable options for the smart contract or the web UI should be listed as constants.
- Website: https://citycoins.co
- App UI Template: deployed at a unique domain per city, e.g. https://minemiamicoin.com (repo)
- Smart Contract Template, cloned and deployed with details for each city: citycoin.clar
Contracts are tested via clarinet and javascript.
To test the contract using clarinet
, first install the tool to make it available on your system.
The following commands are used to run the tests:
npm run clarinet:prepare
npm run clarinet:test
,npm test
,npm run test
npm run clarinet:check
npm run clarinet:console
A bash script is provided to prepare the tests as part of clarinet:prepare
, and executes the following steps:
- copies all contract files from
./contracts
to./contracts/clarinet
- modifies address used in impl-trait by replacing it with a different address. e.g.
(impl-trait 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-10-ft-standard.ft-trait)
is converted to:(impl-trait 'ST1HTBVD3JG9C05J7HBJTHGR0GGW7KXW28M5JS8QE.sip-10-ft-standard.ft-trait)
- appends at the end of file content of test add-on file with the same name, stored in
./contracts/test_addons
Note: clarinet:test
, clarinet:check
, and clarinet:console
automatically execute clarinet:prepare
.
Some quick definitions and additional resources related to the technology behind the project.
- Stacks Blockchain: Stacks makes Bitcoin programmable, enabling decentralized apps and smart contracts that inherit all of Bitcoin’s powers.
- Proof of Transfer (PoX): The consensus mechanism for the Stacks blockchain, which is modified to implement the citycoins.
- Clarity Language: A smart contract language developed by Blockstack (now Hiro) and Algorand, designed to be more safe, secure, and predictable.
- Smart Contract: A computer program or a transaction protocol which is intended to automatically execute, control or document legally relevant events and actions according to the terms of a contract or an agreement.
- Fungible Token: Digital assets that can be sent, received, combined, and divided.