We code (work in progress) a fully self-custodial wallet for Bitcoin and Ethereum in Python. Private and public keys are generated offline and converted to 1) a Bitcoin segwit address 2) an Ethereum address. Eventually we would like to implement wallets for different types of cryptocurrencies and blockchains and general distributed ledger technologies.
We researched the cryptography, coded in Python, did some testing in Solidity, and did some publishing on IPFS. For a bunch of non-techy fellas like us we were amazed at the wide range of technologies we learned! We were help up for a long time trying to figure out the cryptography (our mathematician is a very busy person...with some help from our mentors we pulled through). Though it is unfinished, we hope our project will make it easier for other noobs trying to understand the same things about wallets, cryptography, and blockchain -- "under the hood."