Ethereum for Drupal + PHP

#DrupalEthereum @digitaldonkey09


  • Semi-decentralization
  • Ethereum-PHP library
  • Drupal Ethereum module
  • UX challenges

Why care about Web 2.0?



But that's not decentralised!

Ya. Goal is semi-decentralized  (for now).

Many Dapps add a database

  • cache for faster queries
  • optional app metadata
  • UI loading response time
  • triggers / watching contracts
  • user profiles


Client signs using Transaction-signers

Server just pulls data

(no private key on Server)

Open Source 

  • Create standards, EIPs
    and enable many to adopt them easily
  • Many applications can't be build on Ethereum/Client JS only. They require searching, caching, geo searches....
  • Global standards, local markets

 road to a decentralized economy

a PHP library

Similar Ethereum Integration Libraries

  • pyethereum
  • ethereumJ 

and many more...

Full Client?


Complementary Tools

The goal is not a full client, but a toolset to easily build services connecting the web 2.0 to Ethereum 

Ethereum-PHP Library

  • Abstract & simplify Ethereum JSON RPC API
  • Provide keccak hash, EC-Verify in PHP
  • Call SmartContract like in web3
  • Lots of tests, ability to test against smart contracts
  • API documentation:

connector for server pulls

Drupal Ethereum
a Drupal module

Mapping Ethereum to Drupal

Infrastructure modules

Servers (Ethereum-nodes)

List Servers, gather information (Server Entity)

Deployability, Testability


Ethereum Addresses
Map Accounts to Drupal Accounts
➡ Identity for known user group


               Read (own contracts/known ABI)

               ​Log TX based on Contract interaction

               Process Events data in Drupal

          Smart Contracts

               Manage deploy as Drupal Admin

               Provide ABI to process data in Drupal & frontend

               Watch for Blockchain Events triggers by Contracts

Architecture challenges

Current features

Ethereum Signup

  • Challenge/response authentication
  • No Blockchain interaction - no fee

Ethereum user connector

  • Registry contract, which may be changed to a paywall
  • Example module for contract interaction

Basic Infrastructure

  • Manage Networks, Ethereum Nodes,  Contracts
  • Some frontend interaction experiments


Text + Private Key => Signature
Text + Signature Text  =>  Public Key (--> Ethereum Address)

Ethereum Signup: Challenge-Response account creation + login

Ethereum User Registry

User Interaction

The challenge to reach mainstream users

"Web of wallets"

diagram by Bobby Dresser (uPort)

Stumbling towards mainstream?

  • How to help users not lose their key?
  • Deal with Identity contracts (no ECverify available)
  • Integrate multiple wallets - allow users to chose
  • Is the user/wallet on the right network? 
  • Unlocked account required?
  • How to onboard new users, which have no wallet?

         ⇢ Experiment with UX interactions

         ⇢ Develop standards for Dapp interaction

Architecture summary

(MetaMascara is an experimental zero-install signer)

Mascara & Dapp launcher

everything is an experiment

Visualize TX signer state 

Initialize dapplet when requirements are met

Dapp launcher wish list

  • Support all major browsers on desktop and mobile
  • TX signer supporting major wallets / identity providers
  • Does not depend on a centralized service
  • Fallback for users who don't have a wallet (Metamask Mascara?)
  • Standards for interactions for users
    • Learn to chose right network / unlocked account only once
  • Standards for Developers
    • Write once implement all
    • Not forced to use any particular front-end tech

Questions & Thank You

  • Tweet about #DrupalEthereum

The development of Drupal Ethereum Module
has been sponsored by ConsenSys


Lots of Thanks to early
contributors & testers

and all others I talked to

(Commit stats refer to the various involved projects)