My name is Peter Harpending. I'm one of the two developers of the Vanillae Project (other: Craig Everett).
Craig and I started by creating Aegora.jp: a simple e-commerce website that uses Aeternity as its payment system. We are also currently developing a wallet. We have run into many weird stupid technical pitfalls or weird things you have to learn about that take like 8 hours but really are 1 hour of complexity. Solving these pitfalls was the genesis of the Vanillae project. This file tree documents the pitfalls we cared to write about.
Most of these have code examples in Erlang and/or TypeScript.
This is roughly the order in which you are likely to encounter these pitfalls, but each document is self-contained (ish) [non-links are planned and have not been written yet]:
- How to install NPM without getting AIDS
- Base64 versus Base58 with code in Erlang and TypeScript
- Ethereum Recursive Length Prefix (RLP) Encoding, with code in Erlang and TypeScript
- Keccak, SHA-3, and SHAKE-N, with code in Erlang
- Seed Phrase Recovery, with code in Erlang and TypeScript
- Fast Aeternity Recovery Text (FÆRT): a better seed phrase standard
- Sidekick and the Aepp-Waellet Communication Protocol (AWCP): how to talk to browser wallet extensions from a page script (and vice versa)
- How browser extensions work
- Basics of Elliptic Curve Cryptography
- How to build a wallet
- Aeternity Interoperable Device Signatures (AIDS): a standard for decentralized point-of-sale services (think Square, Stripe, etc)
- vanillae-erl: how to talk to the blockchain from your service backend
- How to run an Aeternity node
- The Jex Packaging System: NPM is cancer
- Things we learned making Aegora
- Using user crypto wallets for authentication: it's time to put passwords in the past