Kategorien
Uncategorized

FTX

Stake at least 25 FTT for 0% maker fees see: https://help.ftx.com/hc/en-us/articles/360052410392-FTT-Staking

Kategorien
Uncategorized

Bitmex API key

Go to https://www.bitmex.com/app/apiKeys

Se name to „mond.reise“ (or whatever you want). Leave CIDR empty and make sure „Key Permissions“ is set to „Order“. Leave „Withdraw“ unchecked. Then click „Create API Key“

Copy & Paste „ID“ and „Secret“.

Kategorien
Uncategorized

Choosing an Exchange

mond.reise currently supports connecting to three derivatives exchanges: BitMEX, FTX and Deribit. More to come. This Article intends to help you with your decision.

BitMEX

Founded in 2014, BitMEX is the oldest player in the derivatives markets. It „invented“ the perpetual swap contracts, which most other exchanges used as reference for their own products. The CEO, Arthur Hayes, worked for Deutsche Bank before he got fired. BitMEX has a controversial reputation, because it has been unregulated and encoutered many law suits with U.S. authorities.

Technically, it has high security standards and a mature trading engine.

Pros:

  • -0.01% maker fees (you get paid for every trade)
  • Shared margin (Bitcoin)

Cons

  • Bitcoin-only deposits

FTX

Pros:

  • EUR, USD deposits
  • Shared margin (USD and Bitcoin)

Cons:

  • High fees (so less expected return)

Deribit

Pros:

  • 0% maker fees
  • Better reputation than Bitmex

Cons

  • Seperated margin for Bitcoin and Ethereum contracts.
  • Currently mond.reise only supports Bitcoin trading on Deribit

Conclusion

Chose BitMEX for highest expected returns. FTX is an all-in-one solution with bank transfers. Deribit is a safe alternative with zero fees.

Kategorien
Uncategorized

Yoroi private key export

Open yoroi, then open developer tools. In the JS console paste the following code:

/**
 * Export all data from an IndexedDB database
 *
 * @param {IDBDatabase} idbDatabase The database to export from
 * @return {Promise<string>}
 */
function exportToJson(idbDatabase) {
  return new Promise((resolve, reject) => {
    const exportObject = {}
    if (idbDatabase.objectStoreNames.length === 0) {
      resolve(JSON.stringify(exportObject))
    } else {
      const transaction = idbDatabase.transaction(
        idbDatabase.objectStoreNames,
        'readonly'
      )

      transaction.addEventListener('error', reject)

      for (const storeName of idbDatabase.objectStoreNames) {
        const allObjects = []
        transaction
          .objectStore(storeName)
          .openCursor()
          .addEventListener('success', event => {
            const cursor = event.target.result
            if (cursor) {
              // Cursor holds value, put it into store data
              allObjects.push(cursor.value)
              cursor.continue()
            } else {
              // No more values, store is done
              exportObject[storeName] = allObjects

              // Last store was handled
              if (
                idbDatabase.objectStoreNames.length ===
                Object.keys(exportObject).length
              ) {
                resolve(JSON.stringify(exportObject))
              }
            }
          })
      }
    }
  })
}

/**
 * Import data from JSON into an IndexedDB database.
 * This does not delete any existing data from the database, so keys may clash.
 *
 * @param {IDBDatabase} idbDatabase Database to import into
 * @param {string}      json        Data to import, one key per object store
 * @return {Promise<void>}
 */
function importFromJson(idbDatabase, json) {
  return new Promise((resolve, reject) => {
    const transaction = idbDatabase.transaction(
      idbDatabase.objectStoreNames,
      'readwrite'
    )
    transaction.addEventListener('error', reject)

    var importObject = JSON.parse(json)
    for (const storeName of idbDatabase.objectStoreNames) {
      let count = 0
      for (const toAdd of importObject[storeName]) {
        const request = transaction.objectStore(storeName).add(toAdd)
        request.addEventListener('success', () => {
          count++
          if (count === importObject[storeName].length) {
            // Added all objects for this store
            delete importObject[storeName]
            if (Object.keys(importObject).length === 0) {
              // Added all object stores
              resolve()
            }
          }
        })
      }
    }
  })
}

/**
 * Clear a database
 *
 * @param {IDBDatabase} idbDatabase The database to delete all data from
 * @return {Promise<void>}
 */
function clearDatabase(idbDatabase) {
  return new Promise((resolve, reject) => {
    const transaction = idbDatabase.transaction(
      idbDatabase.objectStoreNames,
      'readwrite'
    )
    transaction.addEventListener('error', reject)

    let count = 0
    for (const storeName of idbDatabase.objectStoreNames) {
      transaction
        .objectStore(storeName)
        .clear()
        .addEventListener('success', () => {
          count++
          if (count === idbDatabase.objectStoreNames.length) {
            // Cleared all object stores
            resolve()
          }
        })
    }
  })
}

Export

var connection = indexedDB.open('yoroi-schema', 16) // change the name and version as needed
connection.onsuccess = e => {
  var database = e.target.result
  exportToJson(database).then(console.log).catch(console.error)
}

Import

var connection = indexedDB.open('yoroi-schema', 16) // change the name and version as needed
connection.onsuccess = e => {
  var database = e.target.result
clearDatabase(database)
  importFromJson(database, json).then(console.log).catch(console.error)
}
Kategorien
Uncategorized

Eth2 staking

https://launchpad.ethereum.org/en/

  • eth1: geth
  • eth2: prysm

https://launchpad.ethereum.org/en/checklist/#section-three

curl -H „Content-Type: application/json“ -X POST –data ‚{„jsonrpc“:“2.0″,“method“:“web3_clientVersion“,“params“:[],“id“:67}‘ http://<YourServerLocation>:8545

https://docs.prylabs.network/docs/mainnet/joining-eth2/

./prysm.sh validator accounts import –keys-dir=$HOME/eth2.0-deposit-cli/validator_keys

./prysm.sh validator accounts list

Check validator status: https://beaconscan.com/validator/0x8cfc0c74bcb38e5d0fe4d18d4aca151ea1537a59fbfa06b7388fda12e019aed3ca768d3d5b7020d388d33c9b8f300d0a

https://consensys.net/blog/featured/my-journey-to-becoming-a-validator-on-ethereum-2-0-part-2/

https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50