# Is there a proper cryptographic implementation for Ed25519 digital signatures?

**URL:** <https://discourse.julialang.org/t/is-there-a-proper-cryptographic-implementation-for-ed25519-digital-signatures/130700>\
**Category:** General Usage\
**Tags:** cryptography\
**Created:** [July 14, 2025, 1:14pm UTC](https://discourse.julialang.org/t/is-there-a-proper-cryptographic-implementation-for-ed25519-digital-signatures/130700 "2025-07-14T13:14:23Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Stephen](https://avatars.discourse-cdn.com/v4/letter/s/96bed5/32.png) [@Stephen](https://discourse.julialang.org/u/Stephen)\
**Post date:** [July 14, 2025, 1:14pm UTC](https://discourse.julialang.org/t/is-there-a-proper-cryptographic-implementation-for-ed25519-digital-signatures/130700/1 "2025-07-14T13:14:23Z")

</div>

I have generate the Ed25519 Key Pair for [API request on Binance](https://www.binance.com/en/support/faq/detail/6b9a63f1e3384cf48a2eedb82767a69a).

And here is a [Python sample code](https://developers.binance.com/docs/binance-spot-api-docs/testnet/rest-api/endpoint-security-type) to show how to sign the payload with an Ed25519 key.

> ```julia
> #!/usr/bin/env python3
> 
> import base64
> import requests
> import time
> from cryptography.hazmat.primitives.serialization import load_pem_private_key
> 
> # Set up authentication
> API_KEY='put your own API Key here'
> PRIVATE_KEY_PATH='test-prv-key.pem'
> 
> # Load the private key.
> # In this example the key is expected to be stored without encryption,
> # but we recommend using a strong password for improved security.
> with open(PRIVATE_KEY_PATH, 'rb') as f:
> private_key = load_pem_private_key(data=f.read(),
> password=None)
> 
> # Set up the request parameters
> params = {
> 'symbol': 'BTCUSDT',
> 'side': 'SELL',
> 'type': 'LIMIT',
> 'timeInForce': 'GTC',
> 'quantity': '1.0000000',
> 'price': '0.20',
> }
> 
> # Timestamp the request
> timestamp = int(time.time() * 1000) # UNIX timestamp in milliseconds
> params['timestamp'] = timestamp
> 
> # Sign the request
> payload = '&'.join([f'{param}={value}' for param, value in params.items()])
> signature = base64.b64encode(private_key.sign(payload.encode('ASCII')))
> params['signature'] = signature
> 
> # Send the request
> headers = {
> 'X-MBX-APIKEY': API_KEY,
> }
> response = requests.post(
> 'https://api.binance.com/api/v3/order',
> headers=headers,
> data=params,
> )
> print(response.json())
> 
> ```

But I don’t know how to play with it in julia, should I use a special library for Ed25519 key? Is there a such library?
