{"repo":"zemse/poseidon2-evm","free":true,"listed":false,"github":"https://github.com/zemse/poseidon2-evm","clone":"git clone https://github.com/zemse/poseidon2-evm.git","description":"Gas efficient Poseidon2 hash on EVM","language":"Solidity","stars":29,"topics":["evm","huff","solidity","yul","poseidon2"],"license":"MIT","category":"blockchain-web3","readme_excerpt":"Poseidon2 for EVM Gas-optimized implementations of the Poseidon2 hash function for the EVM. Implementation Details See impl-specific documentation: - BN254 (t=4, Rf=8, Rp=56) Goldilocks support is planned. Gas Costs Implementation hash 1 hash 2 hash 3 -------------- ------ ------ ------ Yul 20,304 20,304 20,304 Huff 14,845 14,845 14,845 It is recommended to use Yul implementation. Huff is experimental. Pure solidity impl is still kept in this repository for reference, but it costs 200k+ gas. Deployed Contracts Contracts are deployed with same address on popular EVM testnets. BN254 (t=4, Rf=8, Rp=56) Both contracts have same interface IPoseidon2. Implementation Address -------------- ------------------------------------------ Yul 0xB2542195Ad96AcfBC962C48A97D7640A9F5386D2 Huff 0xB25421813D7d7B8001BB19d6b70642A277422eff If you need help deploying the contract on new network, feel free to msg @zemse. Usage example Both contracts implement the IPoseidon2 interface and are live at the same address on popular EVM networks (see Deployed Contracts above). Inputs are reduced mod PRIME on-chain, so any uint256 yields a correct, deterministic hash — just point the interface at the address and call it. Development - Run tests: forge test - Generate gas report: ./gas-report.sh - Generate yul code: npm run generate:yul - Generare huff code: npm run generate:huff Tests include correctness vectors, fuzz testing against the reference Solidity implementation, and overflow safety checks for the","default_branch":null,"files":null,"tree":[],"storefront":"/r/zemse","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/zemse/poseidon2-evm/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}