Verifying Contracts
Verify smart contracts on RISE explorer using Foundry
Verify your deployed contracts on the RISE Testnet Explorer to make the source code publicly viewable.
Configuration
Configure verification in your foundry.toml:
[profile.default]
src = "src"
out = "out"
libs = ["lib"]
solc = "0.8.30"
[rpc_endpoints]
rise = "https://testnet.riselabs.xyz"RISE uses Blockscout for contract verification. You don't need an API key - just specify --verifier blockscout when verifying.
Deploy and Verify
The easiest way is to deploy and verify in a single command:
forge create \
--rpc-url https://testnet.riselabs.xyz \
--private-key $PRIVATE_KEY \
src/Counter.sol:Counter \
--verify \
--verifier blockscout \
--verifier-url https://explorer.testnet.riselabs.xyz/api/Verify Existing Contract
To verify an already deployed contract:
forge verify-contract \
--rpc-url https://testnet.riselabs.xyz \
<DEPLOYED_CONTRACT_ADDRESS> \
src/Counter.sol:Counter \
--verifier blockscout \
--verifier-url https://explorer.testnet.riselabs.xyz/api/With Constructor Arguments
If your contract has constructor arguments:
forge verify-contract \
--rpc-url https://testnet.riselabs.xyz \
<DEPLOYED_CONTRACT_ADDRESS> \
src/Lock.sol:Lock \
--verifier blockscout \
--verifier-url https://explorer.testnet.riselabs.xyz/api/ \
--constructor-args $(cast abi-encode "constructor(uint256)" 1706745600)Using Config Aliases
If you configured the RPC endpoint in foundry.toml, you can use the alias:
forge verify-contract \
--rpc-url rise \
<DEPLOYED_CONTRACT_ADDRESS> \
src/Counter.sol:Counter \
--verifier blockscout \
--verifier-url https://explorer.testnet.riselabs.xyz/api/Verify via Script
Verify contracts deployed via scripts by adding the --verify flag:
forge script script/Counter.s.sol:CounterScript \
--rpc-url https://testnet.riselabs.xyz \
--broadcast \
--verify \
--verifier blockscout \
--verifier-url https://explorer.testnet.riselabs.xyz/api/Important Notes
- The RISE explorer uses Blockscout, so always specify
--verifier blockscout - Constructor arguments are ABI-encoded - use
cast abi-encodeto encode them - Never store private keys in source code
View Verified Contract
After verification, view your contract on the RISE Testnet Explorer. The "Contract" tab will show your source code and allow direct interaction with contract functions.