Tracking Cost, Insurance, and Freight (CIF) with Blockchain

Cost, Insurance, and Freight (CIF) is an expense paid by a seller to cover the costs, insurance, and freight against the possibility of loss or damage to a buyer’s order while it is in transit to a port. The seller is responsible for the costs of any loss or damage to the product until the goods are completely loaded onto a transport ship. The seller must also cover the expenses for customs, export paperwork, addition inspections, or rerouting. Once the freight loads onto the transport, the responsibility and costs transfer to the buyer.

Blockchain can provide visibility, risk management, and immutability to this complex system.

Both the seller and buyers have responsibilities during the CIF process. Here’s the breakdown: 

Seller's Responsibilities
  • Goods in conformity with contract
  • Packaging
  • Commercial invoice
  • Export clearance, duties, & taxes
  • Origin terminal charges
  • Loading charges
  • Transportation charges to named port
  • Minimum insurance coverage
Buyer's Responsibilities
  • Destination terminal charges
  • Assessed warehousing, examination, and/or other fees or penalties
  • Import duty and taxes
  • Transportation arrangement & charges from destination port to final destination
CIF Responsibility and Risk

The graphic above shows how the CIF process works.

CIF is a commonly used system, but it can have major risks and problems. These can include high commercial invoices, someone else sets the fees, unplanned charges, minimal insurance coverage, and limited visibility or control. Blockchain could provide the much needed visibility into the process and eliminate much of the risk.

Taming CIF with Blockchain

in just a few minutes Joel Neidig, SIMBA CEO, was able to build a proof-of-concept smart contract that tracks the entire CIF process. Watch the video to see exactly how he did it.

Copy this Code to Get a Jumpstart!

Copy the code and paste into SIMBA Chain’s Platform to see it all work.

Blockchain can be difficult to comprehend much less implement. SIMBA Chain removes those barriers and makes it easy to build, deploy, and interface with Blockchain applications.

Start Building Now
pragma solidity ^0.5.10;

contract Application {

    constructor() public {}


    /* Function Bank */
    function Bank ( 
        string memory __Bank,
        string memory __Broker,
        string memory name,
        address account,
        string memory _bundleHash
    )
    public {
    }

    /* Function Buyer */
    function Buyer ( 
        string memory __Buyer,
        string memory name,
        address account,
        string memory _bundleHash
    )
    public {
    }

    /* Function Broker */
    function Broker ( 
        string memory __Broker,
        string memory __Carrier,
        string memory name,
        address account,
        string memory _bundleHash
    )
    public {
    }

    /* Function Carrier */
    function Carrier ( 
        string memory __Carrier,
        string memory __Shipper,
        string memory name,
        address account,
        string memory _bundleHash
    )
    public {
    }

    /* Function Product */
    function Product ( 
        string memory __Product,
        string memory __SellerSupplier,
        string memory description,
        uint64 serialnumber,
        string memory category,
        string memory _bundleHash,
        string memory IoTDeviceTemp,
        string memory IoTDeviceVibration
    )
    public {
    }

    /* Function Shipper */
    function Shipper ( 
        string memory __Shipper,
        string memory __SellerSupplier,
        string memory name,
        address account,
        string memory _bundleHash
    )
    public {
    }

    /* Function LoadBoard */
    function LoadBoard ( 
        string memory __LoadBoard,
        string memory __Shipper,
        uint64 datetime,
        uint64 order,
        string memory _bundleHash
    )
    public {
    }

    /* Function SellerSupplier */
    function SellerSupplier ( 
        string memory __SellerSupplier,
        string memory __Buyer,
        string memory name,
        address account,
        string memory _bundleHash
    )
    public {
    }

    /* Function ASN */
    function ASN ( 
        string memory __SellerSupplier,
        uint64 datetime,
        string memory EDI856,
        string memory _bundleHash
    )
    public {
    }

    /* Function Invoice */
    function Invoice ( 
        string memory __SellerSupplier,
        uint64 datetime,
        string memory EDI810,
        string memory _bundleHash
    )
    public {
    }

    /* Function Lockbox */
    function Lockbox ( 
        string memory __Bank,
        uint64 datetime,
        string memory EDI823,
        string memory _bundleHash
    )
    public {
    }

    /* Function Payment */
    function Payment ( 
        string memory __Buyer,
        string memory __Bank,
        uint64 datetime,
        string memory EDI820,
        string memory _bundleHash
    )
    public {
    }

    /* Function PurchaseOrder */
    function PurchaseOrder ( 
        string memory __Buyer,
        uint64 datetime,
        string memory EDI850,
        string memory _bundleHash
    )
    public {
    }
}