Smart Contract API Reference
This page provides an indexed list of all primary OmniSocial smart contracts and their public functions, events, and usage notes.
It's intended for developers who want to integrate, extend, or build directly on the OmniSocial protocol without wading through narrative documentation.
🧠 OmniWallet
Smart contract wallet for users. Created via
OmniWalletFactory
. Enables account abstraction, 2FA, persona management, tipping, and meta-actions.
Address: Deployed per user Key Functions:
execute
(address to, uint256 value, bytes data)
Executes a call from the wallet. Used for abstracted actions.
addGuardian
(address guardian)
Adds a new guardian for recovery.
removeGuardian
(address guardian)
Removes a guardian.
setWebAuthnPublicKey
(bytes32 key)
Sets a 2FA-compatible WebAuthn key.
createPersona
(string memory label, string memory handle)
Mints a new PersonaNFT and links it.
switchPersona
(uint256 personaId)
Changes active persona.
sendTip
(address recipient, uint256 amount, string memory message)
Sends a tip with optional message.
Events:
TipSent(address indexed from, address indexed to, uint256 amount, string message)
PersonaCreated(uint256 indexed personaId, string label)
WalletExecuted(address to, bytes data)
📘 More in Identity Subsystem →
🎭 PersonaNFT
ERC-721 NFT that represents a user persona. Created and managed via
OmniWallet
.
Address: Global Key Functions:
createPersona
(address to, string memory label, string memory handle)
Mints new persona to a wallet.
linkPersona
(uint256 personaId)
Links persona to caller wallet.
unlinkPersona
(uint256 personaId)
Detaches persona from caller.
getPersonaMetadata
(uint256 personaId)
Returns label, handle, and metadata URI.
Events:
PersonaMinted(address indexed to, uint256 id, string handle)
🌐 RepModule
Manages reputation domains, scores, and actions. Includes decay, grant, and read functions.
Address: Global Key Functions:
grantReputation
(address user, string memory domain, uint256 amount)
Grants reputation to a user.
getReputation
(address user, string memory domain)
Returns user’s rep in a domain.
decayReputation
(address user, string memory domain)
Reduces rep via decay.
Events:
ReputationGranted(address indexed user, string domain, uint256 amount)
ReputationDecayed(address indexed user, string domain, uint256 amount)
📘 More in Reputation Ontology →
🏛️ DAOFactory
Creates DAO instances with governance settings.
Address: Global Key Functions:
createDAO
(string memory name, address[] memory members)
Deploys new DAO and sets founders.
getDAO
(uint256 id)
Returns DAO contract address by ID.
Events:
DAOCreated(address indexed dao, string name)
📘 More in Governance & DAO Module →
🗳️ DAO (Individual DAO Instance)
Fully on-chain governance logic with proposal lifecycle, timelocks, and voting.
Address: Per instance Key Functions:
createProposal
(string memory title, bytes memory callData, address target)
Creates a new proposal.
castVote
(uint256 proposalId, bool support)
Casts a vote.
executeProposal
(uint256 proposalId)
Executes if approved.
getProposalStatus
(uint256 proposalId)
Returns enum: Pending, Active, Passed, Executed.
Events:
ProposalCreated(uint256 id, string title)
VoteCast(address voter, uint256 id, bool support)
ProposalExecuted(uint256 id)
📘 More in Governance & DAO Module →
🎨 EditionDropFactory
Used by creators to mint content editions, gated drops, and collectibles.
Address: Global Key Functions:
createDrop
(string memory name, uint256 supply, uint256 price, bytes32 merkleRoot)
Deploys a new drop with gating and price.
mint
(uint256 dropId, uint256 quantity)
Mints from a drop (if allowed).
Events:
DropCreated(uint256 id, string name)
DropMinted(address user, uint256 dropId, uint256 amount)
Last updated
Was this helpful?