A computer implemented method for performing a transfer, the method comprising: scanning entries in a distributed hash table distributed across a first network, the DHT comprising a plurality of entries, each entry comprising an invitation to perform an exchange and a link to a transaction on a peer-to-peer (P2P) distributed ledger distributed across a second network, each invitation including metadata comprising an indication of entities to be exchanged and one or more conditions for the exchange; determining a match between a first set of metadata in a first invitation of a first entry from a first user and a second set of metadata in a second invitation of a second entry from a second user, the determining comprising: identifying a match between indications of entities to be exchanged in the first and second invitations; and identifying a match between one or more of the conditions of the first invitation and one or more of the conditions of the second invitation; generating a first exchange transaction; and broadcasting, over the second network, the first exchange transaction for inclusion on a P2P distributed ledger, wherein the first exchange transaction comprises: an indication of a first quantity of a cryptocurrency to be transferred; a first input provided from an output of a transaction on the P2P distributed ledger linked to the first entry; a first script the first script signed by: a first user private key associated with the first user, a first third-party private key associated with a first third-party, wherein the first script comprises: the first set of metadata, a first user public key associated with the first user, the first user public key being a cryptographic pair with the first user private key, and a first third-party public key pair associated with the first third-party, the first third-party public key being a cryptographic pair with the first third-party private key and a first output indicating a transfer of a first quantity of the first entity of said first invitation from the first user to the second user. scanning entries in a distributed hash table distributed across a first network, the DHT comprising a plurality of entries, each entry comprising an invitation to perform an exchange and a link to a transaction on a peer-to-peer (P2P) distributed ledger distributed across a second network, each invitation including metadata comprising an indication of entities to be exchanged and one or more conditions for the exchange; determining a match between a first set of metadata in a first invitation of a first entry from a first user and a second set of metadata in a second invitation of a second entry from a second user, the determining comprising: identifying a match between indications of entities to be exchanged in the first and second invitations; and identifying a match between one or more of the conditions of the first invitation and one or more of the conditions of the second invitation; identifying a match between indications of entities to be exchanged in the first and second invitations; and identifying a match between one or more of the conditions of the first invitation and one or more of the conditions of the second invitation; generating a first exchange transaction; and broadcasting, over the second network, the first exchange transaction for inclusion on a P2P distributed ledger, an indication of a first quantity of a cryptocurrency to be transferred; a first input provided from an output of a transaction on the P2P distributed ledger linked to the first entry; a first script the first script signed by: a first user private key associated with the first user, a first third-party private key associated with a first third-party, wherein the first script comprises: the first set of metadata, a first user public key associated with the first user, the first user public key being a cryptographic pair with the first user private key, and a first third-party public key pair associated with the first third-party, the first third-party public key being a cryptographic pair with the first third-party private key and a first output indicating a transfer of a first quantity of the first entity of said first invitation from the first user to the second user. a first user private key associated with the first user, a first third-party private key associated with a first third-party, the first set of metadata, a first user public key associated with the first user, the first user public key being a cryptographic pair with the first user private key, and a first third-party public key pair associated with the first third-party, the first third-party public key being a cryptographic pair with the first third-party private key and a first output indicating a transfer of a first quantity of the first entity of said first invitation from the first user to the second user.