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").
#Use
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
#process flow
- 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
#versions ###0.0.1 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 ###0.0.2 integration with oraclize datasource to demo automated confirmation of a claim verification pluggable claim verification mechanism ###future 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