follow up project: https://github.com/docent666/qilin
Mark Painter Lukasz Musial Joseph Christopherson Hugh Karp
install zeppelin as per https://github.com/OpenZeppelin/zeppelin-solidity
npm install zeppelin-solidity
Requires ethereum bridge (node bridge --dev) to run in order to allow oraclize query
also use testrpc --mnemonic --accounts 10
to allow stable determination of OAR
Replace OAR in the weather insurance contract with value provided by ether bridge (note: might not be necessary for newer versions of the bridge)
Run truffle compile
, then run truffle migrate
to deploy the contracts onto your network of choice (default "development").
run the tests to see the interactions
- Insurance is a basic contract which allows immediate claim and withdrawal for insured customer
- ManualAuthorizationInsurance is a flavour of insurance requiring a third party authorization, from account assigned by contract owner
- WeatherOracleAuthorizationInsurance is a contract where a cloudy weather in dallas retrieved via oraclize will determine if claim is authorized
install the truffle solidity loader:
npm install truffle-solidity-loader --save-dev
use npm run dev
to execute the server at localhost:8080
- insurer issues a contract representing a pool if insurances, seeds it with initial money
- clients are assigned to contract and upon a payment of premium are added to insured list
- when a required pool size is reached, insurer issues tokens (ERC20 standard) that it posts on an insurance exchange (open or restricted market)
- participants purchase tokens from the insurer and the tokens represent a fraction of the contract money pool and premiums
- insurer can retain a fraction of the tokens, as per its own strategy and can determine the price of tokens initially
- tokens can be traded in secondary market, with value affected by the number of open claims, risk profile, time to expiry
- upon expiry of pool participants can trade their tokens for the money+premium stored in pool
claim process
- when claim is raised, its outcome is referred to authority
- flavours of contract (manually authorized, oracle-based) allow choise of either using authorized individuals and groops (single, committe, vote pool) or automated claim review (via data source available through oracle)
- successful claim allows the customer to withdraw the amount insured
insurance - methods insure, claim, withdraw only with a participation token, fully collateralized, insure only up to financing pool size
participation contracts - issue 100 tokens to participants, associate with insurance contract
presentation to demonstrate the expected flow
deployed to testrpc
integration with oraclize datasource to demo automated confirmation of a claim verification
pluggable claim verification mechanism
working interaction with web ui
UI for customer and insurance exchange
identity verification of the insured via estonian id
association of insurance value with fiat currency exchange price
deployment to public testnet