Protocol API
This page covers the Built-in actors Protocol API.
The protocol level built-in actors API is split into the following sections:
Account actor
The account actor is responsible for user account. If you want to call these methods in your smart contracts, you need to specify method number of that method you want to invoke. Please refer the each method for its method number.
AuthenticateMessage
Authenticates whether the provided signature is valid for the provided message.
uint
AuthenticateMessageMethodNum = 2643134072.
Parameters:
struct
AuthenticateMessageParamsbytes
AuthenticateMessageParamsSignature - it should be a raw byte of signature, NOT a serialized signature object with a signatureType.bytes
Message - The message which is signed by the corresponding account address.
Results:
struct
EmptyValue.
UniversalReceiverHook
Whenever the account receives transfers, this method will be invoked.
uint
UniversalReceiverHookMethodNum = 3726118371.
Parameters:
bytes[]
RawBytes - passes the bytes through how it is received.
Results:
struct
EmptyValue - always success.
Datacap
DataCap Actor is responsible for DataCap token management. The ActorCode for DataCap actor is hex"0007"
which will be used to call DataCap actor APIs. You also need to specify the method number of which method you want to invoke. Refer to each method for its method number.
Name
Return the name of DataCap token which is ‘DataCap’.
Unit
NameMethodNum : 48890204.
Parameters:
null
Results:
String
: DataCap
Symbol
Return the symbol of DataCap token which is ‘DCAP’.
unit
SymbolMethodNum: 2061153854.
Parameters:
null
Results:
String
: DCAP
TotalSupply
Return the total supply of the DataCap token.
uint
TotalSupplyMethodNum: 114981429.
Parameters:
null
Results:
int256
TokenAmount - Total DataCap token supply.
Balance
Return the DataCap token balance for the wallet address.
unit
BalanceOfMethodNum: 3261979605.
Parameters:
bytes
Address - the wallet address.
Results:
int256
TokenAmount - the DataCap token balance for the specified wallet address.
Transfer
Transfers DataCap tokens from caller address to the to address.
uint
TransferMethodNum = 80475954;
Parameters:
struct
TransferParamsbytes
To - the address to receive DataCap token.int256
Amount - A non-negative amount to transfer.bytes[]
OperatorData - Arbitrary data to pass on via the receiver hook.
Results:
struct
TransferReturnint256
FromBalance - the balance of from_address.int256
ToBalance - the balance of to_address.bytes
RecipientData: data returned from receive hook.
TransferFrom
Transfers DataCap between the from_address to the to_address.
uint
TransferFromMethodNum = 3621052141.
Params:
bytes
TransferFromParamsbytes
From - the address to send DataCap Token.bytes
To - the address to receive DataCap Token.int256
Amount - A non-negative amount to transfer.bytes
OperatorData: Arbitrary data to pass on via the receiver hook.
Results:
struct
TransferFromReturnint256
FromBalance - the balance of from_address.int256
ToBalance - the balance of to_address.int256
Allowance - the remaining allowance of owner address.bytes
RecipientData - data returned from receive hook.
IncreaseAllowance
Increase the DataCap token allowance that an operator can control by the requested amount.
uint
IncreaseAllowanceMethodNum = 1777121560.
Params:
struct
IncreaseAllowanceParamsbytes
Operator - the wallet address of the operator.int256
increaseAmount - increase DataCap token allowance for the operator address.
Results:
int256
TokenAmount - the new DataCap allowance of the operator address.
DecreaseAllowance
Decrease the DataCap token allowance that an operator controls of the owner’s balance by the requested amount.
uint
DecreaseAllowanceMethodNum = 1529376545;
Params:
struct
DecreaseAllowanceParamsbytes
Operator - the wallet address of the operator.int256
IncreaseAmount - the decreased DataCap token allowance of the operator address.
Results:
int256
TokenAmount - the new DataCap allowance of the operator address.
RevokeAllowance
Revoke the DataCap token allowance from the operator and set the operator’s allowance in behave of owner/caller address to 0.
uint
RevokeAllowanceMethodNum = 2765635761.
Params:
struct
RevokeAllowanceParamsbytes
Operator - the wallet address of the operator.
Results:
int256
TokenAmount - the old Allowance amount of the operator address.
Burn
Burn an amount of DataCap token from the owner/caller address, decreasing total token supply.
uint
BurnMethodNum = 1434719642.
Params:
struct
BurnParamsint256
Amount - the amount the DataCap token to be burned.
Results:
int256
TokenAmount - the updated DataCap token balance of the owner/caller address.
BurnFrom
Burn an amount of DataCap token from the specified address (owner address), decrease the allowance of operator/caller, and decrease total token supply.
uint
BurnFromMethodNum = 2979674018.
Params:
struct
BurnFromParamsbytes
Owner - the wallet address of the owner.int256
Amount - the amount of DataCap token to be burned.
Results:
struct
BurnFromReturnbytes
Owner - the wallet address of the owner.int256
Amount - the new balance of owner wallet.
Allowance
Return the allowance between owner and operator address.
uint
AllowanceMethodNum = 4205072950;
Params:
struct
GetAllowanceParamsbytes
Owner : the wallet address of the owner.bytes
Operator : the wallet address of the owner.
Results:
int256
TokenAmount - the allowance that an operator can control of an owner’s allowance.
Miner
The miner built-in actor responsible to deal with storage mining operations and collect proof. To interact with a specific storage provider, you must use their miner address to invoke the methods in the built-in miner actor. You also need to specify the method number for the method you want to invoke. Please refer to each method for its method number.
GetPeerID
Return the Peer ID for the caller/miner address.
uint
GetPeerIDMethodNum = 2812875329.
Params:
null
Results:
struct
GetPeerIDReturnbytes
PeerID - the peer ID for the specified storage provider/miner.
ChangePeerID
Change the peer ID for the caller/miner address.
uint
ChangePeerIDMethodNum = 1236548004.
Params:
struct
ChangePeerIDParamsbytes
NewID - the new peer ID.
Results:
struct
EmptyValue
GetMultiaddrs
Returns the multi-signature address for this caller/miner address.
uint
GetMultiaddrsMethodNum = 1332909407.
Params:
null
Results:
struct
GetMultiAddrsReturnbyte[]
MultiAddrs - the multi-signature address.
ChangeMultiaddrs
Change the multi-signature address for this caller/miner address.
uint
ChangeMultiaddrsMethodNum = 1063480576.
Params:
struct
ChangeMultiaddrsParamsbyte[]
NewMultiaddrs - the new multi-signature address.
Results:
struct
EmptyValue
ChangeWorkerAddress
Change the worker address for the caller/miner address, and overwrite the existing addresses with the new control addresses passed in the params.
uint
ChangeOwnerAddressMethodNum = 1010589339.
Params:
struct
ChangeWorkerAddressParamsbyte
NewWorker - the new worker address.byte[]
NewControlAddrs - the new controller addresses.
Results:
struct
EmptyValue
ConfirmChangeWorkerAddress
Confirm the worker address has been changed for the caller/miner address.
uint
ConfirmChangeWorkerAddressMethodNum = 2354970453.
Params:
null
Results:
struct
EmptyValue
RepayDebt
Repay as much fee debt as possible for the caller/miner address.
uint
RepayDebtMethodNum = 3665352697.
Params:
null
Results:
struct
EmptyValue
GetOwner
Return the owner address of the caller/miner address.
uint
GetOwnerMethodNum = 3275365574.
Params:
null
Results:
struct
GetOwnerReturnbyte
Owner - owner address.
ChangeOwnerAddress
Proposes or confirms a change of owner address.
uint
ChangeOwnerAddressMethodNum = 1010589339.
Params:
bytes
Address - the new owner address.
Results:
struct
EmptyValue
GetBeneficiary
Return the currently active and proposed beneficiary information.
uint
GetBeneficiaryMethodNum = 4158972569.
Params:
null
Results:
struct
GetBeneficiaryReturnstruct
ActiveBeneficiary - current active beneficiary.byte
Beneficiary - the address of the beneficiary.struct
BeneficiaryTermint256
Quota - the quota token amount.int256
UsedQuota - the used quota token amount.uint64
Expiration - the epoch that the quota will be expired.
struct
PendingBeneficiaryChange - the proposed and pending beneficiary.bytes
newBeneficiary - the new beneficiary address.int256
NewQuota - the new quota token amount.uint64
NewExpiration - the epoch that the new quota will be expired.bool
ApprovedByBeneficiary - if this proposal is approved by the beneficiary or not.bool
ApprovedByNominee - if this proposal is approved by the nominee or not.
ChangeBeneficiary
Propose or confirm a change of beneficiary information.
uint
ChangeBeneficiaryMethodNum = 1570634796.
Params:
struct
ChangeBeneficiaryParamsbytes
newBeneficiary - the new beneficiary address.int256
NewQuota - the new quota token amount.uint64
NewExpiration - the epoch that the new quota will be expired.
Results:
struct
EmptyValue
IsControllingAddress
Returns whether the provided address is the Owner, the Worker, or any of the control addresses.
uint
IsControllingAddressMethodNum = 348244887.
Params:
byte
IsControllingAddressParams - the address to be verified.
Results:
bool
IsControllingAddressReturn - if the specified address is the control address.
GetSectorSize
Returns the miner’s sector size.
uint
GetSectorSizeMethodNum = 3858292296;
Params:
null
Results:
struct
GetSectorSizeReturnunit64
SectorSize - the sector size of this miner.
GetAvailableBalance
Returns the available balance of this miner.
uint
GetAvailableBalanceMethodNum = 4026106874.
Params:
null
Results:
int256
GetAvailableBalanceReturn - the available token balance amount.
WithdrawBalance
Withdraw the token balance for this miner.
Params:
struct
WithdrawBalanceParamsint256
AmountRequested - withdraw token amount.
Results:
int256
WithdrawBalanceReturn - the token amount withdrawn.
GetVestingFunds
Return the funds vesting in this miner as a list of (vesting_epoch, vesting_amount) tuples.
uint
GetVestingFundsMethodNum = 1726876304.
Params:
null
Results:
struct
GetVestingFundsReturnstruct VestingFunds[]
Fundsint64
Epoch - the epoch of funds vested.int256
Amount - the number of funds vested.
Multisig
Multisig built-in actor is responsible for dealing with operations involving the Filecoin wallet. To interact with a specific multi-signature wallet address, you need to use this wallet address to invoke the methods in the built-in multisig actor. You also need to specify the method number of which method you want to invoke. Please refer to each method for its method number.
Propose
Propose a token transfer transaction for signers to approve. The proposer automatically approves this transaction.
uint
ProposeMethodNum = 1696838335.
Params:
struct
ProposeParamsbytes
ToAddress - the address to receive the token.int256
Value - the token amount to be transferred.uint64
Method: ?bytep[]
Params: ?
Results:
struct
ProposeReturnint64
TxnID - the ID of the proposed transaction.bool
Applied - if the transaction was applied as proposed or not?uint31
Code - the exit code of the transaction. IfApplied
isfalse
this field can be ignored.bytes
Ret - the return value of the transaction. IfApplied
isfalse
this field can be ignored.
Approve
Other signers of the multi-signature address can use this method to approve the proposed messages.
uint
ApproveMethodNum = 1289044053.
Params:
struct
TxnIDParamsint64
ID - the signed message ID.bytes
ProposalHash - Hash of proposal to ensure an operation can only apply to a specific proposal.
Results:
struct
ApproveReturnbool
Applied - if the transaction was applied as proposed or not?uint31
Code - the exit code of the transaction. IfApplied
isfalse
this field can be ignored.bytes
Ret - the return value of the transaction. IfApplied
isfalse
this field can be ignored.
Cancel
Multi-signature wallet signer to cancel a pending multi-signatures transaction.
uint
CancelMethodNum = 3365893656.
Params:
struct
TxnIDParamsint64
ID - the signed message ID.bytes
ProposalHash - Hash of proposal to ensure an operation can only apply to a specific proposal.
Results:
struct
EmptyValue.
AddSigner
Add a signer to the multi-signature wallet.
uint
AddSignerMethodNum = 3028530033.
Params:
struct
AddSignerParamsbytes
Signer - the new signer address.bool
Increase - increase threshold or not.
Results:
struct
EmptyValue.
RemoveSigner
Remove a signer from the multi-signature wallet.
uint
RemoveSignerMethodNum = 21182899.
Params:
struct
RemoveSignerParamsbytes
Signer - the signer address to be removed.bool
Decrease - decrease threshold or not. Only able to decrease when the threshold is larger than 2.
Results:
struct
EmptyValue.
SwapSigner
Swap signers for the multi-signature wallet.
uint
SwapSignerMethodNum = 3968117037;
Params:
struct
SwapSignerParamsbytes
From - the signer address to be removed from the multi-signature wallet.bytes
To - the signer address to be added to the multi-signature wallet.
Results:
struct
EmptyValue.
ChangeNumApprovalsThreshold
Change the threshold number required for the approvals for the multi-signature wallet.
uint
ChangeNumApprovalsThresholdMethodNum = 3375931653.
Params:
struct
ChangeNumApprovalsThresholdParamsunit64
NewThreshold - the new threshold number.
Results:
struct
EmptyValue.
LockBalance
Lock a number of tokens in a multi-signature wallet from the start
epoch to the unlock
epoch.
uint
LockBalanceMethodNum = 1999470977.
Params:
struct
LockBalanceParamsint64
StartEpoch - the epoch to start locking the balance.int64
UnlockDuration - the epoch to unlock the balance.int256
Amount - the amount of token to be locked.
Results:
struct
EmptyValue.
Storage market actor
Storage market actor is responsible for managing storage and retrieval deals. The ActorCode for storage market actor is hex"0005"
which will be used to call this actor. You also need to specify the method number of the method you want to invoke. Please refer to each method for its method number.
AddBalance
Deposit the received FIL token, which is received along with this message, into the balance held in the escrow address of the provider or client address.
uint
AddBalanceMethodNum = 822473126.
Params:
bytes
Address - the address of the provider or client.
Results:
struct
EmptyValue.
GetBalance
Return the escrow balance and locked amount for an address.
uint
GetBalanceMethodNum = 726108461.
Params:
bytes
address - the wallet address to request balance.
Results:
struct
GetBalanceReturnint256
Balance - the escrow balance for this address.int256
Locked - the escrow-locked amount for this address.
WithdrawBalance
Withdraw the specified amount from the balance held in escrow.
uint
WithdrawBalanceMethodNum = 2280458852.
Params:
struct
WithdrawBalanceParamsbytes
ProviderOrClientAddress - the address of the provider or client.int256
TokenAmount - the token amount to withdraw.
Results:
struct
WithdrawBalanceReturnint256
AmountWithdraw - the token amount withdrawn.
PublishStorageDeals
Publish a new set of storage deals that are not yet included in a sector.
uint
PublishStorageDealsMethodNum = 2236929350.
Params:
struct
PublishStorageDealsParamsstruct ClientDealProposal[]
Deals - list of deal proposals signed by a clientstruct DealProposal
Proposalbytes
PieceCID.uint64
PieceSize - the size of the piece.bool
VerifiedDeal - if the deal is verified or not.bytes
Client - the address of the storage client.bytes
Provider - the address of the storage provider.string
Label - any label that the client chooses for the deal.int64
StartEpoch - the chain epoch to start the deal.int64
EndEpoch - the chain epoch to end the deal.int256
StoragePricePerEpoch - the token amount to pay to the provider per epoch.int256
ProviderCollateral - the token amount as collateral paid by the provider.int256
ClientCollateral - the token amount as collateral paid by the client.
bytes
ClientSignature - the signature signed by the client.
Results:
struct
PublishStorageDealsReturnuint64[]
IDs - returned storage deal IDs.bytes
ValidDeals - represent all the valid deals.
GetDealDataCommitment
Return the data commitment and size of a deal proposal.
uint
GetDealDataCommitmentMethodNum = 1157985802.
Params:
uint64
GetDealDataCommitmentParams - Deal ID.
Results:
struct
GetDealDataCommitmentReturnbytes
Data - the data commitment of this deal.uint64
Size - the size of this deal.
GetDealClient
Return the client of the deal proposal.
uint
GetDealClientMethodNum = 128053329.
Params:
uint64
GetDealClientParams - CID of the deal proposal.
Results:
bytes
GetDealClientReturn - the wallet address of the client.
GetDealProvider
Return the provider of a deal proposal.
uint
GetDealProviderMethodNum = 935081690.
Params:
uint64
GetDealProviderParams - CID of the deal proposal.
Results:
bytes
GetDealProviderReturn - the wallet address of the provider.
GetDealLabel
Return the label of a deal proposal.
uint
GetDealLabelMethodNum = 46363526.
Params:
uint64
GetDealLabelParams - CID of the deal proposal.
Results:
string
GetDealLabelReturn - the label of this deal.
GetDealTerm
Return the start epoch and duration(in epochs) of a deal proposal.
uint
GetDealTermMethodNum = 163777312.
Params:
uint64
GetDealTermParams - CID of the deal proposal.
Results:
struct
GetDealTermReturnint64
Start - the chain epoch to start the deal.int64
End - the chain epoch to end the deal.
GetDealTotalPrice
Return the total price that will be paid from the client to the provider for this deal.
uint
GetDealEpochPriceMethodNum = 4287162428.
Params:
uint64
GetDealTotalPriceParams - CID of the deal proposal.
Results:
int256
GetDealTotalPriceReturn - the token amount that will be paid by the client to the provider.
GetDealClientCollateral
Return the client collateral requirement for a deal proposal.
uint
GetDealClientCollateralMethodNum = 200567895.
Params:
uint64
GetDealClientCollateralParams - CID of the deal proposal.
Results:
int256
GetDealClientCollateralReturn - the token amount as collateral paid by the client.
GetDealProviderCollateral
Return the provided collateral requirement for a deal proposal.
uint
GetDealProviderCollateralMethodNum = 2986712137.
Params:
uint64
GetDealProviderCollateralParams - CID of the deal proposal.
Results:
int256
GetDealProviderCollateralReturn - the token amount as collateral paid by the provider.
GetDealVerified
Return the verified flag for a deal proposal.
uint
GetDealVerifiedMethodNum = 2627389465.
Params:
uint64
GetDealVerifiedParams - CID of the deal proposal.
Results:
bool
GetDealVerifiedReturn - if the deal is verified or not.
GetDealActivation
Return the activation state for a deal.
uint
GetDealActivationParams = 2567238399.
Params:
uint64
GetDealVerifiedParams - CID of the deal proposal.
Results:
struct
GetDealActivationReturnint64
Activated - Epoch at which the deal was activated, or -1.int64
Terminated -Epoch at which the deal was terminated abnormally, or -1.
Storage power actor
Storage power actor is responsible for keeping track of the storage power allocated at each storage miner. The ActorCode for the built-in storage power actor is hex"0004"
which will be used to call methods in the storage power actor. You also need to specify the method number for the method you want to invoke. Please refer to each method for its method number.
CreateMiner
Create a new miner for the owner address and worker address.
uint
CreateMinerMethodNum = 1173380165.
Params:
struct
CreateMinerParamsbytes
Owner - the address of the owner.bytes
Worker - the address of the worker.RegisteredPoStProof
WindowPoStProofType - the type of RegisteredPoStProof.bytes
Peer - peerID.bytes[]
Multiaddrs - the multi-address which is used to control the newly created miner.
Results:
CreateMinerReturn
bytes
IDAddress - The canonical ID-based address for the actor.byte
: RobustAddress -A more expensive but re-org-safe address for the newly created actor.
NetworkRawPower
Return the total raw power of the network.
uint
NetworkRawPowerMethodNum = 931722534.
Params:
null
Results:
int256
NetworkRawPowerReturn - the raw storage power of the whole network.
MinerRawPower
Return the raw power claimed by the specified miner and whether the miner has more than the minimum amount of active storage.
uint
MinerRawPowerMethodNum = 3753401894.
Params:
MinerRawPowerParams
uint64
Miner - Miner ID
Results:
struct
MinerRawPowerParamsint256
RawBytePower - the row power of the miner.bool
MeetsConsensusMinimum - if the miner power meets the minimum for consensus.
MinerCount
Returns the total number of miners created, regardless of whether or not they have any pledged storage.
uint
MinerRawPowerMethodNum = 3753401894.
Params:
null
Results:
uint64
MinerCountReturn - the count of the miners that the caller address has.
MinerConsensusCount
Returns the total number of miners that have more than the minimum amount of active storage.
uint
MinerConsensusCountMethodNum = 196739875.
Params:
null
Results:
uint64
MinerConsensusCountReturn - the count of the miners that meet the consensus minimum that the caller address has.
Verified registry actor
Verified registry actor is responsible for managing verified clients. The ActorCode for the verified registry built-in actor is hex"0006"
which will be used to call the exported methods in the verified registry built-in actor. You need to specify the method number for the method you want to invoke. Please referer to each method for its method number.
AddVerifiedClient
To add a verified Client address to Filecoin Plus program.
uint
constant AddVerifierClientMethodNum = 3916220144.
Params:
struct
AddVerifierClientParamsbytes
Address - the verified client addressint256
Allowance - approved DataCap for this verified client
Results:
struct
EmptyValue.
RemoveExpiredAllocations
Remove the expired DataCap allocations and reclaim those DataCap tokens back to the client. If the allocation amount is not specified, all expired DataCap allocations will be removed.
uint
RemoveExpiredAllocationsMethodNum = 2873373899.
Params:
struct
RemoveExpiredAllocationsParamsuint64
Client - the client address to remove the expired tokens from.uint64[]
AllocationIDs - List of allocation IDs to attempt to remove. If empty, this method will remove all eligible expired tokens.
Results:
struct
RemoveExpiredAllocationsReturnunit64[]
Considered - Allocation IDs are either specified by the caller or discovered to be expired.BatachReturn
Results - results for each processed allocation.int256
DataCapRecoverd - The amount of DataCap token reclaimed for the client.
GetClaims
Return a list of claims corresponding to the requested claim ID for a specific provider.
uint
GetClaimsMethodNum = 2199871187.
Params:
struct
GetClaimsParamsuint64
Provider - the provider address.unit64[]
ClaimIDs - A list of Claim IDs for a specific provider.
Results:
struct
GetClaimsReturnstruct
BatchReturnuint32
SuccessCount - total successes in the batch.struct
FailCode[] {uint32
idx,uint32
code} - list of failure code and index for all failures in batch.
struct Claim[]
Claims - list of Claims returned.uint64
Provider - The provider that is storing the data.uint64
Client - The client that originally allocated the DataCap.bytes
Data - Identifier for the data committed.uint64
Size - The size of the data.int64
TermMin - The minimum period after the term starts, during which the provider must commit to storing data.int64
TermMax - The maximum period after the term starts for which the provider can earn Quality Adjusted power for the data.int64
TermStart - the epoch at which the piece was committed.unit64
Sector - ID of the provider’s sector in which the data is committed.
ExtendClaimTerms
Extends the maximum term of some claims up to the largest value they could have been originally allocated. This method can only be called by the claims’ client.
uint
ExtendClaimTermsMethodNum = 1752273514.
Params:
struct
ExtendClaimTermsParamsstruct ClaimTerm[]
Termsuint64
Provider - The provider address which stores the data.uint64
CliamID - Claim ID.int64
TermMax - The max chain epoch to extend.
Results:
struct
ExtendClaimTermsReturnstruct
BatchReturnuint32
SuccessCount - total successes in the batch.struct
FailCodes[] {uint32
idx,uint32
code} - list of failure code and index for all failures in batch.
RemoveExpiredClaims
To remove a claim with its maximum term has elapsed.
uint
RemoveExpiredClaimsMethodNum = 2873373899.
Params:
struct
RemoveExpiredClaimsParamsuint64
Provider - the provider address.unit64[]
ClaimIDs - A list of Claim IDs with an expired term. If no claims are specified, all eligible claims will be removed.
Results:
struct
RemoveExpiredClaimsReturnuint64[]
Considered - a list of IDs of the claims that were either specified by the caller or discovered to be expired.struct
BatchReturnuint32
SuccessCount - total successes in the batchstruct
FailCodes[] {uint32
idx,uint32
code} - list of failure code and index for all failures in batch.
Last updated