1. A method for playing an online game, the method comprising: defining a unique game board for each user of a plurality of users in the online game, wherein each player in the online game owns the respective unique game board, wherein the online game provides an option for players to visit game boards owned by other players; receiving a first request from a first user to place a game asset in a first game board of the first user, the game asset being a shareable asset, wherein the game asset is associated with a task to be performed in the online game; placing a first copy of the game asset in the first game board, wherein the first user makes progress towards completing the task by interacting with the first copy of the game asset in the first game board; invoking an application programming interface (API) to access a social network server, the social network server returning information on who are friends of the first user in a social network; providing to the first user an option to invite other friends of the first user to partner for completing the task to be performed; receiving a second request from a second user to place the game asset in a second game board of the second user; placing a second copy of the game asset in the second game board, wherein the second user makes progress towards completing the task by interacting with the second copy of the game asset in the second game board, the second game board being different from the first game board, wherein the first user and the second user share the game asset and work together towards completing the task, wherein interactions of the first user and the second user with the game asset cause cumulative progress towards completion of the task; detecting that one of the first user or the second user receives a first transactional reward for interacting with the game asset and giving a second transactional reward to the other user in response to the detecting; and providing a final reward to the first user and to the second user upon completion of the task, wherein operations of the method are executed by a processor.