smart contract, which implements proof-of-success for cryptocurrency traders, who want to get funded by crypto investors in order to become asset managers.

View the Project on GitHub

cryptopus logo full

API update #2 22.02.2018 (DDMMYYYY)


A Solidity Ethereum Virtual Machine smart contract for defining trader-investor relationships with trader profiling functionality.

description of the smart contract

The amount of frauds surrounding cryptocurrency exchanges are growing due to the fact that our data is not inherently secured by any one entity or set of mathematical rules.
This poses a serious threat to investors wanting to invest in this new emerging market.
Our smart contract aims to solve this problem.

Through our smart contract we can collect data provided by traders, in turn validating it and pushing it to an IPFS database. This puts the data into an immutable state, ensuring it’s integrity and security.
The contract also utilizes generated accounts which are closed to withdraw, ensuring that the funds are yours and yours alone. So you can rest easy knowing that you are in control.
Along with the security of your data, you will also have the freedom to pick and choose the way you want to invest your funds.
This gives power to investors, giving them the ability to choose the period of time they want to invest for.
Likewise traders are also free to choose which offer they want to accept.

We will be developing a full-stack of DApps, which are going to work together synchronously. Thus providing the very best service for crypto investors to evaluate traders and invest into them safely.
By doing this process democratically our smart contract develops a unique and improved trader-investor relationship.

how it works?

how to use

After deployment, the cryptopus team will be sharing smart-contract addresses on, Telegram, Medium, Reddit, and Facebook. The addresses will be accessible from any ETH-based platform (e.g. myetherwallet).
For now it will only be accessible by TXs while we are working on a web version. Which will in turn provide a better interface between users and contracts.

contract-oriented programming

As a fresh paradigm in programming, contract-oriented programming (COP) is the optimal way to develop smart-contracts.
By separating contracts into independent structures it is possible to achieve mutability of contracts, since each part can be replaced with another version of it.
We have also developed our storage as a contract; this won’t change at all. But the surroundings and License are the parts that we want to have upgradable.
The process of upgrading while using standard development tools could take too much time. But because of COP, this allows us to change contract addresses and keep working.

code exmaples

Implementation of our storage, which stores data provided by traders and their licenses:

  @@@ usernames mapping lets us retrieve users address over it's username
  @@@ this mapping lets us implement search mechanism and load data of
  @@@ other users for those, who search for it
  @@@ accounts mapping:
  @@@ [0]: registration date (will be 0x0 for not registered)
  @@@ [1]: username (in bytes type)
  @@@ [2]: rating (0-5 in bytes)
  @@@ [3]: last payment UNIX
  @@@ [4]: active license (0 or 1 in bytes)
  @@@ [5]: amount of wallets
  @@@ wallets mapping stores data about wallets of each user:
  @@@ [n] represents another array, which structure is:
  @@@   [0]: API-Key
  @@@   [1]: API-Secret
  @@@   [2]: API-Nonce
  @@@   [3]: Balance Hash
  @@@   [4]: History Hash
mapping(bytes32 => address)     public usernames;
mapping(address => bytes32[])   public accounts;
mapping(address => bytes32[][]) public wallets;

Implementation of functions, which activates the smart contract’s internal processes:

function pushToAccounts(
  address _owner,
  bytes32 date,
  bytes32 uname,
  bytes32 rating,
  bytes32 license,
  bytes32 amount
) onlyOwner external {
  accounts[_owner] = [
  usernames[uname] = _owner;

function pushToWallets(
  address _owner,
  bytes32 _key,
  bytes32 _secret,
  bytes32 _nonce,
  bytes32 _balanceHash,
  bytes32 _historyHash
) onlyOwner external {
  wallets[_owner][position] = [
  accounts[_owner][5] = bytes32(position + 1);

Upgrading mechanism:

modifier onlyOwners() {
  require(owner == msg.sender ||
          licenseOwner == msg.sender);

function updateLicenseAddress(address _addr) onlyOwners external {
  currentLicenseAddress = _addr;

We are cryptopus. An IPFS-based open-source blockchain technology brokerage marketplace.
Where cryptocurrency investors choose incognito traders based on their track record, reputation, history, and balance.
Trader profiles are transparent and their strategies are free for all to see.