Skip to content

Instantly share code, notes, and snippets.

View alexvandesande's full-sized avatar
Preventing human machine conflicts

Alex Van de Sande alexvandesande

Preventing human machine conflicts
View GitHub Profile
pragma solidity ^0.4.20;
contract MyToken {
/* This creates an array with all balances */
mapping (address => uint256) public balanceOf;
/* Initializes contract with initial supply tokens to the creator of the contract */
function MyToken(
uint256 initialSupply
) public {


One of the biggest pain point for users in ethereum:

  • users don't want to think about ether
  • users don't want to think about backing up private keys or seed phrases
  • users need to set up 2 factor authentication to be secure
  • users want to be able to have a simple identifiable username
  • users want to be able to pay for transactions using what they already have on the system, be apple pay, xbox points or even a credit card
  • users want to use the same username accross multiple devices in a trustless manner
alexvandesande / congress.sol
Created August 28, 2017 19:47 — forked from anonymous/advanced token.sol
Created using browser-solidity: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at
pragma solidity ^0.4.2;
contract owned {
address public owner;
function owned() {
owner = msg.sender;
modifier onlyOwner {
require (msg.sender == owner);
One of the takeaways I had from the ENS workshop, is that if buying domains
from secundary services is easy and quick, it will take the pressure off the
main ENS system to be perfect. So since I didn’t see any decent reselling
contract I decided to try my luck on my own. It's not yet finalized but shows
some characteristics I want on the service.
## Both instant buy and actions
One of the feedbacks I had is that many domain owners do not know how to price
alexvandesande /
Last active October 12, 2017 05:42
How to recover a bid on ENS if you still have the master salt

How to recover a lost a ENS bid if you still have the secret

  1. Download your bid backup and open it in a text editor. You can paste the code on a service like this to make it more readable:

  2. Search for the name of your bid to check it's not there. If it's not then at the top of your file you'll find something like this:

alexvandesande / ethernalsale.js
Last active October 21, 2021 04:40
This is a first draft at what could be a continuous token sale. I just wrote it and haven't tested it but it shows the proof of concept: tokens are continuously generated in any curve desired and sold for the highest bidder. Since there's a maximum token sale speed, this guarantees that sales can't end too quickly. Since the sale always starts f…
pragma solidity ^0.4.2;
contract ethernalSale {
struct order {
uint amount;
address buyer;
mapping (uint => order) orderBook;
mapping (address => uint) balanceOf;

Donation move

I have been contacted by the account that donated 5k ether to the Doge coin bounty contract [1][2].

They were unhappy with the slow progress of the doge-connection and felt that Doge had also lost a lot of its steam and would like to donate to other ethereum related donation projects.

I was able to verify that the person contacted me indeed held the private key to the account 0x841145B44840C946E21dbC190264b8E0D5029369 and that it was their intention to do so by deploying this attest contract below, which they used to say: "I'd like 5000 ether to be donated to Giveth". These can be independently verified by using mist and using the abi pasted below.

alexvandesande / style.css
Created January 26, 2017 18:30
Modified Dapp Styles for Swarm Markdown
::selection {
color: #fff;
text-shadow: 0 0 0
::-moz-selection {
color: #fff;
text-shadow: 0 0 0
# Time Locked Multisig
This is a different twist on the Congress DAO / Multisig. Instead of every action requiring the approval of an X number of members, instead any transactions can be initiated by a single member, but they all will require a minimum amount of delay before they can be executed, which varies according to the support that transaction has. The more approvals a proposal has, the sooner it can be executed. A member can vote against a transaction, which will mean that it will cancel one of the other approved signatures. In a 5 members DAO, each vote means the time to wait dimishes by 10x.
This means that if you don't have urgency, one or two signatures might be all you need to execute any transaction. But if a single key is compromised, other keys can delay that transaction for years, making sure that the main account is emptied out way before that.
Transaction delays: