Skip to content

Latest commit

 

History

38 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ivy contracts

The smart contracts behind Ivy, an onchain social network on Kaia. Identity, usernames, likes, tips, transfers and revenue distribution all live here.

This repository exists so that nothing on Ivy has to be taken on trust. Every claim we make in public is a function call away from being checked.

Check it yourself

The contracts that collect and distribute money have no owner. Not a renounced owner, not a timelocked owner: no owner() function at all, so the call reverts.

cast call 0x6B6c81010C124B3aA8F5342D1ed49883EBE04cde "owner()" \
  --rpc-url https://public-en.node.kaia.io
# execution reverted

The fees are compiled as constants, which means they cannot be changed later because no function exists that would change them.

cast call 0x6B6c81010C124B3aA8F5342D1ed49883EBE04cde "TO_CREATOR()(uint256)" \
  --rpc-url https://public-en.node.kaia.io
# 4000000000000000  (0.004 KAIA, the creator's share of a like)

Every address below was checked against Kaia mainnet before publishing.

Live addresses

Kaia Mainnet, chainId 8217. Verified sources on KaiaScan.

Ownerless

owner() reverts on all of these. There is no admin function, no upgrade path and no way for anyone to redirect the funds they handle.

Contract Address
IvyToken 0xfb3b9601b6aE17A0Aa6765e74b56ED56AA58E724
IvySharePool 0x160E9Ff3484802b766f45FE3dCC3a717138E555C
IvyStakingPool 0x0c94FEabFE409895472d6e475d0DE7Cc88F3cEe1
LikeEngine 0x6B6c81010C124B3aA8F5342D1ed49883EBE04cde
TipEngine 0x098366647c8e5C07242f8787Aa4E75579D5C7551
PostFeeEngine 0xa5055Fd20474f1Ac49C9f5273b663088302f083b
TransferEngine 0x8f9940f951C5594Ec3a7c912DF116970707FdD3F
PromptMarktEngine 0xeB3B2A0644A450954e9E0fCD3a6eDF7ff4e9a001
IvyNFT 0xA5C8bB70b8ad5153a8cf7Aba1Cd0017fcA6b6ccf
IvyNFTMarketplace 0xC45f7f28F950696E6C24C4eF70dd97528556791E
IvyCuration 0xFD7F5470F27e2B325B877681952D3dd8a109B206
IvyChannelRegistry 0xCAc1D3529D09b500D04774e61Ee4a5a60d5a8FD2
IvyVideoRegistry 0xa0C690f4C57eC1aA11a50b1520d1226A79f4955f
IvyUsernameMarket 0x8AEd1765D9cB46019fFEe9fCF288f20C8d70c8C1
IvyConverter 0xc11C1D6925FddDB212cF021f06bD1d7A1414F2d2

With an owner

Four contracts do have an owner, and we would rather say so here than have you discover it. Identity carries human processes such as account recovery, so it was deliberately left flexible while the system settles.

Contract Address What the owner can do
IvyRegistry 0x43522E0aB410246C014359B7F5c55F7a196dddFc Set the verifier, backend signer and username contract. Upgrade the implementation (UUPS).
IvyVerifier 0x4aF29818700638e0F5f3d9545801e85F77aB64FF Revoke a verification, change the verification fee, change where that fee goes, set the backend signer. Upgrade the implementation (UUPS).
IvyUsername 0x3a5a665B9D1de5Bf87FC53Ff4Cd712754EEa474a Reserve or unreserve a username. Nothing else: priceOf is pure, the SharePool and registry addresses are immutable, and the contract is not upgradeable.
IvyGameRegistry 0xaE2B3cF0222C7ae8E507c78f472AE0AdA54ED630 Add games to the store ledger, upgrade the implementation. Holds no funds.

The first three are currently owned by 0x9F4F469B970268e5933B9df63D5Ed8719E590381, which is an externally owned account rather than a multisig. They will be handed to a Safe requiring 2 of 3 signatures once the system has settled, and we will say so publicly when that happens. Until then, this is the honest state.

Fees

All values below are constant in the bytecode. Read them from the contracts if you would rather not take the table's word for it.

Action Fee Creator Referrer SharePool
Like 0.005 KAIA 80% 5% 15%
Tip 0.1 KAIA minimum 80% 5% 15%
Post 0.005 KAIA 0% 5% 95%
KAIA transfer 0.01 KAIA 0% 0% 100%
Prompt sale up to 100 KAIA 80% 0% 20%

Where there is no referrer, the referrer's share goes to the SharePool. It never stays with us: there is no treasury contract in the current deployment.

Username minting is priced by length, and the whole fee goes to the SharePool: 100,000 KAIA for one character, then 10,000, 1,000, 100, 10, and 1 KAIA for six characters or more.

A share of the SharePool is acquired by burning 1,000,000 IVY. Distribution runs at least every 30 days and anyone can trigger it.

Layout

src/          contracts
script/       Foundry deployment scripts
test/         Foundry tests
deployments/  live addresses per chain id, with what owner() returns

Several contracts exist in two versions. The V2 files are what is deployed today; the originals are kept because they were once live and their transactions are still on chain. IvyVideoRegistry.sol and Treasury.sol in particular belong to the abandoned 2026-05 deployment, which had a platform fee share and an upgradeable owner. They are not deployed. deployments/8217.json lists those old addresses under abandoned so that an address found in an old transaction can be identified rather than mistaken for a live one.

Build and test

Requires Foundry.

forge build
forge test

Security

Found something? Write to info@ivy.live. Please do not open a public issue for a vulnerability that is still exploitable.

See SECURITY.md.

License

MIT. See LICENSE.

About

Smart contracts behind Ivy, the onchain social network on Kaia

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages