api-guide-example
api-guide-example copied to clipboard
Example Ethereum smart contract API made with Express.js and Infura.
Smart Contract API Example
Example code for building your own Ethereum smart contract API in Node.js.
Setup
git clone [email protected]:compound-developers/api-guide-example.git
cd api-guide-example
npm install
config.json
The listed contract addresses and ABIs might be out of date. They can be confirmed here https://compound.finance/docs#networks.
server.js
- Be sure to set an environment variable for the Ethereum wallet private key.
- Replace the HTTP Provider URL with your own. Infura provides free API keys.
const walletPrivateKey = process.env.walletPrivateKey;
const web3 = new Web3('https://mainnet.infura.io/v3/_your_api_key_here_');
Running
node server.js
API Endpoint Example Calls
These are the possible calls that can be made with cURL.
curl localhost:3000/wallet-balance/eth/
curl localhost:3000/wallet-balance/ceth/
curl localhost:3000/supply/eth/9000
curl localhost:3000/protocol-balance/eth/
curl localhost:3000/redeem/eth/123
Here is an example of outputs for a series of API calls. The wallet started out with 100 ETH.
curl localhost:3000/wallet-balance/eth/
> 100
curl localhost:3000/wallet-balance/ceth/
> 0
curl localhost:3000/supply/eth/5
> OK
curl localhost:3000/protocol-balance/eth/
> 4.999999999885010676
curl localhost:3000/wallet-balance/eth/
> 94.99788632
curl localhost:3000/wallet-balance/ceth/
> 249.85542658
curl localhost:3000/redeem/eth/249.85542658
> OK
curl localhost:3000/protocol-balance/eth/
> 0
curl localhost:3000/wallet-balance/ceth/
> 0
curl localhost:3000/wallet-balance/eth/
> 99.995909700269046879