
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
poh-tron-contracts
Advanced tools
Solidity contracts for verifying proof-of-humanity on-chain for TRON
Set of convenient utilities for verifying proof-of-humanity on-chain within Solidity smart contracts.
Proof-of-Humanity is signed proof that the transaction sender is a human rather than a bot. We are trusting the proof signer (validator) that they did use some method to prove sender humanity off-chain. That could be a CAPTCHA, biometric verification, and so on. Now we can check the validity and uniqueness of this proof on-chain before processing the transaction.
See also:
Proof-of-HUMANity on-chain: protect your smart contracts from bots
Proof-of-Humanity TRON hCaptcha Validator API
This is a basic abstract contract you should inherit from. It exposes the following API:
setHumanityValidator(<address>) – sets the address of the humanity validator you trust. Usually, this is the address of the account used to sign proof-of-humanity in the backend server you are in control or trust. Here is an example server for hCaptcha.
Validator could be set either in contract
constructor, or later, by the contract owner.
basicPoH(<proof>) – ensures that the basic proof is valid and never seen before.
sovereignPoH(<proof>) – ensures that the sovereign proof is valid and never seen before.
If the proof is invalid, transaction is rejected.
proofmust be provided as a parameter for a modified method (example).
Two types of proof-of-humanity are supported: basic and sovereign.
The basic proof is 101 bytes long. It is a random challenge and a timestamp signed by a trusted validator.
random challenge | timestamp | validator signature
32 bytes | 4 bytes | 65 bytes
Sovereign proof includes the signature of the transaction sender over the random challenge. This is useful if you want the proof to be tightened to the sender's address. The sovereign proof is 166 bytes long.
random challenge | sender signature | timestamp | validator signature
32 bytes | 65 bytes | 4 bytes | 65 bytes
npm install poh-tron-contracts
HumanOnly.sol contract`import "poh-tron-contracts/contracts/HumanOnly.sol";`
HumanOnlycontract MyContract is HumanOnly
constructor() {
setHumanityValidator(0x...);
}
This is the address used to sign proofs on a backend server you trust.
proof parameter and one of the PoH modifiersfunction doSomethingImpotant(bytes calldata proof) public basicPoH(proof)
Ensure to provide a valid
proofwhen calling this function from your dApp.
Alex Bakoushin
MIT
FAQs
Solidity contracts for verifying proof-of-humanity on-chain for TRON
We found that poh-tron-contracts demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.