@@ -10,6 +10,8 @@ import { BRIDGE_ERROR } from '../lib/error'
1010import { ROUTE_NAMES } from '../lib/router'
1111import { attemptSeedDerivation } from '../lib/keys'
1212
13+import { WALLET_NAMES } from '../lib/wallet'
14+
1315import * as kg from '../../node_modules/urbit-key-generation/dist/index'
1416
1517import {
@@ -42,6 +44,7 @@ class SetKeys extends React.Component {
4244 continuity: false,
4345 txn: Maybe.Nothing(),
4446 txError: Maybe.Nothing(),
47+ isManagementSeed: false,
4548 userApproval: false,
4649 nonce: '',
4750 gasPrice: '5',
@@ -83,6 +86,8 @@ class SetKeys extends React.Component {
8386 }
8487 })
8588
89+ this.determineManagementSeed(props.contracts.value, addr)
90+
8691 props.web3.matchWith({
8792 Nothing: () => {},
8893 Just: (w3) => {
@@ -106,9 +111,16 @@ class SetKeys extends React.Component {
106111 })
107112 }
108113 });
109−
110114 }
111115
116+ async determineManagementSeed(ctrcs, addr) {
117+ const managing =
118+ await azimuth.azimuth.getManagerFor(ctrcs, addr)
119+
120+ this.setState({
121+ isManagementSeed: managing.length !== 0
122+ })
123+ }
112124
113125 async deriveSeed() {
114126 const next = true
@@ -287,6 +299,15 @@ class SetKeys extends React.Component {
287299 ? props.pointCache[state.point]
288300 : (() => { throw BRIDGE_ERROR.MISSING_POINT })()
289301
302+ const isManagementMnemonic =
303+ this.state.isManagementSeed &&
304+ props.walletType === WALLET_NAMES.MNEMONIC
305+
306+ const isMasterTicket =
307+ props.walletType === WALLET_NAMES.TICKET ||
308+ props.walletType === WALLET_NAMES.SHARD
309+
310+ const networkSeedDisabled = isManagementMnemonic || isMasterTicket;
290311
291312 return (
292313 <Row>
@@ -324,6 +345,7 @@ class SetKeys extends React.Component {
324345 prop-size='lg'
325346 prop-format='innerLabel'
326347 autoFocus
348+ disabled= { networkSeedDisabled }
327349 value={ state.networkSeed }
328350 onChange={ this.handleNetworkSeedInput }>
329351 <InnerLabel>{ 'Network seed' }</InnerLabel>