Extending Substrate Runtime Modules

In this post, I will show you how you can extend the SRML Contracts module to add additional authorization layers to your smart contract blockchain. One of the best things...

Adding Fees to Your Substrate Runtime Module

In this post, I will show you how you can easily add a fee for calling a function within your Substrate runtime module. When using Substrate, you are afforded the...

Substrate Smart Contracts Workshop

We recently held our very first Sub0 conference right next to the Parity office in Berlin. Sub0 was an event bringing together users from around the world who share our...

The Sudo Story in Substrate

In this post, I will explain how the Sudo module is used to access permissioned functions in Substrate. If you have ever run a local Substrate node for testing or...

Substrate at FOSDEM 2019

I had the amazing opportunity to speak about Substrate at the Free and Open source Software Developers’ European Meeting (FOSDEM). In my talk, I talk about: The basics of blockchains...

CryptoKitties on Substrate

You saw in my last post that I started to investigate Substrate runtime development by building a simple proof of existence blockchain. I wanted to take it a step further,...

Proof of Existence Blockchain with Substrate

This post will show you how easy it is to build a proof of existence blockchain with a user interface using Parity’s Substrate framework. 2019 will surely be remembered as...

Verify Ethereum Contracts Using Web3.js and Solc

This tutorial will show you how you can verify the source code of an Ethereum contract using Web3.js and Solc-JS, similar to Etherscan.io. Recently I have been looking into the...

Combining Rocket with Reqwest to Call an API with Rust

This post will be a short code snippet to show how you can combine the Dynamic Segments example from Rocket and the Calling a Web API example from the Rust...

Running Parity Substrate on Mac OS X

This guide will show you the steps to successfully connect to the Substrate testnet, BBQ Birch using Mac OS X. All of the instructions on this page are commands which...

4 Things I Learned in 4 Years at Microsoft

I am in the midst of a turning point in my life. This month I left Microsoft to join Parity Technologies, a start-up company focusing on blockchain infrastructure and the...

Getting Twitter posts for Ethereum using an Oracle

This post will show you how to use the Oraclize.it blockchain oracle to get and store Twitter posts for Ethereum smart contracts. I recently created a end to end working...

Building a Simple Sign-In Page with MSAL.js for Microsoft Identities

In this post I will discuss how I used MSAL.js to build a simple sign-in experience for Microsoft Identities, and some of the things I learned along the way. I...

Microsoft Identities on the Ethereum Blockchain

My favorite time of the year at Microsoft is the “OneWeek” Hackathon. It’s a time of the year where you can work with some of the most talented engineers around...

Using Web3.js 1.0 Subscribe and Infura WebSockets to Visualize Ethereum Transactions

In this tutorial, you will learn how to subscribe to an Ethereum WebSocket using Web3.js to dynamically pull pending transactions on the blockchain. Recently, I have been pretty lurking on...

Shawn Notes: CryptoZombies Lessons 1 – 5 in Solidity

In this post I will be summarizing some of the key takeaways from lessons 1 - 5 of the popular CryptoZombies tutorial. This should cover all of the Solidity aspects...

Graphing ETH Balance History of an Ethereum Address using Parallel Asynchronous Requests in Web3.js

This tutorial will show you how you can query the ETH balance of an Ethereum address across multiple Ethereum blocks, and visualize the results as a graph. Continuing my series...

Set up Azure Service Health Alerts programmatically using PowerShell

The Azure Service Health team has been working hard to make it easy for you to set up custom service health alerts for your Azure resources. While we primarily focus...

Programmatically fetch multiple APIs in parallel using async and await in JavaScript

When I was building ethfolio, I had to figure out how to retrieve the token information for multiple Ethereum addresses. To get this information, you have to query an API...

ethfolio: A client side app to show your Ethereum token distribution

A common question that I have for others investing in cryptocurrencies is: “What coins are you invested in?” It is surprisingly hard to distinguish fear, uncertainty, doubt (FUD), fear of...

Making Web3.js work asynchronously with JavaScript Promises and await

One of the things I learned when writing my “Hello World” tutorial for Ethereum and Web3.js was the importance of having your functions which call the blockchain run asynchronously. Without...

Ethereum Token Contract ABI in Web3.js for ERC-20 and Human Standard Tokens

This post will introduce you to Token Contract ABIs in Ethereum, and show you how you can use a the Human Standard Token ABI to access the token balances of...

Correcting the Ethereum and Web3.js “Hello World”

Just 2 days ago I blogged about a quick project which I considered a “Hello World” application for Ethereum and Web3.js. However, I quickly learned that even in my short...

Ethereum and Web3.js “Hello World”: Get the ETH Balance of an Ethereum Address

Using just 41 lines of HTML + JS, we create a Web3.JS application which can get the ETH Balance of an Ethereum Address [Final Result] [GitHub] For me, the hardest...

Getting started with Ethereum Wallet

Well, Cryptocurrencies have consumed my attention for the past 5 months. I first learned about Ethereum back in May when I was attending a Bachelor party. Since then, I have...

Adding AAD Service Principal to the Company Administrator Role using the AAD PowerShell Module

When creating a new Azure Active Directory application, developers may run into a a problem when calling the AAD Graph API where they lack the correct permissions to call the...

Common Microsoft Resources in Azure Active Directory

I have seen a lot of StackOverflow posts trying to debug pretty basic errors when getting an access token to Microsoft Resources. Sometimes the issue is as simple as a...

Refresh Tokens for Azure AD V2 Applications in Flask

I have been working on a few projects recently that used Flask, a Python web framework, and Azure Active Directory to do things related to the Microsoft Graph. Using flask_oauthlib...

Revoking Consent for Azure Active Directory Applications

Today I was presenting one of my hackathon projects which I worked on this year to the Identity team at Microsoft. In order for my project to work, I needed...

Scraping LinkedIn Topics and Skills Data

Have you ever asked: What are the most popular skills among LinkedIn users? What are the most popular skills among Microsoft employees? Other top tech companies? (Google, Amazon, Facebook, etc…)...

Clients and Tokens and Claims! Oh My!

Let me just jump to the point with this post: Client applications should not depend on claims in access tokens to gather data about the signed-in user or anything about...

Customizing WordPress’s Twenty Seventeen Theme

As I mentioned in my first post on this new blog, this isn’t my first rodeo with WordPress or blogging in general. I have actually used a number of different...

Does Company ‘X’ have an Azure Active Directory Tenant?

One of the cool things about the Open ID Configuration endpoint is that it not only tells us random facts about the tenant, but it confirms that the tenant exists!...

Secret APIs in Azure Active Directory and Azure Resource Manager

Have you ever wondered what the Tenant ID for Microsoft (microsoft.com) or any other domain is? Have you ever wondered how you can find the right Tenant ID to sign...

Azure AD Authentication with PowerShell and ADAL

In the 3 years I spent on the Azure AD team, I learned a number of useful ‘tricks’ to make my job (and usually the jobs of others) a ton...

Decoding JWT Tokens

Forewarning: I know that “JWT Tokens” is case of RAS syndrome… but I can’t help it! Are your tokens safe when using online decoders? In the identity space, decoding JSON...

Discovery through Experience

I have had a blog more than once in the past. At different points in my life, blogging meant different things. The problem with blogging about myself or other personal...