Proton Contract
Proton contract, the standard ERC721 token of the protocol. All Protons are Particles.

Get a Proton's creator, sale price, etc.

Gets the creator of a Proton.
function creatorOf(
uint256 tokenId
) external view virtual override returns (address);
Parameter / Return Value
Description
tokenId
id of Proton
return
address of token creator

Gets current sale price of a Proton in Ether.
function getSalePrice(uint256 tokenId)
external
view
virtual
override
returns (uint256);
Parameter / Return Value
Description
tokenId
id of Proton
return
sale price in Ether

Gets most recent price that Proton sold for in Ether.
function creatorOf(uint256 tokenId)
external
view
virtual
override
returns (address);
Parameter / Return Value
Description
tokenId
id of Proton
return
sale price in Ether

Gets creator royalties for a given creator address. Royalties are how much of the sale price will be directed to the Proton's creator whenever a Proton is sold.
function getCreatorRoyalties(
address account
) external view virtual override returns (uint256);
Parameter / Return Value
Description
address
creator account
return
royalties earned by creator (in ETH)

Gets creator royalties for a given tokenId. Royalties are how much of the sale price will be directed to the Proton's creator whenever a Proton is sold.
function getCreatorRoyaltiesPct(
uint256 tokenId
) external view virtual override returns (uint256);
Parameter / Return Value
Description
tokenId
id of Proton
return
royalty percentage on Proton sale

Gets creator royalties receiver. Can be either the creator or a 3rd-party, such as a charity, relative, or any other account of choice.
function getCreatorRoyaltiesReceiver(
uint256 tokenId
) external view virtual override returns (address);
Parameter / Return Value
Description
tokenId
id of Proton
return
address of royalties receiver

Create various types of Protons, buy a Proton, claim royalties, etc.

Sends royalties to creator or delegated receiver.
function claimCreatorRoyalties()
external
virtual
override
nonReentrant
whenNotPaused
returns (uint256)
Parameter / Return Value
Description
Parameter / Return Value
Description
amount
amount claimed in ETH

Create a new Charged Particle (a Proton with interest-bearing assets deposited into its wallet).
function createChargedParticle(
address creator,
address receiver,
address referrer,
string tokenMetaUri,
string walletManagerId,
address assetToken,
uint256 assetAmount,
uint256 annuityPercent
) external virtual override nonReentrant whenNotPaused returns (uint256 newTokenId);
Parameter / Return Value
Description
creator
id of Charged Particle
receiver
receiver of new Charged Particle
referrer
*used for an internal feature that has yet to be implemented -- ignore
tokenMetaUri
URI of tokenmetadata
walletManagerId
id of wallet manager for ERC20 being deposited upon mint
assetToken
asset to create token with
assetAmount
amount of asset token to deposit
annuityPercent
percentage of charge (interest) directed to creator, in basis points
e.g. '10000' = 100%
newTokenId
id of new Charged Particle

Create a basic Proton without charge, and with annuityPercent, royaltiesPercent, and salePrice set to 0.
function createBasicProton(
address creator,
address receiver,
string tokenMetaUri
) external virtual override whenNotPaused returns (uint256 newTokenId);
Parameter / Return Value
Description
creator
id of Proton
receiver
receiver of new Proton
tokenMetaUri
URI of token's metadata
newTokenId
id of new Proton

Create a Proton, set its annuity percentage to a custom amount, and set royalties percentage and salePrice to 0.
function createProton(
address creator,
address receiver,
string tokenMetaUri,
uint256 annuityPercent
) external virtual override whenNotPaused returns (uint256 newTokenId);
Parameter / Return Value
Description
creator
address of creator
receiver
receiver of new Proton
tokenMetaUri
URI of tokenmetadata
annuity percent
percentage of interest that goes to creator
newTokenId
id of new Proton

function createProtonForSale(
address creator,
address receiver,
string tokenMetaUri,
uint256 annuityPercent,
uint256 royaltiesPercent,
uint256 salePrice
) external virtual override whenNotPaused returns (uint256 newTokenId);
Parameter / Return Value
Description
creator
address of creator
receiver
receiver of new Proton
tokenMetaUri
URI of tokenmetadata
annuityPercent
percentage of charge (interest) that goes to creator
royaltiesPercent
percentage of Proton sale that goes to creator
salePrice
sale price of Proton
newTokenId
id of new Proton

function batchProtonsForSale(
address creator,
uint256 annuityPercent,
uint256 royaltiesPercent,
string[] calldata tokenMetaUris,
uint256[] calldata salePrices
) external virtual override whenNotPaused;
Parameter / Return Value
Description
creator
address of creator
annuityPercent
percentage of charge (interest) that goes to creator
royaltiesPercent
percentage of Proton sale that goes to creator
tokenMetaUris
array of token metadata URIs for Protons
salePrices
array of sale prices for Protons

Buy a Proton.
function buyProton(
uint256 tokenId
) external payable virutal override nonReentrant whenNotPaused returns (bool);
Parameter / Return Value
Description
tokenId
id of Proton to purchase
return
true if purchase successful, false if not

Set a Protons Price, Royalties, or Royalties Receiver.

Set the sale price for a Proton.
function setSalePrice(
uint256 tokenId,
uint256 salePrice
) external virtual override whenNotPaused onlyTokenOwnerOrApproved(tokenId);
Parameter / Return Value
Description
tokenId
id of Proton to set price for
salePrice
sale price in Ether

Set royalties percentage for a Proton.
function setRoyaltiesPct(
uint256 tokenId,
uint256 royaltiesPct
) external virtual override whenNotPaused onlyTokenCreator(tokenId) onlyTokenOwnerOrApproved(tokenId);
Parameter / Return Value
Description
tokenId
id of Proton to set price for
royaltiesPct
percentage of sale directed to creator

Set a receiver for Proton royalties.
function setCreatorRoyaltiesReceiver(
uint256 tokenId,
address receiver
) external virtual override whenNotPaused onlyTokenCreator(tokenId);
Parameter / Return Value
Description
tokenId
id of Proton to set recever for
receiver
address of receiver

UniverseSet
event UniverseSet(address indexed universe);
ChargedStateSet
event ChargedStateSet(address indexed chargedState);
ChargedSettingsSet
event ChargedSettingsSet(address indexed chargedSettings);
ChargedParticlesSet
event ChargedParticlesSet(address indexed chargedParticles);
PausedStateSet
event PausedStateSet(bool isPaused);
SalePriceSet
event SalePriceSet(uint256 indexed tokenId, uint256 salePrice);
CreatorRoyaltiesSet
event CreatorRoyaltiesSet(uint256 indexed tokenId, uint256 royaltiesPct);
FeesWithdrawn
event FeesWithdrawn(address indexed receiver, uint256 amount);
ProtonSold
event ProtonSold(
uint256 indexed tokenId,
address indexed oldOwner,
address indexed newOwner,
uint256 salePrice,
address creator,
uint256 creatorRoyalties
);
RoyaltiesClaimed
event RoyaltiesClaimed(address indexed receiver, uint256 amountClaimed);
Copy link
On this page
Get Proton Info
creatorOf
getSalePrice
getLastSellPrice
getCreatorRoyalties
getCreatorRoyaltiesPct
getCreatorRoyaltiesReceiver
Create & Interact with Proton(s)
claimCreatorRoyalties
createChargedParticle
createBasicProton
createProton
createProtonForSale
batchProtonsForSale
buyProton
Update Proton Settings (Only for Creator/Owner)
setSalePrice
setRoyaltiesPct
setCreatorRoyaltiesReceiver
Other
Events