code: async def main():
      
      # Create Client from endpoint string in Duniter format
      client = Client(BMAS_ENDPOINT)
  
      # Get the node summary infos to test the connection
      response = await client(bma.node.summary)
      print(response)
  
      # prompt hidden user entry
      salt = getpass.getpass("Enter your passphrase (salt): ")
  
      # prompt hidden user entry
      password = getpass.getpass("Enter your password: ")
  
      # create keys from credentials
      key = SigningKey.from_credentials(salt, password)
      pubkey_from = key.pubkey
  
      # prompt entry
      pubkey_to = input("Enter recipient pubkey: ")
  
      # capture current block to get version and currency and blockstamp
      current_block = await client(bma.blockchain.current)
  
      # capture sources of account
      response = await client(bma.tx.sources, pubkey_from)
  
      if len(response['sources']) == 0:
          print("no sources found for account %s" % pubkey_to)
          exit(1)
  
      # get the first source
      source = response['sources'][0]
  
      # create the transaction document
      transaction = get_transaction_document(current_block, source, pubkey_from, pubkey_to)
  
      # sign document
      transaction.sign([key])
  
      # send the Transaction document to the node
      response = await client(bma.tx.process, transaction.signed_raw())
  
      if response.status == 200:
          print(await response.text())
      else:
          print("Error while publishing transaction: {0}".format(await response.text()))
  
      # Close client aiohttp session
      await client.close()
docs: Main code