PulseChain pDAI / Maker / Arbitrum authority audit
Snapshot: PulseChain block 27,824,343 (read-only public RPC)
Research time: 17/18 October 2026. Sophia was not accessed.

MAIN RESULT
The forked Maker-designed DAI Arbitrum bridge definitely exists and holds a separate escrow. Its ordinary withdrawal path transfers previously held canonical pDAI. It does not call Vat or DaiJoin and does not mint pDAI. A second, distinct Maker Teleport path structurally connects authenticated Arbitrum messages to Maker minting. However, that second path shows no post-fork successful activity and currently has zero mint capacity for ARB-ONE-A because Vat.live() == 0 and domain debt == 0.

ADDRESSES AND READS
canonical pDAI: 0x6b175474e89094c44da98b954eedeac495271d0f
Maker Vat: 0x35d1b3f3d7966a1dfe207aa4514c12a259a0492b
DaiJoin: 0x9759a6ac90977b93b58547b4a71c78317f391a28
Dai-specific Arbitrum L1 gateway: 0xd3b5b60020504bc3489d6949d545893982ba3011
Separate L1 escrow: 0xa10c7ce4b876998858b1a9e12b10092229539400
L1 governance relay: 0x9ba25c289e351779e0d481ba37489317c34a899d
Gateway inbox: 0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f
Gateway L1 router: 0x72ce9c846789fdb6fc1f34ac4ad25dd9ef7031ef
Gateway L2 counterpart: 0x467194771dae2967aef3ecbedd3bf9a310c76c65
Gateway L2 DAI: 0xda10009cbd5d07dd0cecc66161fc93d7c9000da1
Pause: 0xbe286431454714f511008713973d3b053a2d38f3
Pause proxy: 0xbe8e3e3618f7474f8cb1d074a26affef007e98fb
ESM: 0x09e05ff6142f2f9de8b6b65855a1d56b6cfe4c58

DAI escrow at block 17,233,000: 159,145,134.987187630840187249 pDAI.
DAI escrow at audit pin: 0.
Canonical pDAI allowance(escrow, DAI gateway) remains uint256 maximum.
L1 router getGateway(canonical DAI) returns D3b5 gateway.
Gateway isOpen() == 1. This alone does not prove a working live L2.
Escrow and gateway wards include PauseProxy and ESM, and no post-fork Rely/Deny events were found on those contracts. 5996 and 48Fc are not wards on either. Withdrawal does not require those ward roles: it requires the authenticated bridge/outbox origin.

WITHDRAWAL AUTHENTICATION
Verified L1DaiGateway.finalizeInboundTransfer checks the token address, then uses transferFrom(l1Escrow, recipient, amount). Its onlyL2Counterpart modifier requires msg.sender == inbox.bridge() and the active Outbox's l2ToL1Sender() == the immutable L2 counterpart. Those are cross-domain message trust checks, not a new Maker governance vote. The immutable Inbox address is itself a proxy; the bridge address is read dynamically. This distinction matters when evaluating a changed Inbox or Outbox trust configuration.
The flow agent separately reconstructs both withdrawals and root provenance. A claimed L2 timestamp in calldata is not independent proof of genuine L2 execution.

PDAI MINT AUTHORITY
Dai.mint is guarded by wards[msg.sender] == 1.
Full indexed rely/deny log scan yields four events, all in 2019, with no post-fork changes. The remaining identified minter is DaiJoin, whose wards entry on DAI is 1. Initial deployer and deployment helper entries are both currently 0.
DAI wards for the bridge, escrow, governance relay, PauseProxy, AutoLine, 5996 and 48Fc are all 0.
DaiJoin.exit is public but transfers the caller's internal Vat DAI to the join before calling DAI.mint. It is not free issuance. The operation requires sufficient internal credit and authorization for that internal movement.
Current Vat.live() == 0, while DaiJoin.live() == 1. Ordinary Vat.frob borrowing is blocked. Exiting existing internal DAI can still work; burning ERC20 DAI into internal credit can still work. Some authorized Vat methods (e.g. suck) do not have the live guard, so do not claim globally that every possible source of new internal DAI is disabled without auditing every ward contract.

MAKER GOVERNANCE STATE
At fork snapshot: Pause owner=0, authority=0x0a3f6849f78076aefadf113f5bed87720274ddc0, delay=172800 seconds; Vat live=1.
At audit: Pause owner=0, authority=0, delay=0; PauseProxy owner still Pause. Vat wards(PauseProxy)=0.
Vat cage event at block 23,225,241, tx0x6530fc843a760c883bcdf00ec006fc1b9bcaa8049f79d9e9c65b8f096d21dd3a; the same tx denies PauseProxy on Vat.
These are local PulseChain state changes. They do not establish present Ethereum Sky governance controls this fork.
Existing pre-plotted Pause plans were not enumerated; do not equate authority=0 with a proof that every previously authorized plan is impossible to execute.

5996 AUTOLINE CLAIM
Tx0xffe599d900fe42f2b95155efcf54427f1f760be7c332bbf780b2a8b373b169e5, block23,174,972, from0xb8698cfffdaaf26ca21fe8aa560c18cc2b2f5996 to0xc7bdd1f2b16447dcf3de045c4a039a60ec2f0ba3.
Selector0xb5e98b3b is verified exec(bytes32), argument PSM-USDC-A, target DssAutoLine.
This function is permissionless, governed by preset debt-ceiling parameters. It grants no ward or governance rights to its caller.
Receipt success=1 but logs empty. Parity trace confirms exactly the top-level call plus a single STATICCALL to Vat.ilks(PSM-USDC-A). No Vat mutation, transfer or mint occurred in this transaction.
Current wards(5996) and wards(48Fc) are 0 on DAI, Vat, DaiJoin, AutoLine, gateway, escrow and L1 governance relay. Vat.wards(AutoLine) == 1 describes the contract's restricted capability, not the external caller's ownership.

TELEPORT: DISTINCT MINT CONNECTION, CURRENTLY NO ARBITRUM CAPACITY
L1DaiTeleportGateway: 0x22218359e78bc34e532b653198894b639ac3ed72
Its inbox: 0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f
Its L2 counterpart: 0x5dbaf6f2bedebd414f8d78d13499222347e59d5e
Its escrow: A10c...9400
Its canonical token: 6b175...1d0f
TeleportRouter: 0xeef8b35ed538b6ef7dba82236377ade4204e5115
TeleportJoin: 0x41ca7a7aa2be78cf7cb80c0f4a9bdfbc96e81815
Router gateway mapping: ARB-ONE-A -> 2221 gateway; ETH-MAIN-A -> 41ca join.
Join wards(router)=1; Vat wards(join)=1.
Escrow allowance to Teleport gateway remains uint256 maximum.

Two different functions:
- finalizeFlush: authenticated L2 message pulls existing escrow DAI, sends it via router to settle Teleport debt.
- finalizeRegisterTeleport: authenticated L2 message calls router.requestMint, which checks the configured source gateway, then calls the target TeleportJoin.requestMint.
While live, TeleportJoin can increase its debt via Vat.slip and Vat.frob, then DaiJoin.exit. This is a real architectural mint connection between the bridge and Maker.

At pin:
- ARB-ONE-A configured line: 1,000,000 DAI (same as fork).
- ARB-ONE-A debt: 0 (same as fork).
- Vat live: 0 => effective line forced to 0 inside TeleportJoin._mint.
- Effective line<=debt, so the branch emits Mint amount0 and returns; no positive issuance.
- TeleportJoin internal Vat DAI: 1.03, unchanged from fork.
- TeleportJoin urn debt: 0.
- A negative debt balance would represent prepaid credit and could permit post-cage exit, but ARB-ONE-A debt is not negative.

No logs whatsoever from gateway2221, routereef8 or join41ca in blocks17,233,001–27,824,343. Complete indexed address histories contain only3,11,20 transactions respectively, all before the Pulse fork, with firstPage=true/lastPage=true. No observed post-fork successful Teleport Register/Mint/Settle activity.
This excludes the specific inspected Teleport deployment as an observed source of post-fork pDAI issuance; it does not prove no other mint adapter or custom deployment exists.

SOURCE AND METHOD NOTES
All addresses/getters resolved with keccak256 function selectors, not SHA3-256. Direct RPC states saved alongside source files. Blockscout verified source retrieved for DAI, Vat, DaiJoin, Pause, ESM, ordinary gateway, escrow, Teleport gateway/router/join and AutoLine. Source-linked runtime bytes for DAI/Vat/DaiJoin/Pause/gateway/escrow exactly match pinned RPC eth_getCode; runtime_source_match.json records this check.
Primary deployment/architecture sources:
https://github.com/sky-ecosystem/arbitrum-dai-bridge/blob/master/README.md
https://github.com/sky-ecosystem/arbitrum-dai-bridge/blob/master/contracts/l1/L1DaiGateway.sol
https://github.com/sky-ecosystem/arbitrum-dai-bridge/blob/master/contracts/l1/L1CrossDomainEnabled.sol
https://github.com/sky-ecosystem/arbitrum-dai-bridge/blob/master/contracts/l1/L1Escrow.sol
https://github.com/sky-ecosystem/dss-teleport
https://github.com/sky-ecosystem/spells-mainnet/blob/master/src/test/addresses_mainnet.sol
https://github.com/sky-ecosystem/maker-keeper
https://github.com/sky-ecosystem/dss-auto-line/blob/master/src/DssAutoLine.sol
https://developers.skyeco.com/protocol/tokens/dai/
https://developers.skyeco.com/protocol/core/vat/
https://developers.skyeco.com/protocol/governance/pause/
