Happy to have shared at the Solana Summit today our new Solana wallet support for Midnight!
@solana users will be able to do private swaps and interact with private DeFi directly from their Solana wallets (no separate install required!)
After many years of work, CIP113 has been officially merged to the main branch of Cardano CIPs.
This means the official standard for programmable tokens on Cardano, including securities, is out.
Many great minds have contributed to the standard, but in particular @CryptoJoe101 has worked very hard to complete it and make it production ready.
Now the standard is in the hands of the old and new Cardano projects to use!
DReps and SPOs: 7 days remaining ⏳
Cardano governance is driven by DReps, Stake Pool Operators, and Constitutional Committee, with different actions requiring different voters.
Two actions expiring September 1 require separate approval from both DReps and SPOs:
🔹 Update Constitutional Committee 2026
🔹 minPoolCost and Plutus memory limits update
For these actions, DRep >67% and an SPO threshold >51% is required - documentation available to support SPO voting can be found 👇️
https://t.co/xE3rou5NYD
I've extended my open source VFX playground built with @threejs. New 10 fully real-time customizable abilities. 3 Radial abilities, 3 boosts, 3 portals & 1 Linear casted ability.
For this project I used Minimax-M3, one of the cheapest models around & impressive for what it costs.
Everything you see is generated: no textures, no sprite sheets, no baked meshes.hand-written GLSL, GPU-simulated instanced particles, world position resolved in the vertex shaders...
Source code : https://t.co/dNKjM2hviN
[1/2] Some of you might recognise the procedural animation we did in our last game - Rusted Moss. We are using the same techniques for Iron Bramble. This time, with dress physics!
#indiedev#indiegame
I wanted to learn more about Leios, so I vibe-coded this visualization TUI on top of Pallas.
It's not meant for operations, just a personal visual aid to understand the flow of the protocol. It was quite useful, but it also raised some new questions.
What you can see is an initiator node connected to the Musashi Dojo. The TUI is divided into two horizontal lanes:
- top lane: the Praos part, a sequence of ranking blocks (RBs)
- bottom lane: the Leios part, a sequence of endorser blocks (EBs)
The X-axis represents time, so you see blocks ordered from left to right, representing the sequence of the chain.
The interesting part to notice from the video: the heavy lifting of Leios (votes, tx processing, etc.) happens between RBs, making use of the idle time.
Being a vibe-coded PoC, the TUI uses some heuristics to work around much of the complexity and the current protocol gaps. For example:
- the link between RBs and EBs is estimated using slot proximity
- the votes are just a counter, and the denominator is the peak number of voters seen so far
One question that popped up and I'm still looking into:
the idle time doesn't seem to be enough to observe all the EB votes and download all the txs. This is probably related to data diffusion; maybe client prioritization on the responder side; maybe just bad performance on my code. 🤷
As a protocol building on Cardano, are you ready to join BIFROST?
Are you ready to get Bitcoin liquidity on your dApp?
Are you ready to potentially onboard a completely different cohort of users?
Even if you think you are not, you actually are:
Our Dev team will assist you for FREE. 😤
You can find more information on how to apply here:
https://t.co/L9WTslOsQL
1/ Blockfrost belongs to the people who build on it.
Today, the proposal to make it a free, community-governed access layer, owned by the ecosystem, is live on-chain.
The signing math
When you sign a message with Ed25519, two values get published on-chain as your signature: R and s.
They're computed like this:
- R = k · G (k = the secret nonce, G = a fixed public point)
- s = k + H(R, A, M) · a
Where:
- k = the nonce (must be secret)
- a = your private key (the thing that must never leak)
- A = your public key
- M = the message (transaction)
- H(...) = a hash anyone can compute from public data
(Simplified, the real scheme works modulo the curve order and the nonce is derived from a secret value inside the seed, not the raw seed. But the shape below is exactly what matters.)
Both R and s are public. They're literally in the signature on the blockchain.
Now solve for the private key
Look at the second equation and rearrange it:
a = (s − k) / H(R, A, M)
Everything on the right side is public except k, the nonce. So the only thing protecting your private key a is that nobody knows k.
That's the whole game. Secrecy of k = secrecy of your key.
What SecondFi broke
Correct Ed25519 derives the nonce from a secret:
k = H(secret_seed, M) ← depends on something private
You can't recompute k, because you don't have secret_seed.
SecondFi instead did something equivalent to:
k = H(M) ← depends ONLY on the public message
Now anyone reading the chain can:
1. Read the transaction M → compute k = H(M)
2. Read s and R from the signature
3. Compute H(R, A, M)
4. Plug into a = (s − k) / H(R, A, M) → recover the private key
A toy numeric walkthrough
Forget elliptic curves; use plain arithmetic to see the shape.
Say:
- Private key a = 7 (secret)
- Message hash H(R, A, M) = 3 (public)
- Nonce k = 5
Then the published signature value is:
s = k + H·a = 5 + 3·7 = 26
Good system: an attacker sees s = 26 and H = 3, but not k. Two unknowns (k and a), one equation unsolvable.
SecondFi's system:
the attacker recomputes k = 5 from public data.
Now:
26 = 5 + 3·a → a = (26 − 5) / 3 = 7
The private key falls right out. One signature, no guessing.
Why this beats classic "nonce reuse"
The famous bug, the one that broke the Sony PlayStation 3 and some early Bitcoin wallets, was reusing the same k across two different messages. That took two signatures to cancel the unknowns and solve.
Here you need only one, because k isn't unknown at all. It's computable from data already on chain. Every single transaction a user ever signed is a standalone leak of their key.
The fix was never "understand the curve math." It was "don't be the one writing it."
Libsodium and noble/ed25519 are good examples: both open, both audited, and both give sign() no parameter to supply the nonce.