docs: daily sync Polymarket docs 2026-06-02 - 118 files updated

This commit is contained in:
Etherdrake
2026-06-02 18:28:03 +02:00
parent 60ec739301
commit c562bee4b5
118 changed files with 216 additions and 19487 deletions
+1 -1
View File
@@ -1 +1 @@
null
null
+51 -6
View File
@@ -466,16 +466,61 @@ fail with a wallet registration error. Store the deployed wallet address from
the `WalletDeployed` event, from your onboarding flow, or derive it
deterministically using the SDK's chain config.
Deterministic address derivation follows the relayer clients:
#### Wallet Implementation
All new deposit wallets are **ERC-1967 BeaconProxy clones** that delegate to
a shared **deposit wallet beacon** holding the wallet implementation. This
lets the implementation be upgraded once without changing any user's deposit
wallet address. Deposit wallets created before the factory upgrade are
**ERC-1967 UUPS clones** that hold an implementation address in their own
ERC-1967 implementation slot. Those legacy wallets remain at their original
addresses and continue to work.
Users who prefer to manage upgrades themselves can opt out of beacon upgrades
at the contract level by pausing the wallet and opting out after the pause
period.
| Chain | Deposit wallet beacon |
| --------------------- | -------------------------------------------- |
| Polygon mainnet `137` | `0x7A18EDfe055488A3128f01F563e5B479D92ffc3a` |
#### Deterministic Address Derivation
The TypeScript and Python relayer clients pick the correct clone shape inside
`deriveDepositWalletAddress()` and `get_expected_deposit_wallet()`, so SDK
users do not need to handle the two shapes manually. Direct API integrations
that derive addresses themselves should follow the same algorithm.
Both clone shapes share the same outer CREATE2 inputs and differ only in the
init code hash:
```text theme={null}
walletId = bytes32(owner) // owner address left-padded to 32 bytes
args = abi.encode(factory, walletId)
salt = keccak256(args)
bytecodeHash = SoladyLibClone.initCodeHashERC1967(implementation, args)
depositWallet = CREATE2(factory, salt, bytecodeHash)
walletId = bytes32(owner) // owner address left-padded to 32 bytes
args = abi.encode(factory, walletId)
salt = keccak256(args)
// UUPS clones
uupsBytecodeHash = SoladyLibClone.initCodeHashERC1967(implementation, args)
uupsWallet = CREATE2(factory, salt, uupsBytecodeHash)
// BeaconProxy clones
beaconBytecodeHash = SoladyLibClone.initCodeHashERC1967BeaconProxy(beacon, args)
beaconWallet = CREATE2(factory, salt, beaconBytecodeHash)
```
To resolve a user's address, probe the factory's `BEACON()` view (selector
`0x49493a4d`) and check whether the UUPS address is already deployed:
1. Compute `uupsWallet`.
2. `eth_call` the factory with data `0x49493a4d`. If the call reverts or
returns the zero address, the factory does not expose a beacon — return
`uupsWallet`.
3. If the call returns a non-zero address, check `eth_getCode(uupsWallet)`.
If it has bytecode, the user already has a UUPS wallet there — return
`uupsWallet`.
4. Otherwise, compute and return `beaconWallet` using the address returned
from `BEACON()`.
### Submit a Deposit Wallet Batch
For wallet actions such as token approvals, transfers, withdrawals, splits, or
+1
View File
@@ -133,6 +133,7 @@ Your tier shows on your Polymarket profile and on the leaderboards. As you climb
* Your tier is based on your **last 30 days** of Weighted Volume and is updated every day at midnight UTC.
* Rebates are paid once a day at midnight UTC in pUSD.
* Rebate rates, tier thresholds, category weights, level-up bonuses, and any bonus multipliers are set by Polymarket and can change at any time without notice.
* Polymarket reserves the right, at its sole discretion, to adjust rebates and tier status for users.
* Polymarket reserves the right, at its sole discretion, to adjust or remove rebates and tier status for activity that breaks our Terms of Service, including but not limited to wash trading, self-matching, or other inauthentic trading.
***