External tokens
Register and inspect tokens that were deployed outside the active DALP instance.
External tokens registers a token that this DALP instance did not create so operators can track it beside their own issuance. A registration is a record, not a redeployment: the platform never touches the external contract, never adds a DALP feature to it, and never gives it a Manage Asset workspace with mint, burn, transfer, or pause controls. All assets lists only tokens issued through this platform; this page is the counterpart list for every other token an organisation still needs to see.
An organisation usually arrives here in one of two ways. Most of the time, an operator opens the page directly to register a deployment the organisation already holds. The other path starts in Issue new asset: some instrument templates need an existing token underneath them as their denomination asset, a stablecoin or another ERC-20 to wrap, or an existing equity token to reference. When the organisation has none yet, the template picker offers a shortcut straight into this page's registration form, with a matching token type already selected. Either way, the form and the eligibility check that follows are the same. Registering a token here never creates a wrapped or derived asset by itself; that step happens afterward, back in Issue new asset's own wizard, once the underlying token this page recorded is available for the template to reference.
Registration is chain-scoped: it runs against the network you currently have selected in the Console header, and a registered token only ever shows up here, never in All assets, however similar its behavior looks on-chain. Registration is also a real transaction, not only a Console database write. It carries the address and token type onto the chain from your organisation wallet, and the eligibility check exists specifically to stop you from submitting one that the contract would revert. The external contract's own code and behavior stay untouched either way.
Tokens also arrive here without anyone registering them. When an ERC-20 or ERC-3643 token that this platform did not issue lands in one of the organisation's managed wallets, the platform registers it on its own, at most 20 per organisation per day; a token over that cap is registered on a later day. Such a row shows an "Auto-detected" badge in the "Origin" column and is active straight away, with no confirmation step. Its detail panel shows the full contract address and, when another of the organisation's tokens already uses the same symbol or name, a lookalike warning; compare the addresses before you use the token, because a lookalike can be a scam.
No control in the Console edits a registration once it settles. The per-row menu offers "View details", "Copy address", and, when the network has a block explorer configured, "View on Explorer". An account with the tokenManager role also sees "Dismiss", which hides the token from the organisation's holdings, portfolio, holder lists, token catalog, token details, and marks, and stops the platform from registering it again. Accounts with the tokenManager role still see a dismissed token in this table. The registration itself stays on-chain. The organisation's portfolio value drops the dismissed token once the next block is indexed, and later price changes or transfers of it no longer move that value. To bring a dismissed token back, register the same address again by hand: the token becomes active and returns to the portfolio value. Registering an auto-detected token by hand accepts it the same way. In both cases the token takes the type you choose. When your organisation's system was the first to register the token on-chain and that type differs from the one on-chain, the platform also queues a transaction that updates the type in the on-chain registry. Registering the wrong address is not reversible from this page, so verify the resolved details against your approved deployment record before you submit.
Steps
Open External tokens
Open "Asset management", then "External tokens". The table shows each token's identity, status, origin, state, total supply, and history-indexing state. "Origin" is "Auto-detected" or "Manual"; "State" is "Active" or "Dismissed". Only an account with the tokenManager role sees dismissed tokens here or can filter to them. The "View" control can show additional columns, including contract address, type, decimals, SMART and ERC-3643 flags, and registration date. The table filters by asset type or status; it carries no free-text search field, so finding one specific token by name or address means filtering, sorting, or opening its row directly once you spot it. Select "Register External Token" to open the registration side panel, shown below.


Screen equivalent: before registration, the page shows the registered-token table and the "Register External Token" button.
Enter and check the contract
Choose "Quick add a known token" to search deployments on the active network, or enter the deployed address in "Token Address". Quick add fills the address and type, then runs the same eligibility check as manual entry. If you replace a suggested address, review the type again because it resets to "Other". About 350 milliseconds after you stop typing, the panel runs a live check against the chain and shows a preview card beneath the field. Once the contract resolves, the card names its symbol, decimals, and total supply, with a SMART badge when the contract implements it.
The card ends in one of four states: still inspecting, unable to inspect the contract at all, eligible for registration, or blocked with one exact reason. An inspection failure is a lookup problem, not a verdict on the contract itself. A blocked verdict names one of three causes: no contract code at that address, the organisation already registered the token by hand and it is active, or the token is one of this platform's own factory-deployed or system contracts. An auto-detected or dismissed token stays eligible, because registering it by hand brings it back. Compare the resolved name, symbol, and decimals against the approved deployment record before continuing.
Use the "Token Type" dropdown to choose from a fixed list: Bond, Equity, Fund, Stablecoin, Deposit, Cryptocurrency, or Other. It sets a tracking category for this registration; the chain enforces nothing based on it. "Register Token" stays disabled until the address check has resolved to eligible and the form has no validation errors.


Screen equivalent: the registration panel contains the contract address field, the resolved token details beneath it, and the token-type control.
Register the token
Select "Register Token", then complete "Confirm Registration" with your wallet. The Console records the existing contract in the external-token registry; it does not deploy anything. Settlement lands one of three ways. An immediate success shows "External token registered successfully" and the table refreshes to include the new row. Historical indexing can continue after registration succeeds. An on-chain failure shows "Token registration failed on-chain. No changes were made." Read the reported error and correct its cause before retrying. A still-pending transaction shows a persistent notice to track it in "Actions" instead, and the table only updates once that transaction settles.
The check runs automatically, about 350 milliseconds after you stop typing. Once inspection succeeds, an eligible contract turns Register Token on, and a blocked one names its single disqualifying reason and holds the button off until a different address clears the check.
Troubleshooting
Register Token cannot be selected
Signal: the button stays disabled even though the address and token type fields look filled in. Cause: the eligibility check has not resolved yet, or it resolved blocked. A blocked verdict names one of three reasons: no contract code at that address, the token is already registered, or the token is one of this platform's own factory-deployed or system contracts. Fix: wait for the preview card to finish, then read the exact reason it names before assuming the form itself is wrong.
The preview card cannot inspect the contract
Signal: the card reports a lookup failure instead of naming an eligibility reason. Cause: usually the network selector pointing at a different chain than the one the contract is deployed on, or a transient read failure. Fix: confirm the network selector matches the deployment record, then retry the address.
The token is already registered
Signal: you are about to search the table for an address you suspect is already tracked. Cause: unnecessary, the registration form already tells you. Fix: paste the address into "Token Address" directly; if it is already registered, the preview card reports that reason immediately, before you need to look through the table at all.
Nothing new appears after Register Token
Signal: the confirmation completed, but the table still does not show the new row. Cause: settlement is not always immediate; a still-pending transaction shows a persistent notice to track it in "Actions" instead of the success message, and the table only updates once it settles. Fix: check "Actions" for the pending transaction rather than repeating the registration.
The resolved contract details do not match the approved deployment record
Signal: the preview card names a symbol, decimals, or supply that disagrees with the record you were given. Cause: usually the wrong address, sometimes a deployment record that is stale or wrong itself. Fix: stop and do not submit. No unregister control exists if you register the wrong contract, so resolve the mismatch against your organisation's own deployment record, or with whoever issued it, before you continue.
A registered token's asset type does not appear in the table filter
Signal: you registered a token as "Cryptocurrency" or "Other", but the table's asset type filter has no matching option to select. Cause: the filter's option list comes from this platform's own deployable asset types: bond, equity, fund, stablecoin, deposit, real estate, precious metal. The registration form offers a different list, and "Cryptocurrency" and "Other" exist only there, not as filter values. Fix: clear the asset type filter and use sorting or the address column instead. The token's registered type still displays correctly in its own column and detail record; only the filter option is missing.
Frequently asked questions
Do I need to register the same contract again on another network?
Yes. Registration is chain-scoped, so a record only applies to the network selected in the Console header at the moment you submit. Deploying the identical contract address on a second network is a separate registration with its own eligibility check and its own transaction, and it will not appear in this table until you register it while that network is active. Switching the network selector afterward does not carry an existing registration across chains.
If I dismiss the registration panel that opened automatically from Issue new asset, do I lose that entry point?
No. Dismissing the panel closes it without submitting, but the link that opened it stays in the page's URL. Reloading the page reopens the panel again, with the same token type preselected, and it keeps doing that on every reload, not just once. Opening "Register External Token" from the button beside the page title, rather than reloading, opens the panel with "Other" preselected, since that is the form's own default when no type comes in from the URL, not an empty selection.