def get_derivative_account(root_account, index):
    seed_bytes = b'modlpy/utilisuba'
    root_account_bytes = bytes.fromhex(Keypair(root_account).public_key[2:])
    index_bytes = int(index).to_bytes(2, 'little')
    entropy = blake2b(((seed_bytes + root_account_bytes) + index_bytes), digest_size=32).digest()
    input_bytes = (bytes([42]) + entropy)
    checksum = blake2b((b'SS58PRE' + input_bytes)).digest()
    return base58.b58encode((input_bytes + checksum[:2])).decode()
def get_derivative_account(root_account, index):
    seed_bytes = b'modlpy/utilisuba'
    root_account_bytes = bytes.fromhex(Keypair(root_account).public_key[2:])
    index_bytes = int(index).to_bytes(2, 'little')
    entropy = blake2b(((seed_bytes + root_account_bytes) + index_bytes), digest_size=32).digest()
    input_bytes = (bytes([42]) + entropy)
    checksum = blake2b((b'SS58PRE' + input_bytes)).digest()
    return base58.b58encode((input_bytes + checksum[:2])).decode()