A computer-implemented method for decentralized and scalable trust among a plurality of decentralized applications, the method comprising: receiving , at a first decentralized application , a signature associated with a first public key, the signature being created by a trusted root application ; receiving , at the first decentralized application , data representing one or more permissions of the first decentralized application specified by the trusted root application and signed by the trusted root application , wherein the data representing one or more permissions of the first decentralized application specified by the trusted root application are a subset of permissions of the trusted root application , wherein the one or more permissions of the first decentralized application specified by the trusted root application define one or more access rights of the first decentralized application ; signing , at the first decentralized application , a second public key associated with a second decentralized application ; signing , at the first decentralized application , data representing one or more permissions specified by the first decentralized application , wherein the data representing one or more permissions specified by the first decentralized application are a subset of the one or more permissions of the first decentralized application , wherein the one or more permissions specified by the first decentralized application define one or more access rights of the second decentralized application ; and providing the signature associated with the second public key and the signed data representing one or more permissions specified by the first decentralized application , in order to thereby provide trust between the first decentralized application and the second decentralized application . receiving , at a first decentralized application , a signature associated with a first public key, the signature being created by a trusted root application ; receiving , at the first decentralized application , data representing one or more permissions of the first decentralized application specified by the trusted root application and signed by the trusted root application , wherein the data representing one or more permissions of the first decentralized application specified by the trusted root application are a subset of permissions of the trusted root application , wherein the one or more permissions of the first decentralized application specified by the trusted root application define one or more access rights of the first decentralized application ; signing , at the first decentralized application , a second public key associated with a second decentralized application ; signing , at the first decentralized application , data representing one or more permissions specified by the first decentralized application , wherein the data representing one or more permissions specified by the first decentralized application are a subset of the one or more permissions of the first decentralized application , wherein the one or more permissions specified by the first decentralized application define one or more access rights of the second decentralized application ; and providing the signature associated with the second public key and the signed data representing one or more permissions specified by the first decentralized application , in order to thereby provide trust between the first decentralized application and the second decentralized application . <EOS>