Developer Reference & Integration
Solidity & REST Query API
Integrate SOVA Protocol reputation queries directly into your Whitechain smart contracts via Solidity view calls or fetch registry-backed attestations via REST endpoints.Solidity Onchain Query Interface
Query attestation state directly inside your Whitechain smart contracts. `SovaAttestationRegistry` provides gas-efficient view methods to verify subject scores, status enums, and expiration timestamps.
ISOVARegistry.sol (Solidity v0.8.20)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface ISOVARegistry {
enum AttestationStatus {
NONE,
ACTIVE,
EXPIRED,
REVOKED,
ISSUER_SUSPENDED,
ISSUER_INACTIVE,
ISSUER_REVOKED,
SCHEMA_INACTIVE
}
struct AttestationView {
bytes32 attestationId;
bytes32 subjectId;
bytes32 schemaId;
bytes32 dataHash;
address issuer;
uint64 issuedAt;
uint64 expiresAt;
uint64 issuerEpoch;
uint64 revokedAt;
bytes32 revocationReason;
AttestationStatus status;
bool usable;
}
function getAttestationView(bytes32 attestationId) external view returns (AttestationView memory);
function isUsable(bytes32 attestationId) external view returns (bool);
}Example: Reputation-Aware Lending Pool
WhitechainLendingPool.sol
contract WhitechainLendingPool {
ISOVARegistry public immutable registry;
constructor(address _registry) {
registry = ISOVARegistry(_registry);
}
function getBorrowCollateralRatio(bytes32 attestationId) external view returns (uint256 ratioBps) {
// 1. Authoritative check onchain
require(registry.isUsable(attestationId), "SOVA: Attestation unusable or revoked");
ISOVARegistry.AttestationView memory viewData = registry.getAttestationView(attestationId);
// 2. Active status & expiration validation
require(viewData.status == ISOVARegistry.AttestationStatus.ACTIVE, "SOVA: Not active");
require(block.timestamp <= viewData.expiresAt, "SOVA: Attestation expired");
// 3. Dynamic collateral ratio optimization (e.g. 110% vs 150%)
return 11000; // 110% collateral for verified high-reputation souls
}
}Whitechain Sepolia Active Addresses
SovaAttestationRegistry0x953a4edC84CEBdC113688310F54adce6Dc2c8bCf ↗
SovaTimelockMultisig0x9B1d...a341 ↗
SOVA Read API (Health)http://127.0.0.1:3000/health