Versions. The one-transaction flow on this page needs
@peaqos/peaq-os-sdk 0.7.0+, peaq-os-sdk 0.7.1+ (Python 3.10 or newer), or peaq-os-cli 0.0.8+ running on peaq-os-sdk 0.7.1+. Releases before 2026-09-11 carry the MachineBridgeAdapter address from before the 2026-09-08 re-point and fail preflight with PEER_MISMATCH. The earlier register-then-mint flow (registerMachine, mintNft, writeMachineDIDAttributes) still works in the SDKs when you do not select a Tokenomics 2.0 deployment, and is documented in the legacy section below. The CLI has no legacy path since 0.0.8.What ships
Machine ID
The machine ID is derived, not sequential:machineType and the exact credentialSubject bytes contribute. Neither can change after activation, and the same pair can never be activated twice. IDs are full-width uint256 values (routinely 77 digits): bigint in JavaScript, int in Python, and a decimal string in JSON, URLs, and CLI output. The 2.0 DID form is did:peaq:<decimal machine id>, not an address.
How activation works
Select a deployment (peaq-mainnet or agung-2026-08-28), preview the quote, then activate. Contract addresses travel with the deployment record inside the SDK; you never set them.
- CLI
- JavaScript
- Python
--payment usdt --slippage-bps 50 to settle the PEAQ-quoted bond in USDT. --for 0xMachine --machine-key ./machine.key switches to machine-owned, operator-controlled mode (see Two ownership modes). Full flag table on CLI: activate.What the call does
- Validates every input locally.
- Verifies the connected chain, that all seven Tokenomics 2.0 contracts have bytecode, that the peer addresses match
InfoDesk.peer(role), and thatMachineSubscription.fullMode()is true. - Computes the machine ID and quotes the bond:
bond = requiredPeaqAmount(tier),voucher = min(pendingVoucherCredit, bond),net = bond - voucher. - Resolves the PEAQ token from
InfoDesk.peaqToken(), checks balance and allowance, and approves exactlynettoMachineSubscriptionif the allowance is short. - Re-reads the quote, simulates, and submits the one
MachineStateAndSync.activateMachinetransaction. - Requires three correlated receipt events (
MachineOnboarded,MachineMinted,Activated) and reconciles the resulting state (ownerOf,controllerOf, subscription tier and period,isHomedLocally) before returning.
manufacturer is recorded on-chain and never verified by the contract. On peaq, PEAQ is the native-balance precompile at 0x…0809, so bond and gas come out of the same balance: a wallet holding exactly the net amount still fails on gas.
Two ownership modes
Rights differ by role and both parties should know them:
Operator-sponsored onboarding has no 2.0 equivalent.
MachineStateAndSync.activateMachine makes msg.sender the owner and the payer, so there is no way for an operator to activate a machine it does not own. registerFor / register_for throw SPONSORED_ACTIVATION_UNSUPPORTED in Tokenomics mode. The supported fleet pattern is the machine-owned, operator-controlled mode above. Full guide: Fleet onboarding.Confirm activation
https://machines.peaq.xyz/machine/<decimal machine id> for a machine activated under Economics 2.0, https://machines.peaq.xyz/machine/0x<address> for a Tokenomics 1.0 or mirrored legacy machine. The explorer indexes from chain, so allow a few minutes after the transaction.
Do not test activation by querying mcr.peaq.xyz/machine/did:peaq:0x…: 2.0 machines live on mcr-20.peaq.xyz and are addressed by decimal ID. Call queryMcr / query_mcr on a tokenomics20 client (@peaqos/peaq-os-sdk 0.7.0, peaq-os-sdk 0.7.1) or GET https://mcr-20.peaq.xyz/mcr/did:peaq:<decimal id> instead. See API reference.
After activation
Legacy flow (Tokenomics 1.0)
Machines onboarded before Economics 2.0 live inIdentityRegistry with a 1 PEAQ native bond and a separate MachineNFT token. The SDKs keep this path when you construct a client without tokenomics20: registerMachine / register_machine (self-managed) or registerFor / register_for (proxy), then mintNft, tokenIdOf, and writeMachineDIDAttributes. Each of these emits a deprecation warning and throws a typed error in Tokenomics mode. The 1.0 MCR API at mcr.peaq.xyz serves these machines by did:peaq:0x<address>.
Legacy machines can be mirrored into Economics 2.0 through the MachineMigrationHub; that path is operated by peaq for partner fleets, not exposed in the SDKs. See Economics 2.0: legacy machines.
Concepts
Economics 2.0
Tiers, bonds, credits, grace and runoff, trust validators.
peaqID
W3C DID, DID document, portable identity.
Machine NFT
The ERC-721 whose token ID is the machine ID.
Smart contracts
Addresses on peaq mainnet and agung.
Gas Station
2FA-gated faucet for initial machine gas.
Machine Credit Rating
Rating from a machine’s history.
SDK reference
activateMachine/activate_machine: the one-transaction activation.previewMachineActivation/preview_machine_activation: quote without signing.getMachineActivationState/get_machine_activation_state: confirm the result.fundFromGasStation/fund_from_gas_station: request gas for a fresh wallet.generateKeypair/generate_keypair: create a machine keypair.
Guides
Self-managed onboarding
Single machine, owner-operated.
Fleet onboarding
Machine-owned, operator-controlled: N machines from one operator.

