A method for multi-factor authentication for blockchain services, the method comprising: holding, by a push-mode multi-factor authentication server, an account of an end-user, the account being identifiable via an accountlD; associating the accountID with an end-user's wallet address termed clientAddr by means of executing a pairing process; establishing, by the end-user, using a software application installed on a computing device, a multi-factor approval status for a multi-factor service in the push-mode multi-factor authentication server; in response to said established multi-factor approval status, calling, by the push-mode multi-factor authentication server, a changeStatus function of a multi-factor provider smart contract operating in at least one blockchain (A, B), the changeStatus function including the established multi-factor approval status, the clientAddr, and a certificate signed by the owner of the multi-factor provider smart contract, termed ownerAddr; modifying, by the multi-factor provider smart contract, the established multi-factor approval status in the at least one blockchain (A, B); delivering, by the multi-factor provider smart contract, a notification to the end-user via the push-mode multi-factor authentication server when the established multi-factor approval status is modified in the at least one blockchain (A, B); and retrieving, by a developer of a smart contract of the end-user, the established multi-factor approval status from the multi-factor provider smart contract by means of providing a smart contract address termed cSCAddr and a blockchain identification termed blockchainlD to the push-mode multi-factor authentication server. holding, by a push-mode multi-factor authentication server, an account of an end-user, the account being identifiable via an accountlD; associating the accountID with an end-user's wallet address termed clientAddr by means of executing a pairing process; establishing, by the end-user, using a software application installed on a computing device, a multi-factor approval status for a multi-factor service in the push-mode multi-factor authentication server; in response to said established multi-factor approval status, calling, by the push-mode multi-factor authentication server, a changeStatus function of a multi-factor provider smart contract operating in at least one blockchain (A, B), the changeStatus function including the established multi-factor approval status, the clientAddr, and a certificate signed by the owner of the multi-factor provider smart contract, termed ownerAddr; modifying, by the multi-factor provider smart contract, the established multi-factor approval status in the at least one blockchain (A, B); delivering, by the multi-factor provider smart contract, a notification to the end-user via the push-mode multi-factor authentication server when the established multi-factor approval status is modified in the at least one blockchain (A, B); and retrieving, by a developer of a smart contract of the end-user, the established multi-factor approval status from the multi-factor provider smart contract by means of providing a smart contract address termed cSCAddr and a blockchain identification termed blockchainlD to the push-mode multi-factor authentication server.