Skip to content
pinecode

Developers

Smart contracts

Every deployed contract, every audit, every upgrade history — public and verifiable.

Live addresses

All contracts are deployed to base-mainnet. The full registry — with Basescan links, ABIs, and upgrade history — lives on the contracts page.

ContractAddressLayer
PinecodeRegistry0x4Ae1f8eC9b3c4b2a18d44F12c0aE8b9cC2199AbDRegistry
PinecodeStaking0x822cF9aED39c44b1AeF8b71082EeA9c12CC3Dc70Curation
PinecodeRewards0x3104a9F1cAaB22C92e7Df88aC04E1B22cDe7Aae0Rewards
PinecodeToken0xE1C7d44a9aCe22F1238b71082AAB5c12CC3Df901Economy
PinecodeForwarder0x5dCe40f1A2384C12CD8b91082A4B5c12CC3df227Recall
PinecodePayments0xA12B4cFaCDeb22B1d99FE712CCa4Bb29bAaf18cDRecall
PinecodeTreasury0x6e2DcC1abdBe44C29Fcb02e0aAB31C9c12c97dB1Governance
PinecodeGovernor0x82aD41912cf7e2bE4F1aF4c2C9aaef03c4d8e2c0Governance

Upgrades & UUPS

Most contracts use the UUPS proxy pattern. The proxy address is permanent; the implementation can be upgraded by a successful governance proposal.

Upgrade history for every contract is queryable on-chain via OwnableUpgradeable events:

solidity
event Upgraded(address indexed implementation);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
iUpgrade authority
Until governance launches, upgrade authority is held by the Pinecode Foundation 4-of-7 multisig. After Q3 2026, only the on-chain Governor can upgrade.

Audits

AuditorScopeReportDate
SpearbitRegistry, Staking, RewardsPDF2025-12-04
ChainSecurityForwarder, Payments, TokenPDF2025-12-18
Cantina (competitive)Full v0.6 suitePDF2026-02-20

Integrating directly

If you'd rather call the contracts without the SDK:

typescript
import { Contract, JsonRpcProvider } from class="text-success/90">"ethers";
import { abis } from class="text-success/90">"@pinecode/sdk";
const provider = new JsonRpcProvider(class="text-success/90">"https:class="text-fg-subtle italicclass="text-success/90">">//mainnet.base.org");
const registry = new Contract(
class="text-success/90">"0x4Ae1f8eC9b3c4b2a18d44F12c0aE8b9cC2199AbD",
abis.PinecodeRegistry,
provider,
);
const seed = await registry.getSeed(418293);
90">console.log(seed.contributor, seed.cid);

ABIs are mirrored from Basescan and exported by the SDK under @pinecode/sdk/abis.