public string PublishRouteProof(Route route)
        {
            try {
                _logger.LogInformation($"Proof for route {route.Data?.Name} started");

                var start = DateTimeOffset.Now;

                var tangleProofRoute =
                    JsonConvert.SerializeObject(
                        new TangleRouteProof()
                {
                    Hash = route.Hash
                }
                        );

                var address =
                    _iotaRepository
                    .GetNewAddresses(_seed, 0, 1, SecurityLevel.Medium)
                    .First();

                _logger.LogInformation($"Address for route {route.Data?.Name} generated. Took {(DateTimeOffset.Now - start).TotalSeconds}");

                var bundle = new Bundle();
                bundle.AddTransfer(new Transfer {
                    Address = address,
                    Message = TryteString.FromUtf8String(
                        tangleProofRoute
                        ),
                    Tag       = Tag.Empty,
                    Timestamp = Timestamp.UnixSecondsTimestamp
                });

                bundle.Finalize();
                bundle.Sign();

                _iotaRepository.SendTrytes(bundle.Transactions);//, 27, 14);

                _logger.LogInformation($"Proof for route {route.Data?.Name} finished. Took {(DateTimeOffset.Now - start).TotalSeconds}");

                return(address.Value);
            }
            catch (Exception e) {
                _logger.LogError(e.ToString());
                throw;
            }
        }