Hot answers tagged

6

There are five categories of Ethereum wallets that can interact with dApps Browser built-in (Opera, Brave, ...) Browser extension (MetaMask, ...) Mobile wallets (Trust, Walleth, Pillar, ...) Account-based web wallets (Fortmatic, 3box, ...) Hardware wallets (Ledger, Trezor, ...) Then there is a larger category of wallets that cannot integrate with dApps ...


4

You're right, the contract can't call itself the "approve" method. Instead you can write a script. An exemple with web3js 1.2 could be : var erc20Instance = new web3.eth.Contract(abi,Token_address); erc20Instance.methods.approve(contractAddress, amount).send({from: userAddress}, function(err, transactionHash) { //some code }); with : abi : the ...


4

What are the chances that 2 people get the same set of those 12 or 24-word mnemonic? Mnemonic phrases are generated from 128 bits (12 words) to 256 bits (24 words) of entropy. The probability to guess a mnemonic phrase is 2^-128 to 2^-256, which is very small. The longer the mnemonic phrase, the smaller the chance to guess it though. Is it possible to ...


3

You can run MyCrypto's desktop application fully offline, and sign transactions from your offline computer too. The application is fully open-source and available on GitHub here. There are instructions for compiling your own version if you'd like. Running it offline does not require a Geth node or any sort of hardware (except for a computer, of course). You ...


3

There are no "wallet aliases" in Ethereum. Sounds like you came up with this term yourself. It is not possible to avoid paying gas and somebody needs to pay for it. Ethereum network is public infrastructure and its security is supported by the transaction fees. There are some other blockchains, like EOS, which offer limited free tier transactions ...


3

My understanding is that the launchpad was made to be as user-friendly as possible, including for users who are less CLI-proficient. In the interests of making things as streamlined as possible, various options were not included. If you would like to research a more manual method for connecting to Medalla (using Geth, for example), the information you need ...


2

The term "wallet" can be used in many different ways, but most commonly it is used to refer to interface or application to manage an account or address, such as MyCrypto or MetaMask. With a wallet, you can generate a private key (or mnemonic phrase, keystore file, etc.), and use the software to send transactions and sign messages.


2

Cryptocurrency is basically a form of cashless money. It does not have to be stored. Instead, balances of all accounts have to be recorded somewhere and all participants need to agree on what current balances are. Ethereum uses sophisticated cryptography algorithms to allow honest participants to agree on current balances without knowing nor trusting each ...


2

Transactions from an exchange are usually sent from a "hot wallet", basically a wallet that is managed by the exchange. Most of the time exchanges pay for the gas, so you don't need any ETH in the exchange to withdraw tokens. In the case of a decentralised exchange (DEX), you do need some ETH, since those kinds of exchanges are based on a smart contract.


2

An Ethereum address of an Externally Owned Acccount (EOA) does not differ in the format from an Contract Account (CA). You can lookup how the address of a CA is created in this (clickme) great post. It is not impossible to find a collision. In my opinion, it is even highly propable that collisions between EOA and CA accounts do exist. I am not sure though if ...


2

Your scheme relies on your account being unlocked on the node that you're connected to. While this scheme is reasonable for testing your system on your local host via Ganache, it is not recommended for an operational system, because anyone hacking your node could exploit your (unlocked) account at will. Instead of unlocking your account on the node that ...


2

To send tokens you call the transfer function of the contract. This is done by sending a transaction with a value of 0 ETH to the token contract, with transaction data containing the function identifier, address to send the tokens to and the number of tokens to send. This is done through your own wallet. Note that transfer and Transfer are two different ...


2

Yes and no. Ethereum wallets are more versatile what you seem to have. MetaMask predates Web3authn, so it has the first mover advantage. The different "wallet providers" provide different ways to connect a wallet and sigh the transaction. For example, WalletConnect wallets connect by a scanning a QR code and you sign the transaction using a mobile push ...


2

In addition, there are some curated lists of tokens that you can submit your token to. Applications, such as wallets, pull tokens from these curated lists. Token Curated List of Tokens https://tokens.kleros.io (https://uniswap.ninja/ pulls token list from here, for example. This one is a decentralized list, meaning everyone maintains it, not just a curator.)...


2

No, I don't know how you imagined this, but as long as a user has the private key the ETH still on the account Nothing can stop him from spending his ETH. So whatever you do, locking ETH can only happen if ETH is transferred, be it to an escrow contract or maybe an off-chain multisig EOA.


1

Maybe you can give MyCrypto (https://mycrypto.com) a try. It's a free and open source wallet interface, and has support for the features you mentioned: Changing the gas price, gas limit, nonce Signing transactions offline If you use the desktop wallet, you can use your keystore (JSON) file or private keys too. You can download it from here: https://...


1

Instead of deterministic payment addresses, you might want to use a smart contract for the payment. There is only a single smart contract (address) where the payments go in (you can also deploy multiple contracts e.g. one per store, but this is a different question) Each payment comes with a reference message in the Data field Smart contract can ...


1

Ethereum commonly uses m/44'/60'/0'/0/0, but you can use other derivation paths. Using a BIP-49 or BIP-84 (segwit) derivation path works just like normal, assuming that you have an application that can derive Ethereum addresses from one of those paths. In the end, you still have a normal Ethereum address where you can send ETH to.


1

Private keys are derived from the mnemonic phrase directly, so if you use a different mnemonic phrase (different words), you'll get different private keys, and thus addresses. The best way to approach this is to generate a new mnemonic phrase and move (send) all funds from the old addresses to the new ones. They should generate the new phrase themselves, so ...


1

Start off by creating a simple faucet dapp. So you can understand the fundamentals. Creating a huge platform like coinbase takes a lot of time and effort, but writing a smart contract that has the basic functionality of "buing Ether" is quite simple actually. But do it on the testnet, creating safe crypto systems or exchanges is super complicated. But you ...


1

There are two points you have to consider: having Ether to sell and what do you accept as payment. Basically your contract has to own Ether it can then sell. So you need to buy it from some marketplace and store in the contract. Then you probably want to take some assets from your customers and exchange them for Ethers from your contract - but what are such ...


1

The approve function is used to set allowance for the current sender. If you would call it from your own contract, you would approve spending the tokens for your own contract. Instead of calling approve through a smart contract, you have to send the transaction directly from the user to the ERC-20 contract, with the address of your own smart contract ...


1

Yes, you're right, you can interact with a smart contract without having a wallet. By connecting with a Provider, so you will only have read-only access to the Contract, without sending a transaction (Can’t alter the smart contract state). By creating an instance of the contract: Web3: https://web3js.readthedocs.io/en/v1.2.0/web3-eth-contract.html# Ethers:...


1

MetaMask does use Web3.js internally. You can check it in the source code on GitHub. Previously, MetaMask would also inject window.web3 in the current page, but that was changed to only inject window.ethereum instead. Dapps can use window.ethereum for safe interaction with a user's wallet.


1

Geth has undocumented API function getModifiedAccounts that returns list of addresses whose state (balance is a part of address state) was modified between two given blocks. You may use this function to query the list of modified addresses for every new block (or several consequent blocks), then filter returned list dropping addresses that your are not ...


1

You can also obtain it programmatically: const keythereum = require("keythereum"); console.log(keythereum.recover(yourPassword, yourJsonObject).toString("hex"));


1

No your account is safe or, better, if you still have the private key of the account you are interested in, your money and your account are safe. You are definitively able to recover them using some other wallet. I use CIPHER on iOS and it is ok. On the other side, simply add a new account in metamask giving the private key when asked for it. Nothing more. ...


1

You can get your accounts back by clicking "Create Account" (once per each account). The accounts are there, however they are not shown until you add them. If the accounts that show up do not match what you are expecting, then you are using an incorrect seed.


1

The only difference between a smart contract address and a "normal" address is that the smart contract address contains (the smart contract) code. Other than that, they work the same. If there is, for example, a contract on 0xfoo and by random chance you get the private key for this address, you can transfer Ether and tokens from this address like any other ...


1

You can npm install web3@1.2.1, and then try this NodeJS script: const Web3 = require("web3"); const NODE_ADDRESS = process.argv[2]; const DEST_ADDRESS = process.argv[3]; const WEI_AMOUNT = process.argv[4]; const PRIVATE_KEY = process.argv[5]; async function scan() { return await new Promise(function(resolve, reject) { process.stdin.resume()...


Only top voted, non community-wiki answers of a minimum length are eligible