Polymarket pUSD
Polygon PoS ERC-20 Token0xc011a7e12a19f7b1f670d46f03b03f3342e82dfb
Solidity v0.8.34+commit.80d5c536
Fungible token following the ERC-20 standard.
Admin & Risk
Who can change the rules?
Detected upgradeable, mintable, and ownable controls from the verified ABI.
Current controls
- Owner
- 0x47ebfac3353314c788b96cdcbf41daadfe03629c ↗ Polygonscan → smarts
- Upgradeability inferred from ABI/events; proxy storage resolution may be incomplete.
Architecture
Polymarket contract role
Polymarket pUSD
Polymarket's user-facing collateral token. It sits in front of the CTF collateral path and is bridged through adapter contracts for market settlement.
Overview
Read Functions
Block #87,395,608 · just nowReturns the EIP-712 domain separator used to verify off-chain permit signatures.✨ AI
Returns
| Name | Type | Description |
|---|---|---|
| result | bytes32 | The EIP-712 domain separator (bytes32) used for signing and verifying permit messages.✨ AI |
Returns the USDC token address used as pUSD's underlying collateral.✨ AI
Returns
| Name | Type | Description |
|---|---|---|
| — | address | USDC ERC-20 token address used as pUSD's underlying collateral and adapter routing.✨ AI |
Get the ERC-20 address for the USDC token used as pUSD collateral.✨ AI
Returns
| Name | Type | Description |
|---|---|---|
| — | address | ERC-20 contract address of the USD Coin (USDC) token used by this collateral token.✨ AI |
Return the address of the vault contract that receives and manages pUSD collateral.✨ AI
Returns
| Name | Type | Description |
|---|---|---|
| — | address | Vault contract address used to hold and manage pUSD collateral for markets.✨ AI |
Return the remaining number of tokens that spender may transfer from owner.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address | Token holder address.✨ AI |
| spender | address | Address authorized to spend owner's tokens.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| result | uint256 | Remaining token allowance (uint256) that spender can spend from owner.✨ AI |
Returns the pUSD token balance for the specified account.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address | Address to query the pUSD balance for.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| result | uint256 | The pUSD balance of the address in smallest token units (uint256).✨ AI |
Returns the token decimal precision
Returns
| Name | Type | Description |
|---|---|---|
| — | uint8 | The number of decimals (6) |
Checks whether a user holds all roles specified by the roles bitmask.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | Address of the user to check.✨ AI |
| roles | uint256 | Bitmask of roles; returns true only if the user has every role bit set.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool | True if the user has every role bit set in the provided bitmask, otherwise false.✨ AI |
Check whether the given address has any of the specified roles.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | Address to check for roles.✨ AI |
| roles | uint256 | Bitmask of role flags to test against the user's roles.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool | True if the user has at least one of the specified role flags; otherwise false.✨ AI |
Returns the token name
Returns
| Name | Type | Description |
|---|---|---|
| — | string | The token name string |
Returns the current nonce for an address used in permit signatures.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address | The address to query the nonce for.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| result | uint256 | The uint256 nonce for the owner, which increments to prevent signature replay.✨ AI |
Returns the address of the contract owner.✨ AI
Returns
| Name | Type | Description |
|---|---|---|
| result | address | Owner address with administrative permissions for this token contract.✨ AI |
Returns the UNIX timestamp when a pending ownership handover for the given address expires.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| pendingOwner | address | Address of the pending owner to query.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| result | uint256 | Expiry time as a Unix timestamp in seconds; returns 0 if no handover is pending.✨ AI |
Return the proxiable UUID used by the token's UUPS proxy.✨ AI
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 | bytes32 UUID used by the UUPS proxy to verify the implementation storage slot.✨ AI |
Return a uint256 bitmask describing roles assigned to the given user address.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | The address whose roles are being queried.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| roles | uint256 | A uint256 bitmask where each set bit represents a role assigned to the user.✨ AI |
Returns the token symbol
Returns
| Name | Type | Description |
|---|---|---|
| — | string | The token symbol string |
Returns the total circulating supply of pUSD tokens.✨ AI
Returns
| Name | Type | Description |
|---|---|---|
| result | uint256 | Total pUSD token supply as a uint256 in base units (smallest token unit).✨ AI |
Write Functions
Grants minter role to an address
Parameters
| Name | Type | Description |
|---|---|---|
| _minter | address | Address to grant minter role |
Grants wrapper role to an address
Parameters
| Name | Type | Description |
|---|---|---|
| _wrapper | address | Address to grant wrapper role |
Set allowance for spender to transfer up to amount of the caller's pUSD.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| spender | address | Address permitted to transfer tokens on behalf of the caller.✨ AI |
| amount | uint256 | Maximum number of pUSD tokens the spender is allowed to transfer.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool | True if the approval succeeded, false otherwise.✨ AI |
Burns a collateral token
Parameters
| Name | Type | Description |
|---|---|---|
| _amount | uint256 | The amount of collateral token to burn |
Cancel a pending ownership handover request and reset the handover state.✨ AI
Finalize the ownership transfer and set the pending owner as the new contract owner.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| pendingOwner | address | Address that will become the new owner once handover completes.✨ AI |
Grant a set of role flags to a user address to control permissions for pUSD operations.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | Address to receive the granted roles.✨ AI |
| roles | uint256 | Bitmask representing role flags to assign.✨ AI |
Initializes the contract with the given owner.
Parameters
| Name | Type | Description |
|---|---|---|
| _owner | address | The address to set as the owner of the contract. |
Mints a new collateral token
Parameters
| Name | Type | Description |
|---|---|---|
| _to | address | The address to mint the collateral token to |
| _amount | uint256 | The amount of collateral token to mint |
Allow a spender to use the owner's tokens by submitting an off-chain EIP-2612 signature.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| owner | address | Token owner whose approval is being set.✨ AI |
| spender | address | Address approved to spend the owner's tokens.✨ AI |
| value | uint256 | Allowance amount in token base units (uint256).✨ AI |
| deadline | uint256 | Unix timestamp after which the signature becomes invalid.✨ AI |
| v | uint8 | ECDSA signature recovery byte (uint8).✨ AI |
| r | bytes32 | First 32 bytes of the ECDSA signature.✨ AI |
| s | bytes32 | Second 32 bytes of the ECDSA signature.✨ AI |
Revokes minter role from an address
Parameters
| Name | Type | Description |
|---|---|---|
| _minter | address | Address to revoke minter role from |
Revokes wrapper role from an address
Parameters
| Name | Type | Description |
|---|---|---|
| _wrapper | address | Address to revoke wrapper role from |
Permanently relinquish the contract owner role, setting the owner address to the zero address.✨ AI
Renounce the specified roles held by the caller.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| roles | uint256 | Bitmask of roles to renounce from the caller's account.✨ AI |
Request ownership handover to begin transferring contract ownership.✨ AI
Revoke specified roles from a user account.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | Address whose roles will be revoked.✨ AI |
| roles | uint256 | Bitmask specifying which roles to revoke.✨ AI |
Transfer pUSD tokens from the caller to the recipient address.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| to | address | Recipient address receiving the tokens.✨ AI |
| amount | uint256 | Number of tokens to transfer, specified in the token's smallest unit.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool | True if the transfer succeeded, otherwise false.✨ AI |
Move tokens from one account to another using the caller's allowance.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| from | address | Source account whose balance will be decreased.✨ AI |
| to | address | Destination account whose balance will be increased.✨ AI |
| amount | uint256 | Number of tokens to transfer, expressed in the token's smallest units.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool | True if the transfer succeeded; otherwise the call reverts.✨ AI |
Transfers contract ownership from the current owner to the provided newOwner address.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| newOwner | address | Address that will receive ownership of the contract.✨ AI |
The asset must be a supported asset
Parameters
| Name | Type | Description |
|---|---|---|
| _asset | address | The asset to unwrap |
| _to | address | The address to unwrap the asset to |
| _amount | uint256 | The amount of asset to unwrap |
| _callbackReceiver | address | Address to receive the callback, or address(0) to skip callback |
| _data | bytes | Callback data |
Upgrade the token implementation to a new contract and execute an initialization call; function is payable.✨ AI
Parameters
| Name | Type | Description |
|---|---|---|
| newImplementation | address | Address of the new implementation contract to set for the proxy.✨ AI |
| data | bytes | Encoded calldata to execute on the new implementation immediately after upgrade.✨ AI |
The asset must be a supported asset
Parameters
| Name | Type | Description |
|---|---|---|
| _asset | address | The asset to wrap |
| _to | address | The address to wrap the asset to |
| _amount | uint256 | The amount of asset to wrap |
| _callbackReceiver | address | Address to receive the callback, or address(0) to skip callback |
| _data | bytes | Callback data |
Events
| Name | Type | Indexed | Description |
|---|---|---|---|
| owner | address | ✓ | |
| spender | address | ✓ | |
| amount | uint256 |
| Name | Type | Indexed | Description |
|---|---|---|---|
| version | uint64 |
| Name | Type | Indexed | Description |
|---|---|---|---|
| pendingOwner | address | ✓ |
| Name | Type | Indexed | Description |
|---|---|---|---|
| pendingOwner | address | ✓ |
| Name | Type | Indexed | Description |
|---|---|---|---|
| oldOwner | address | ✓ | |
| newOwner | address | ✓ |
| Name | Type | Indexed | Description |
|---|---|---|---|
| user | address | ✓ | |
| roles | uint256 | ✓ |
| Name | Type | Indexed | Description |
|---|---|---|---|
| from | address | ✓ | |
| to | address | ✓ | |
| amount | uint256 |
Emitted when collateral is unwrapped to an asset
| Name | Type | Indexed | Description |
|---|---|---|---|
| caller | address | ✓ | Address that initiated the unwrap |
| asset | address | ✓ | The underlying asset address |
| to | address | ✓ | Recipient of the unwrapped asset |
| amount | uint256 | Amount of collateral burned |
| Name | Type | Indexed | Description |
|---|---|---|---|
| implementation | address | ✓ |
Emitted when an asset is wrapped into collateral
| Name | Type | Indexed | Description |
|---|---|---|---|
| caller | address | ✓ | Address that initiated the wrap |
| asset | address | ✓ | The underlying asset address |
| to | address | ✓ | Recipient of the minted collateral |
| amount | uint256 | Amount of collateral minted |