Prove·sync · inline

Ed25519

Solana / SSH / DKIM

Verify Ed25519 signatures. Argument order: (pubkey, message, sig).

0x0000000000000000000000000000000000000009Explorer
32 bytes · raw 32 bytes
any length
64 bytes · R || S
to: 0x0000000000000000000000000000000000000009chainId 1979 · sync
Output
Click Verify to call the precompile.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

contract Ed25519Verifier {
    address constant ED25519 = address(0x9);

    function verify(bytes32 pubkey, bytes memory message, bytes memory sig)
        external view returns (bool)
    {
        // Argument order: pubkey || message || sig (concatenated, NOT abi-encoded)
        bytes memory input = abi.encodePacked(pubkey, message, sig);
        (bool ok, bytes memory result) = ED25519.staticcall(input);
        require(ok && result.length > 0, "ed25519 call failed");
        return abi.decode(result, (uint256)) == 1;
    }
}