Canvas protocol