[How To]: Buy/Move/Store OMNI MAID :safe: hardware and software wallets

I see there 5$ fee, where is true? thx

yes at some point transaction will revert. use electrum then

1 Like

But it does not tell what is behind the volume numbers.
My concerns is being highlighed by this reddit post from last december.

" Decentralized Exchanges… Why are they not more popular?"
https://www.reddit.com/r/CryptoCurrency/comments/zk3rea/decentralized_exchanges_why_are_they_not_more/

1"I think that it’s because it’s slightly more complex to on-ramp.
People who hold money on CEX are usually after convenience"

2 “I’m a guy working in tech and I get so confused by decentralized exchanges, bridges, pools…I can imagine why somebody that does not have a tech background just sticks with a CeX, it’s easier.”

3 “Agree, is hard enough to get normies into CEX. DEX are beyond interest(almost feared) of many, as an example : most part of my local crypto bros haven’t touched a DEX ever.”

4 “Not simple and friendly to use, not trading capabilities (spot or future trading), not supporting of fiat to crypto exchange and slippage that lots of common users don’t know about it.”

5 “main drawbacks of dex is slippage and and order booking”

I get the same feeling as reflected in the quotes above. The majority of people will never touch DEX as it is today because it is too complicated, even centralized exchanges posts problems for them, they want convenience above all. For the success of Safe it will be important to reach the largest most convenient places where people trade because they might never switch and become tech savy

5 Likes

Hi, Do you mean import your omni Tresor private key into electrum wallet and then send via electrum?
I also have my maid on a tresor and have been thinking about converting them to eMaid.
Thanks!

1 Like

No, you create a new electrum wallet and link it to Trezor. There is an instruction in the OP.

SmartSelect_20231222_181848_Brave

SmartSelect_20231222_181854_Brave


Privacy. Security. Freedom

5 Likes

The main problem here comes from the wrong assumption that the next people in crypto will even understand that they are using Decentralized Exchanges.

What happens is that people use very simple (easier even than centralized exchanges) interfaces in the form of apps and they connect and do all the weird stuff through DEX.

An example is MetaMask with 100 million users:

A new example is Sweat wallet with 2 million monthly active users that came to crypto in the last year from a pedometer app! I won’t be surprised if only 10 people know that Dex is running under this app:


Privacy. Security. Freedom

3 Likes

Btw using electrum for payment is a bit a pain, esp for no IT user, would be good if on omni trezor site was possiblity to push own fee

1 Like

For anyone having issues with omni transaction being stuck in the mempool due to too low fees. Viabtc offers 20 free accelerators per hour. Which puts you in their first block they mine.

3 Likes

Could we fork the Github repo and change the default fee of 8000 satoshi into a higher fee? No idea how, but that would fix it for future transactions.

2 Likes

I had a very quick look at this.
Cloned it and tried to run npm install. Many many errors due to outdated dependencies.
The debug log is ~1.5Mb…
Probably doable if you are better at nodejs/React than I am.

line 137 of omni-trezor/src/App.js may be a good place to start once all the npm install issues are sorted.
let eligibleTxs = transactions.filter(tx => tx.value >= 8000);

2 Likes

Wow, thanks for trying! Sounds like a more urgent wakeup call to move to Emaid…

4 Likes

Thats sad, I have still transaction in mempool, and I probably will pay a lot to miner for confirming transaction, because I am scared to send bigger value via electrum.

You could try a small amount via electrum first.

If anyone else pokes at this, heres some GPT-generated js code to calculate the avg BTC Tx cost over the past n days.

Probably a better solution than an arbitary fixed 8000 sats value.

const axios = require('axios');

async function getAvgBitcoinTxCost(n) {
  try {
    const endDate = new Date(); // Current date
    const startDate = new Date();
    startDate.setDate(endDate.getDate() - n); // Subtract n days from the current date

    const endDateString = endDate.toISOString().split('T')[0];
    const startDateString = startDate.toISOString().split('T')[0];

    // Fetch historical market chart data for Bitcoin
    const response = await axios.get(`https://api.coingecko.com/api/v3/coins/bitcoin/market_chart/range`, {
      params: {
        vs_currency: 'usd',
        from: Math.floor(startDate / 1000), // Convert milliseconds to seconds
        to: Math.floor(endDate / 1000),
      },
    });

    const prices = response.data.prices.map((entry) => entry[1]); // Extract closing prices

    // Calculate the average transaction cost
    const averageTxCost = prices.reduce((sum, cost) => sum + cost, 0) / prices.length;

    console.log(`Average Bitcoin transaction cost over the past ${n} days: $${averageTxCost.toFixed(2)}`);
  } catch (error) {
    console.error('Error fetching data:', error.message);
  }
}

// Set the number of days (change this to your desired value)
const numberOfDays = 7;

// Call the function with the specified number of days
getAvgBitcoinTxCost(numberOfDays);
1 Like

OK so sorting out the node dependency hell on this was not too terrible, Chat GPT suggested updating node-sass That and an upgrade to the latest nodejs and and a few iterations of npm audit fix and npm audit fix --force brought me down to single-figure warnings and no criticals so I tried npm start again.

This time I got this far

So some progress made at least - onwards and upwards :slight_smile:

2 Likes

The lastest trezor connect is v9, last time it fail the quick fix was add this to url

?trezor-connect-src=https://connect.trezor.io/9/

https://trezor.github.io/omni-trezor/?trezor-connect-src=https://connect.trezor.io/9/

2 Likes

Hi !
I am trying to use electrum to send my maid which is on my trezor. I have an address that starts with a 3 and can view my maid via omnitrezor.
When I open it with electrum I can only view this address if I choose wallet type P2SH which is different from your instructions where it says to select P2PKH

Also when I select the address and right click, i do not have the option to ‘Spend’

I sent Omni maid using the Omni trezor web site yesterday.

After realising the fee was low and it would get stuck I used viabtc free accelerator recommended by @Mightyfool

The transaction was successful and confirmed in about an hour

5 Likes

Thanks! I will give that a go

1 Like

So I am playing with ollama and I asked Mistral:7b to act as an experienced web/security developer and point out any vulnerabilities in the Omni-trezor codebase. After a few mins it came back with this

Lack of Input Validation: There are several places where user input is accepted, such as actions/sendTransaction.js and components/SendForm.js. Proper input validation is crucial to prevent attacks like Cross-Site Scripting (XSS) and SQL Injection. Make sure that all user inputs are sanitized and validated on both the client and server side.

Use of Hardcoded Private Keys: In actions/sendTransaction.js, there is a hardcoded RPC private key used for communicating with MetaMask when it’s not available or not connected. This can pose a significant security risk, as the private key can be easily accessed and exploited if an attacker gains access to the source code. I recommend either removing this hardcoded key or implementing a more secure way of handling it.

No Use of HTTPS: The provided GitHub repository doesn’t seem to have any mention of using HTTPS for communication between the client and the server. Using HTTPS is essential to secure data transmitted between the user’s browser and the wallet application, preventing man-in-the-middle attacks.

Access Control: It appears that not all actions require authentication or access control checks, such as in actions/sendTransaction.js. Properly implementing access control and requiring authentication for sensitive actions can help protect user data and prevent unauthorized transactions.

Outdated dependencies: The package.json file lists several outdated dependencies (as of the time of this analysis). Keeping all dependencies up-to-date is important to ensure security patches are applied promptly.

No Rate Limiting: The application doesn’t seem to have any rate limiting implemented, which can be an issue if an attacker tries to flood the server with requests. Implementing rate limits on API endpoints helps protect against denial-of-service attacks.

Insecure Direct Object References (IDOR): In some places, like actions/fetchWallet.js, you can directly access wallets using their IDs. This could potentially allow an attacker to access another user’s wallet if they can obtain the wallet ID. Implementing proper access control checks or using more secure methods of sharing wallet data between users is important to prevent unauthorized access.

I did this as a first step to asking it to help me set an acceptable Tx fee rather than the hard-coded 8000 sats at present.

Next step will be to install a no of different models and get their opinion.

3 Likes