First-time user flow: create your first Agreement on TradeX.

Exit flow

Share data with a counterparty

Cancel
Step 0

Foundation — DEX chips and platform mark

ADR 0005P6-R2

Chip sizes at 12 / 16 / 24px — TradeX, BuildEx, HealthDex

TradeX
TradeXTradeXTradeX
BuildEx
BuildExBuildExBuildEx
HealthDex
HealthDexHealthDexHealthDex
TradeXBuildExHealthDex

Platform mark (neutral chrome at /portal/all)

Dex

Accent

Charcoal

Sidebar tone

Mono glyphs

TRADEX

BUILDEX

HEALTHDEX

Step 1a

P5 Inbox — /portal/tradex/inbox

ADR 0003ADR 0006P5-R1
Try it: click the TradeX pill in the header to open the workspace switcher. Click the + New Agreement button to open the dropdown. Click any inbox card to land on the Agreement detail page.
Admin
Search⌘K
MO

Inbox

13 items waiting

All · 13Approvals · 4Agreements · 6Renewals · 2Issues · 1
Mine5 items
TradeXIncoming request
Maersk wants to receive Bills of Lading from you
Invited 2h ago · waiting on you to accept or decline
TradeXOutgoing request
Your ETA request to PSA — awaiting their decision
Sent 4h ago · 30-day window · pending PSA accept · auto-reminder at day 21
TradeX
Extend Agreement with Cosco before 30 Sep
Renewal · expires in 9 days · auto-extend disabled
TradeX
Promote Bill of Lading v2.1 → Active
Data element · drafted by Sarah · review window closing today
My team's8 items · anyone can claim
TradeX
PSA bunker delivery — 3 contributor enrolments pending
Approval · oldest 4h ago · 3 admins eligible
Alice approved CrimsonLogic appointment for ABC Logistics
Completed 2 min ago · disappears from inbox in 3 min
TradeX
Review onboarding KYC for Pacific Container Lines
Approval · 1d ago · 3 admins eligible
Step 1b

P5 Inbox — /portal/all

ADR 0005ADR 0016
Note the contrast vs Step 1a: neutral platform chrome at the shell level; DEX colour appears only on individual record chips.
Search across DEXes⌘K
MO

Welcome, Marcus.

Across TradeX, BuildEx and HealthDex · 22 items waiting

All · 22 TradeX · 13 BuildEx · 6 HealthDex · 3
Mine8 items across 3 DEXes
TradeXIncoming request
Maersk wants to receive Bills of Lading from you
Invited 2h ago · waiting on you
TradeXOutgoing request
Your ETA request to PSA — awaiting their decision
Sent 4h ago · 30-day window · pending PSA accept
BuildExIncoming request
Cross-DEX: PSA wants TradeX bunker data via BuildEx
Cross-DEX warning will fire on review
HealthDex
Annual compliance certificate expires in 14d
Renewal · residency-strict · no grace period
My team's14 items · claim to move into Mine
BuildEx
5 contractor enrolments awaiting approval
Approval · oldest 3h ago · 4 admins eligible
Onboarding · Q19

Empty state — brand-new admin user, first 60 seconds

ADR 0015O-1
No tour. No checklist. The empty state IS the onboarding.
MO

Welcome, Marcus.

As an Admin on TradeX, you can review participant approvals, manage data elements, and create Agreements on behalf of your org.

What else can I do here?

When items arrive, they'll appear above, split into Mine and My team's.

Step 2 · P3

+ New Agreement dropdown (expanded)

ADR 0004ADR 0018
The two entry points + conditional template item.
New Agreement
SP wizard · step 1 of 6

Direction & service provider

What should the service provider do on your behalf?

Pick the direction first — it determines who the data flows from and to. Then pick the SP.

3 SPs your org has worked with
Wizard step

Data element picker — browse + groups + search fallback

ADR 0013
Browse-primary. Groups are first-class. Snapshot semantics protect existing Agreements.
Trade documents14
Logistics & tracking38
Bunker & fuel26
Finance & invoicing21
Customs & regulatory19
Vessel arrival packpack

Curated Data element pack — flows together when a vessel arrives. Maintained by TradeX admins.

Snapshot · 4 elements (deselect any)

The snapshot is captured at Agreement creation. Future edits to this pack won't affect Agreements created today.

Wizard step · pack fork

Same counterparty or split across counterparties?

ADR 0027
Only shown when the chosen Data element is a pack (≥2 elements). The operator picks the distribution shape. Same creates one Agreement with all elements; split creates one Agreement pack + N member Agreements (one per chosen counterparty).
PACK-2026-DRAFT

You picked the pack:

Vessel arrival pack — 4 elements: ETA · vessel particulars · crew list · cargo manifest

How should these 4 elements flow?

Pick one. The choice determines how many Agreements get created in the next step. You can always extend with more counterparties later — this isn't a permanent decision.

The 1:1 cardinality rule (one Agreement = one counterparty) is unchanged either way. The split path creates multiple Agreements; it does not create one Agreement with multiple counterparties. See ADR 0027.

Pick a card above to continue
Wizard step · pack split

Assign each element to its counterparty

ADR 0027
One row per element in the pack. Pick a counterparty for each. Multiple elements can share a counterparty (the resulting Agreement will carry those elements as a multi-element snapshot). Submitting creates one Agreement pack + N member Agreements in one transaction.
PACK-2026-DRAFT
Vessel arrival pack · 4 elements · split across counterparties
Data element Counterparty Type
ETA
v2.0 · Estimated time of arrival
PS
PSA International
Port operator · TradeX
Direct
Cargo manifest
v3.0 · Itemised shipment list
Mk
Maersk Logistics
Carrier · TradeX
Direct
Crew list
v1.2 · Personnel manifest
IC
ICA Singapore
Immigration · TradeX
Direct
Vessel particulars
v1.0 · Vessel registry data

Will create

1 pack + 3 member Agreements

+ 1 more once you assign Vessel particulars

Counterparties to invite

3 of 4 picked

PSA · Maersk · ICA — each gets one inbox card to accept

Save as template?

After 3 similar pack instantiations, the wizard offers this template at step 0 (per ADR 0011)

Assign all 4 elements before continuing · 3 of 4 done
Wizard step

Counterparty picker — hybrid with use-case-enrolment readiness

ADR 0014
Click Maersk or Acme Construction (BuildEx) to fire the cross-DEX warning.
Any typeCarrierShipperService provider Ready for B/L sharing
Counterparties your org has worked with (8)

Ready = counterparty has enrolled in the same use case as your data element.

SP wizard · step 1

Direction question — three candidate copy variants

ADR 0004P3-R2
Test these 3 with 4–6 users (P3-R2 cheapest test). Winner becomes production copy.

Variant A · Active voice

What should this service provider do on your behalf?

Variant B · Direction-first

Which direction will data flow?

Variant C · Concrete example

Pick the scenario that matches your setup

Wizard · step 3 of 5

Set the terms

How long should this Agreement run?

Duration, residency class, and notification cadence. All editable from the detail page later.

Effective fromDefaults to today
Data flow begins as soon as the counterparty accepts.
DurationUntil renewal
Ends on 14 May 2027.
Residency class
For most B/L data, Standard is correct.
Renewal notifications
Send reminders at 60 / 30 / 14 / 7 / 1 days before expiry
Broadcast to all admins on this org (recommended)
Allow 7-day grace period after expiry
Custom noteOptional
Visible to both parties on the Agreement detail page.
Wizard · step 4 of 5

Review and confirm

One last look

After you confirm, the Agreement is created in PENDING state and the counterparty receives an invitation.

Type

Direct Agreement

You and one counterparty agree on terms. No intermediary.

What's coveredEdit

Vessel arrival pack

Data element pack · 4 elements · snapshot captured at creation

CounterpartyEdit

Maersk Logistics Pte Ltd

Carrier · UEN 200512345R · TradeX · Ready for B/L sharing

TermsEdit

12 months · Standard residency · auto-renewal off

Renewal cadence: 60 / 30 / 14 / 7 / 1 days. Applied uniformly across all member Agreements in this pack.

Wizard · step 5 of 5 · Created

Agreement created

Your Agreement with Maersk Logistics is on its way

AGR-2026-05847 · PENDING · invitation sent

View the Agreement

Open the detail page · track status as Maersk reviews.

Back to inbox

It'll appear in Mine until Maersk acts.

What happens next: Maersk has 30 days to accept. Reminders fire at 21 / 14 / 7 days. After acceptance, data flow begins within 5 minutes.

Approve incoming · step 1 of 3

Review incoming Agreement

Maersk Logistics has invited your org to receive Bills of Lading from them. Invited 2 hours ago.

Type

Direct Agreement · you are the receiver

What you'll receive

Bill of Lading · v2.1

Average volume: ~140 documents/month.

Sender

Maersk Logistics Pte Ltd

Carrier · UEN 200512345R · 3 prior Agreements with you

Terms

12 months · Standard residency

They'll send a renewal request 30 days before expiry.

Approve incoming · step 2 of 3

Your decision

Pick one. Maersk is notified immediately either way. Audit-logged.

Accept

Agreement transitions to ACTIVE. Data flow begins within 5 minutes.

Request changes

Open a back-and-forth thread with Maersk before accepting.

Decline

Agreement ends with reason REJECTED.

Approve incoming · step 3 of 3 · Accepted

Agreement accepted

Now active with Maersk Logistics

AGR-2026-04829 · ACTIVE · data flow starting

View the Agreement

See lifecycle, parties, terms, and audit trail.

Back to inbox

Maersk's invitation has been cleared from your queue.

What's happening behind the scenes: First B/L message expected within 5 minutes. Renewal reminder fires 30 days before expiry.

P7 · Data exchange

Messages — unified Sent & Received

P7 brainstorm
Replaces the legacy shared-data + received-data split. One feed with stats strip + live pulse + filter chips. Failed rows highlighted with inline retry. Click any row → message detail.

Today

1,247

messages

Acknowledged

1,232

98.8% success

Failed

8

3 mine · 4 theirs · 1 expired

In flight

7

avg latency 1.2s

Live
CounterpartyData elementSource AgreementStatusTime
Sent
Mk
Maersk Logistics
Bill of Lading v2.1 AGR-2026-04829 Delivered just now
Sent
PS
PSA International
Bunker delivery v0.9 AGR-2026-04822 Failed Your action

Payload validation failed · field quantityMt out of range

3 min ago
Received
Mk
Maersk Logistics
Container tracking pull v1.2 · request AGR-2026-04829 In flight 2 min ago
Sent
AB
ABC Logistics
Daily customs digest v2.0 · stored AGR-2026-04501 Failed Expired

7-day TTL elapsed without retrieval · data purged

2h ago
Received
CS
Cosco Shipping
Vessel arrival pack pack · 4 elements AGR-2026-03917 Acknowledged 8 min ago
Sent
AB
ABC Logistics
Certificate of origin v1.4 AGR-2026-04501 In flight 12 min ago
Received
Mk
Maersk Logistics
Cargo manifest v3.0 AGR-2026-04829 Delivered 18 min ago
Sent
CL
CrimsonLogic (SP)
Bill of Lading v2.1 AGR-2026-04711 Delivered 22 min ago
Received
PS
PSA International
ETA v2.0 AGR-2026-03917 Acknowledged 31 min ago
Sent
DH
DHL Global Forwarding
Consignment note v1.3 AGR-2026-04102 Failed Their action

DHL pitstop returned 403 · schema validation rejected v1.3 (expecting v1.4)

42 min ago
Received
Mk
Maersk Logistics
Vessel particulars pull v2.0 · request AGR-2026-04829 Failed Their action

Fulfilment refused · Maersk policy denies bulk pulls outside business hours

1h 14m ago
Sent
JT
Jurong Terminals
Berth allocation v0.8 AGR-2026-04388 Failed Your action

Your pitstop unreachable · TLS handshake timeout at 14:09 SGT

1h 32m ago
Sent
Mk
Maersk Logistics
Phytosanitary cert v1.1 AGR-2026-04829 Failed Your action

Missing required field inspectionDate · payload rejected at pre-send validation

2h 8m ago
Sent
CS
Cosco Shipping
Dangerous goods manifest v2.1 AGR-2026-03917 Failed Their action

Cosco pitstop offline · 5 retries exhausted over 6h

2h 51m ago
Received
DH
DHL Global Forwarding
Track-and-trace ping pull v1.0 · request AGR-2026-04102 Failed Their action

Rate limit hit · DHL pitstop returned 429 · next quota window 00:00 SGT

3h 22m ago
Showing 14 of 1,247 messages today · load more
P7 · Data exchange · Message detail

Message detail · flow-aware

ADR 0020 ADR 0021
Demonstrates the two-layer model (ADR 0021): 4 flow-agnostic status labels (In flight / Delivered / Acknowledged / Failed) + 3 flow-specific timelines underneath. Failed Messages carry an owner badge for remediation routing. View delivery trace replaces View as counterparty on Messages (impersonation is Agreement-only per ADR 0020).
TradeX MSG-2026-118472 View delivery trace

Bunker delivery confirmation → PSA International

Failed Your action

Payload validation failed · 3 min ago

PAYLOAD_VALIDATION_ERROR · field quantityMt = 9999.9 exceeds Agreement-declared max 5000.0 · this is a Your action failure

JSON · encrypted in transit (TLS 1.3) · at rest (AES-256)

      
    P8 · Agreement-anchored Message composer

    Compose Message

    ADR 0024 ADR 0025 ADR 0026
    Single composer surface replaces legacy EForm + ETR modules. Complexity-driven shape: simple elements render as single-page form (EForm pattern); high-stakes elements render as 3-step wizard (ETR pattern) per ADR 0025. Flow-type variants: Send (PUSH) / Request (PULL) / Stage (STORE). Access: data-owner role or SP via Acting-as workflow.
    1. 1Compose payload
    2. 2Review
    3. 3Submit
    TradeX AGR-2026-04829 key: idem_a7f3c91d

    Bill of Lading → Maersk Logistics

    high-stakes Cancel

    Snapshot v2.1 · captured 21 Mar 2026 at Agreement creation · latest is v2.4

    Auto-saved 2 sec ago · draft will auto-purge after Agreement ends or 30 days of inactivity (whichever first)

    All required fields filled · ready to review
    P8 · Compose success

    Message submitted

    ADR 0024

    Submitted to Maersk Logistics

    Your Bill of Lading is now In flight · Message ID MSG-2026-118504

    • Idempotency key idem_a7f3c91d · counterparty pitstop will dedup if original delivered
    • Submitted 14:18:40 SGT · expected delivery within 2 seconds
    • Draft hard-deleted on success per ADR 0024
    • Watch is enabled — you'll get inbox + email when this acks or fails
    Concept brief · May 2026

    From two systems to one portal

    Today, operators move between two separate portals — one to set up data-sharing relationships, another to actually exchange data — translating between several different vocabularies along the way. The platform rewrite consolidates this into one portal with one mental model: set up an Agreement with a counterparty once, then exchange Messages under it. The expected outcomes: about 40% fewer clicks on common operator tasks, a single training curriculum instead of two, and a new safety affordance for legally-significant documents that the current system lacks.

    2 1

    Portals operators use

    One sign-in, one home page, one navigation model

    4 1

    Vocabularies to learn

    Operators speak Agreement and Message everywhere — no more translating between legacy terms

    ~40%

    Fewer clicks on common tasks

    Estimated from screen-count; user testing in Phase 5 will validate

    6 mo

    To first customer ship

    Plus a separate post-rewrite roadmap that depends on platform-team work

    Upstream of compose

    Two ways to set up consent

    Before any Message can flow, an Agreement has to exist between two parties. The legacy world had 3–4 consent representations to choose between; the new portal has one record with two intents.

    Today

    Pick the right kind of contract

    "I want to set up data sharing with Maersk. Is this a Subscription? A Data Exchange Relationship? A Service Provider Relationship? Let me check the docs first..."

    1. 1Identify which kind of contract this relationship needs (the system supports several variants — Subscriptions, Direct relationships, Service-Provider relationships, tripartite arrangements)
    2. 2Navigate to the matching setup page · each variant has its own creation flow
    3. 3Fill the variant-specific form · each has different required terms
    4. 4Send the invite to the counterparty · they see a different inbox prompt per variant
    5. 5Counterparty accepts via the variant-specific workflow · the record activates

    The operator has to know the legal taxonomy upfront and pick the right variant. Each has its own behaviour. Picking the wrong one means revoking and starting over.

    New portal

    Describe the intent

    "I want to share Cargo manifests with Maersk."

    1. 1Click + New Agreement → pick an intent in plain English: Share data with a counterparty or Appoint a service provider on my behalf
    2. Same wizard either wayThe operator answers five plain-English questions: what data, with whom, for how long, under what residency terms — then a review-and-send confirmation. Same flow no matter what intent.

    3. 2Counterparty receives one inbox card · accepts in one workflow regardless of intent
    4. 3Agreement transitions to Active · same lifecycle no matter what intent it was created with

    One contract type, one wizard, one set of states. The legal nuances stay hidden from the operator — the system handles them. After an operator creates 3 similar Agreements, the portal offers them a one-click template for the next one.

    Several legacy variants → one Agreement

    Today's system uses several different consent record types to model the same business question — "who can send what data to whom, possibly via a third party?" The new model collapses them all into one Agreement with an internal variant flag that the operator never sees.

    That is why every downstream activity — composing a Message, finding it in the inbox, auditing it, reconciling with the counterparty — uses the same vocabulary. There is no longer a branching "is this a DER or an SPR?" question at any step. The operator sees Agreement everywhere; the system handles the legal structure.

    The shift, downstream

    Two ways to think about composing a Message

    Once Agreements are set up, composing a Message under one is the dominant operator task. Step reduction is the symptom; this is the cause.

    Today

    Assemble the parts

    "I'm allowed to send data on this network. Let me pick who I'm sending to, then pick what I'm sending, then go to the right form for that data type."

    1. 1Check that the operator's organisation is permitted to send data on this network
    2. 2Pick a counterparty from the list of organisations this operator can act for
    3. 3Pick a data element (the type of record being sent)
    4. 4The operator has to know which form page to use for that data element — routine documents and legally-transferable records use different modules
    5. 5Fill the form on the right module · submit

    Every send is an ad-hoc combination. The operator chooses every dimension each time, including which module to use. Nothing connects this send to a prior consent decision except a global permission.

    New portal

    Act under a contract

    "This Agreement says I send Cargo manifests to Maersk. What's the next Message under it?"

    1. 1Open an Agreement — the contract that's already in place
    2. The Agreement carries every dimensionThe counterparty, the data element and its agreed schema, the direction (sending · receiving · staging), the safety level (routine vs legally-significant), and who's authorised to compose (the owner or a service provider acting on their behalf).

    3. 2Click + Send Message on the Agreement
    4. 3Fill the data fields · submit

    Composing a Message is acting under a contract that already decided every dimension. The operator just fills the data. One surface handles routine and legally-significant documents — the system recognises the difference automatically and adds a review step for the latter. Legally-transferable records (eBL, eBoL) remain in their own module because they have unique operations beyond composition (transfer · surrender · shred).

    Where did the "pick" steps go?

    The three "pick" steps from the legacy model — pick counterparty, pick data element, pick form route — are not deleted. They are moved upstream into Agreement creation, where they belong as deliberate consent decisions made once, with the counterparty's explicit acceptance.

    That is why the same operator action ("send a Cargo manifest to Maersk") takes 5 steps instead of 9 — the dimensions are decided once at Agreement creation and reused for every Message sent under it. Consent and action are decoupled.

    One task, two journeys

    Send a Cargo manifest to Maersk

    A routine high-stakes data element — non-ETR, fillable via form, legally significant for customs declarations. Same outcome, fewer surfaces, less translation between vocabularies — because the dimensions were already decided at Agreement creation.

    TodayTwo systems · multiple vocabularies
    1. Log in to the setup portal to confirm a sharing relationship exists for this data element
    2. Switch to the operations portal (separate sign-in)
    3. Navigate to the Shared data page
    4. Click "Share data" — the page is only available if your organisation is permitted to send data on this network
    5. Pick the counterparty from the dropdown of organisations you can send to
    6. Pick the data element to send (Cargo manifest v3.0)
    7. System routes to the standard form page · single-page form with 29 fields
    8. Fill the form with no review step · submit (no confirmation)
    9. Refresh the page to verify delivery

    9 steps · 2 systems · multiple vocabularies to translate between

    New portalOne system · one vocabulary
    1. Open the Agreement detail page for "Cargo manifest with Maersk" (or click + New Message from the Messages list → pick the Agreement)
    2. Click + Send Message on the Agreement
    3. The Composer opens with the Agreement's terms pre-applied · fill 29 fields
    4. Review step (the system adds this automatically because Cargo manifest is tagged as legally significant) → Submit
    5. Land on the Message detail page with a live timeline showing the document move through Queued → Sent → Delivered → Acknowledged

    5 steps · 1 system · 1 vocabulary (Agreement → Message)

    ~44% fewer steps on this task. Estimated from counting screens and clicks; user testing during Phase 5 will validate with measured time.

    One vocabulary. Operators no longer translate between "Subscription," "Share data," and per-document form routes. Two words — Agreement and Message — cover the whole experience.

    New safety affordance for compliance. Today, routine high-stakes documents like a Cargo manifest are submitted without a review step. The new portal adds a deliberate review step automatically when a document is tagged as legally significant — reducing the risk of submitting an incorrect record.

    Legally-transferable records keep their own module. Electronic Trade Receipts (eBL, eBoL) are different from regular documents — they carry an endorsement chain, ownership records, and have unique operations (transfer · surrender · shred) beyond simple sending. The new portal preserves the dedicated module for those operations. The Composer covered above handles routine sending of all other documents, including Bills of Lading used as regular trade documents.

    The new mental model

    Three sections answer three questions

    The portal's outer sidebar is grouped around what an operator is trying to do — not around legacy module boundaries.

    "What needs my attention?"

    Work

    • Inbox — pending action items, badge-counted
    • Drafts — Messages and Agreements in progress; decay-with-pin lifecycle (ADR 0024)

    "What's the business state?"

    Exchange

    • Agreements — the rules · who can send/receive what under what terms (ADR 0007)
    • Messages — the records flowing under those rules · 4 statuses, 3 flow types (ADR 0020/21)

    "What are the building blocks?"

    Directory

    • Data elements — DEX-admin-curated catalogue · schema + complexity flag (ADR 0013/25)
    • Participants — orgs the user can transact with on this DEX

    Six decisions that shape the experience

    Why operators will find this simpler

    The decisions below were made deliberately during design. Each has a clear business consequence for operators and the organisations using the network.

    01

    Inbox is the home page

    Operators land on a queue of items needing action — not a generic dashboard. Fewer "where is X?" moments; fewer support tickets about navigation.

    Customer outcome — faster time to first task

    02

    One page for sent and received data

    Today's split between "shared data" and "received data" forces operators to know which page their record lives on. The new portal shows everything on one page with filters. The underlying transport details stay invisible.

    Customer outcome — less training, fewer mistakes

    03

    One status vocabulary

    Every Message uses the same four labels — In flight, Delivered, Acknowledged, Failed — regardless of how the data is being exchanged. Compliance reports become straightforward; status discussions stop needing translation.

    Customer outcome — clearer audit trails

    04

    Composing happens under an Agreement

    Sending data starts on the contract that authorises it. The system pre-applies the counterparty, the data type, and the safety level — operators just fill the data. Routine documents and legally-significant ones share one surface; service providers get an explicit "acting on behalf of" mode.

    Customer outcome — fewer clicks, cleaner audit, reduced compliance risk

    05

    Agreement terms are frozen at acceptance

    What a counterparty agreed to at acceptance does not change underneath them. If the underlying schema evolves, the Agreement is revoked-and-recreated with the new terms — never silently updated.

    Customer outcome — legal certainty; no silent term changes

    06

    Notifications match the stakes

    Operators mark time-sensitive Agreements as Watched; they get immediate notifications on completion or failure. Routine failures collect into a twice-daily digest. No notification fatigue; no missed escalations.

    Customer outcome — operators trust their inbox

    What ships first vs what's deferred

    Honest scoping

    Several capabilities depend on supporting work that the platform team has not yet built. We design them now, document the plan, and ship them when the foundations are ready. Here is what each phase delivers.

    First customer ship · 6 months

    Ships in the rewrite

    • One portal replacing today's two systems · sign-in unified · role-aware navigation
    • Inbox home — items needing action, with team-claim semantics so colleagues can take over each other's work
    • One page for all data exchanges (sending and receiving), with filters and search
    • Per-Message detail with live status timeline, a delivery-trace audit view, retry, and close
    • Bulk retry and bulk close for failed Messages — useful after an outage
    • One Composer for sending data — automatically adds a review step for legally-significant documents
    • Draft auto-save with sensible expiry — operators don't lose in-progress work
    • Watch toggle for time-sensitive Agreements + twice-daily digest for routine failures
    • Cross-network warnings when an action spans more than one regulated data exchange
    Post-rewrite roadmap

    Deferred — depends on platform work

    • Letting two counterparties' systems negotiate when one upgrades its data schema (today, this is manual; the new capability needs platform-team work first)
    • In-place Agreement amendments instead of revoke-and-recreate
    • Bulk send (one message to many counterparties at once)
    • Test mode — exercise the wire end-to-end without binding business effect
    • One-click switch to an alternate Agreement when a service provider is unavailable
    • Cross-counterparty reconciliation diff view (does my record of what we exchanged match yours?)
    • Per-data-element urgency flag for stronger escalation on truly time-critical documents
    • Org-wide banner when too many Messages are failing at once
    • Mobile push notifications

    What we need from leadership

    Three calls before engineering starts the build

    A

    Confirm who can send data on each Agreement

    The new portal only lets the data owner (or a service provider explicitly acting on the owner's behalf) compose Messages. Today's system is more permissive. We need product and compliance to confirm this tighter rule is the intent, and to greenlight the cleaner audit trail it produces.

    B

    Confirm "revoke and recreate" is acceptable for schema changes

    If an Agreement's underlying data schema needs to change, the new portal asks both parties to formally revoke and re-create the Agreement on the new schema. In-place upgrades arrive later, when the platform team's cross-counterparty work is ready. We need leadership to confirm that's acceptable for customer launch.

    C

    Greenlight a one-week user-test round before engineering commits

    5–6 operators from current customer organisations, walked through 3 sample tasks each. The test validates the two biggest design hypotheses (the consolidated Messages page and the new Composer). Budget: about a week of design time plus an afternoon of operator sessions. The findings could shift design before the larger engineering investment begins.

    Reference

    Architecture Decision Records

    26 structural decisions banked across 8 grilling rounds. Each captures the considered options, the chosen path, the consequences, and any risk it introduces. Click a row to read the full ADR in design-concepts/docs/adr/.

    # Title Surfaces affected Group Status
    0001URL-anchored DEX context

    /portal/<dex>/... anchors the active DEX; aggregated view at /portal/all

    Topbar · RoutingFoundationsActive
    0002Permission-scoped routes, no mode segment

    No admin/participant mode toggle; routes gated by per-DEX permission

    Routing · View-asFoundationsActive
    0003Inbox with claim semantics

    Mine / My team's split · claim action · completion echo

    InboxUXActive
    0004Agreement creation entry — dropdown of two affordances

    "+ New Agreement" expands to Direct vs Service-Provider

    Topbar · Agreements listUXActive
    0005Neutral chrome at /portal/all

    Aggregated view uses platform chrome (no DEX brand at chrome level)

    Topbar · SidebarFoundationsActive
    0006Sidebar — platform-defined with user pin/hide

    Items defined by platform; user can pin or hide; "Messages" added per ADR 0020

    SidebarFoundationsActive
    0007Agreement lifecycle state machine

    Pending → Active → Ended (3 states) · reason codes on Ended, not primary states

    Agreement detail · TimelineAgreementActive
    0008Unified Agreement record (Subscription/DER/SPR collapse)

    One consent_agreement table with agreement_type discriminator

    Backend · All Agreement surfacesAgreementActive
    0009Extend by action with business-continuity notification

    No auto-renew; explicit extension; reminder cadence per ADR 0010

    Agreement detail · NotificationsAgreementActive
    0010Lifecycle-reminder pattern (not framework)

    Deadline-driven events only · 5 rules (cadence, channels, broadcast, one-click, grace). Messages explicitly out (see ADR 0023).

    Notifications · RemindersUXActive
    0011Agreement templates — org-scoped, surfaced after 3 similar

    Auto-surfaced after ≥3 similar Agreements; org-owned, DEX-scoped, versioned

    + New AgreementAgreementActive
    0012Cross-DEX action warning

    Three trigger forms: inline panel · bulk modal · inline chip. Specific copy naming what differs.

    Wizard · Bulk actions · /portal/allUXActive
    0013Data element picker — browse with groups, snapshot on Agreement

    Groups are mutable; Agreements capture an immutable snapshot at creation

    Wizard · Composer · Agreement detailAgreementActive
    0014Pending Agreement reminder cadence

    Specific implementation of the lifecycle-reminder pattern for pending invites

    Inbox · NotificationsUXActive
    0015Empty state is the onboarding (no tour)

    No multi-step product tour; empty state guides the first Agreement

    Empty stateUXActive
    0016Migration banner — what changed for legacy users

    Top banner on first login post-migration; one-time, dismissible, audit-logged

    All screens (1st login)UXActive
    0017Audit log surfacing on Agreement detail

    Activity section · most recent first · expandable rows

    Agreement detail · Message detailAgreementActive
    0018Wizard chrome — top stepper + bottom prev/next

    Top wizard-bar with Cancel link · bottom foot with Back + Continue

    Agreement wizard · ComposerUXActive
    0019Production-hardened Agreement detail page

    9-state machine · ARIA + focus management · ≥1200px right rail · mobile reflow

    Agreement detailAgreementActive
    0020Unified Messages surface

    /portal/<dex>/messages replaces shared-data + received-data split · feed + stats strip + live pulse · "View delivery trace" replaces "View as counterparty"

    Messages list · Message detailMessagesActive
    0021Message lifecycle — two-layer model

    4 flow-agnostic statuses · 3 flow-specific timelines (PUSH / PULL / STORE) · owner badge on Failed · Close one-way flag · Retry with idempotency contract

    Messages list · Message detailMessagesActive
    0022Reconciliation model (deferred, defined)

    Per-Agreement reconciliation · 3 buckets (Match / Drift / Missing) · v1 affordance hidden; Phase 8 build

    Agreement detail (Phase 8)MessagesDeferred
    0023Message notification cadence

    Inbox-only + twice-daily digest (~8am / ~1pm) + Watch toggle on Agreement · scopes lifecycle-reminder pattern out

    Inbox · Settings · Agreement detailMessagesActive
    0024Agreement-anchored Message composer

    One Composer replaces EForm + ETR · access = data-owner role + Acting-as for SPs · complexity-driven shape · drafts with decay-with-pin · idempotency contract end-to-end

    Composer · Agreement detail · DraftsComposerActive
    0025Data element compose_complexity attribute

    simple → single-page composer · high-stakes → 3-step wizard · DEX-admin-owned · legacy migration mapping

    Data elements registry · Composer · Agreement detailComposerActive
    0026Agreement snapshot immutability; schema upgrades require revoke-and-recreate

    v1 has no in-place upgrade · cross-pitstop schema negotiation deferred to Phase 8 (DEX-104 / DSV Phase 3)

    Composer · Agreement detail (Phase 8)ComposerActive
    0027Agreement pack — UI grouping for multi-counterparty pack scenarios

    1:1 cardinality rule (one Agreement, one counterparty) stays · pack is a UI-layer grouping of N Agreements created together for a multi-counterparty Data element pack distribution · setup wizard split fork · Pack detail page · Composer Send-pack mode

    Wizard · Agreements list · Pack detail · Composer · DraftsAgreementActive
    Reference

    Risk register

    10 concept-design risks identified during grilling. Each has a defined test that validates or invalidates it before engineering commits, plus a planned mitigation if it materialises.

    ID Risk Surfaces affected Severity Defined test Status
    DX-R1Unified feed hypothesis

    If operators consistently prefer stats-only over the feed, the P7 design is wrong and pivots to stats-first.

    Source: ADR 0020 · P7 brainstorm §6

    Messages listMedium5–6 operator user-test · 3 task questions · before engineering commitsOpen · pre-test
    DX-R2Four-status hypothesis

    If operators misinterpret "In flight" across flow types (e.g. expect STORE message to move past it within minutes), taxonomy may need a 5th status.

    Source: ADR 0021

    Messages list · DetailLowInclude ≥1 STORE + ≥1 PULL in user-test fixtures · ask each operator to interpret the statusOpen · pre-test
    DX-R3Operator-initiated reconciliation hypothesis

    If users expect passive drift badges, the Phase-6 reconciliation model needs background processing instead of click-driven.

    Source: ADR 0022

    Agreement detail (Phase 8)LowUser-test of Phase 8 design · observe whether operators look for passive indicators before clicking ReconcilePhase 8
    DX-R4Inbox loudness

    If operators consistently miss Failed · your action Messages because inbox + twice-daily digest is too quiet, escalation has to be added.

    Source: ADR 0023

    Inbox · NotificationsMediumUser-test scenario where a critical Message fails during off-hours · observe time-to-discoveryOpen · pre-test
    DX-R5Watch adoption hypothesis

    If operators don't discover or use the Watch toggle, time-sensitive use case isn't covered and the digest becomes the only catch-net.

    Source: ADR 0023

    Agreement detail · SettingsMediumObserve whether operators voluntarily Watch an Agreement when introduced to the affordanceOpen · pre-test
    DX-R6Legacy vocabulary resistance

    Operators trained on EForm/ETR may resist the unified Composer label.

    Source: ADR 0024 · P8 brainstorm §7

    ComposerLowMigration survey · tooltip on "+ Send Message" shows legacy aliases · CONTEXT glossary entryMitigated · v1
    DX-R7Schema drift across counterparties

    Cross-pitstop schema negotiation doesn't exist (CTD-10307 verified). Active Agreements stuck on old snapshots until DSV Phase 3 lands.

    Source: ADR 0026 · refined from P8 §7

    Agreement detail · ComposerHighv1 mitigation: revoke-and-recreate workflow surfaced on Agreement detail · Phase 8: amendment workflow (depends on DEX-104)Open · platform dep
    DX-R8Manual sends bypass automated validation

    Composer payloads aren't pre-validated by pitstop; risk of malformed payloads reaching counterparty.

    Source: ADR 0024 · P8 brainstorm §7

    ComposerMediumE2E test suite covering all data element schemas · client-side AJV + server-side re-validation at pitstop acceptMitigated · v1
    DX-R9SP composing under wrong owner

    SP operator with multiple delegating owners may inadvertently compose under the wrong one if Acting-as chip not unmissable.

    Source: ADR 0024

    Composer · Acting-as bannerMediumUser test with SP operators · yellow-toned banner · submit confirmation modal names the acting_as_orgMitigated · v1
    DX-R10DEX admins under-tag complexity

    If admins tag high-stakes elements as simple to skip the review step, the safety gradient is defeated.

    Source: ADR 0025

    Data elements registry · ComposerLowPeriodic audit · residency-strict elements auto-upgrade to high-stakes regardless of admin tagging · admin-side change is audit-loggedMitigated · v1

    Test-cost

    ~1.5 days design + ~8 hours of usability sessions covers DX-R1 through DX-R5. Single sprint of work; no engineering commit needed.

    Platform-dep risk

    DX-R7 is the only High-severity risk and depends on DEX-104 (DSV Phase 3). v1 ships with the revoke-and-recreate escape; Phase 8 builds the in-place amendment workflow.

    If a risk fires

    Each row has a defined test + planned mitigation. Discovering one through user testing triggers an explicit decision: pivot the design, ship with mitigation, or accept the risk.

    Q23 · production hardened

    Agreement detail page

    ADR 0019 ADR 0007 ADR 0009
    Production polish: 7-state machine, ARIA + semantic HTML, focus management on modals + side panel, ≥1200px right rail, <768px mobile reflow, skeleton loader, reduced-motion respect. See docs/agreement-detail-handoff.md for the full spec.

    Share Bills of Lading with Maersk Logistics

    Active
    1. Pending

      14 Mar · invited by you

    2. Active

      21 Mar · Maersk accepted

    3. Ends

      30 Sep · expires

    Expires in 9 days. Extend before 30 Sep to avoid the 7-day grace window.

    Bill of Lading · v2.1

    Snapshot taken 14 Mar · 1 element · not in a group

    high-stakes Active

    Why high-stakes? Bills of Lading are legal records; the Composer renders a 3-step wizard with explicit review (per ADR 0025). Complexity is a property of the data element — managed on the Data elements registry by DEX admins, not per-Agreement.

    Effective from
    21 Mar 2026
    Extended until
    30 Sep 2026 (1 extension)
    Residency class
    Standard · cross-DEX OK with warning
    Auto-renew
    Off — requires explicit extension
    1. Marcus Ong extended the Agreement by 6 months

    2. Maersk Logistics began consuming the data feed

    3. Sarah Lim (Maersk) accepted the Agreement

    4. Marcus Ong created the Agreement and sent the invitation

    Cross-DEX · Trigger A

    Inline panel warning at counterparty-selection step

    ADR 0012
    Cancel is default focus; "Continue anyway" is a deliberate click. Both audit-logged.

    Step 3 of 5 · /portal/tradex/agreements/new

    Who's the counterparty?

    Mk
    Maersk Logistics Pte Ltd
    BuildExCarrier · UEN 200512345R

    This Agreement crosses a DEX boundary

    Maersk's primary DEX is BuildEx. You're creating this Agreement from TradeX. BuildEx residency rules apply to outgoing data.

    Your acknowledgement of this warning will be audit-logged.

    Cross-DEX · Trigger C

    Bulk pre-commit modal

    ADR 0012
    Mandatory acknowledgement checkbox before Continue activates.

    Extending 14 Agreements across multiple DEXes

    This action spans three DEXes, each with potentially different residency rules and notification cadences.

    TradeX9 Agreements · standard residencyReview
    BuildEx4 Agreements · standard residencyReview
    HealthDex1 Agreement · residency-strictWill be excluded
    Cross-DEX · Trigger E

    Inline chip on inbox card at /portal/all

    ADR 0012
    Routine action; chip is informational, not blocking.
    BuildEx
    Approve enrolment for Acme Construction
    3h ago · 4 admins eligible
    Acting from /all

    On click, the small chip expands into a tooltip explaining the cross-DEX context.

    Migration · first login post-cutover

    "What's changed" inline panel + migrated drafts notice

    ADR 0017O-3O-4
    One-time inline panel; URL redirects + automated draft migration are the permanent infrastructure pieces.

    The portal has been reorganised

    One-time notice

    Your existing work is intact. Here's what's different.

    Subscriptions, DERs, SPRs, and Client Relations are now all called Agreements. Same records, one name.

    URLs have moved to /portal/<dex>/…. Your old bookmarks redirect automatically.

    The dashboard has been replaced by an Inbox of items needing your attention.

    Admin and Participant views are now one portal — your sidebar shows what you can access.

    DEX context lives in the URL. Use the workspace switcher at top-left to move between TradeX, BuildEx, and HealthDex.

    See full glossary Auto-dismisses in 30 days

    3 drafts migrated from the old portal

    Your unsent Subscriptions and DERs are now in Agreements → Drafts.

    View drafts
    On the first 5 redirects from a legacy URL, a brief banner appears: "This URL moved. You're now at /portal/tradex/approval-requests." Dismissable.
    Dashboard

    TradeX overview · Cosco Shipping

    Alternative to the inbox-first home — metrics and trends rather than a queue. Click any chart bar or recent item to drill in.

    Active Agreements

    17

    +3 this quarter

    Pending action

    4

    2 down from yesterday

    Renewals due (30d)

    2

    Cosco · ABC Logistics

    Messages today

    847

    +12% vs last week

    Message volume · last 7 days

    View all →
    Mon
    Tue
    Wed
    Thu
    Fri
    Sat
    Today
    Outbound (sent) Bars normalised to weekly max

    Recent activity

    View detail →

    Sarah Lim (Maersk) accepted your Agreement

    21 Mar · 09:12 SGT

    Agreement with Cosco expires in 9 days

    Today · 08:00 SGT

    3 contributor enrolments awaiting your approval

    Yesterday · 14:23 SGT

    Maersk received a batch of 142 B/Ls

    17 days ago · automated

    Top counterparties by volume

    View all participants →
    Mk
    Maersk Logistics
    412 messages · 3 active
    PS
    PSA International
    298 messages · 1 active
    CS
    Cosco Shipping Lines
    137 messages · 1 active
    Catalog

    Data elements on TradeX

    ADR 0013
    Per-DEX-admin-curated catalog (per ADR 0013). Click a row to see versions, schema, usage stats, and impact analysis.
    All · 189Active · 156Draft · 8Deprecated · 21Retired · 4
    Trade documents · 14 Logistics & tracking · 38 Bunker & fuel · 26 Finance & invoicing · 21 Customs & regulatory · 19 + 71 more
    ElementLatest versionCategoryCompose Used byStatus
    Bill of Lading
    B/L document — sender to consignee
    v2.1 + 2 deprecated Trade documents high-stakes 42 orgs · 612 msgs/day Active
    Vessel arrival pack PACK
    4 elements · ETA, particulars, crew, manifest
    Mutable group Trade documents mixed 28 orgs · in 7 Agreements Active
    Cargo manifest
    Itemised shipment list
    v3.0 Trade documents high-stakes 31 orgs · 287 msgs/day Active
    Certificate of origin
    Country-of-origin attestation
    v1.4 v1.5 Trade documents simple 17 orgs · 89 msgs/day Active
    ETA
    Estimated time of arrival
    v2.0 v1.x Logistics & tracking simple 58 orgs · 1.2k msgs/day Active
    Bunker delivery confirmation
    Tripartite delivery attestation · contributor flow
    v0.9 Bunker & fuel simple Not yet in use · in DSV pipeline Draft
    Showing 6 of 189 elements · filtered by Active
    People & orgs

    Participants on TradeX

    All orgs onboarded to TradeX. Click a card to see the org profile, their team, the Agreements they have with you, and which use cases they're enrolled in.
    All · 42 Carriers · 18 Shippers · 11 Service providers · 8 Regulators · 5
    Mk
    Maersk Logistics Pte Ltd
    Carrier · UEN 200512345R · 6 team members · 3 active Agreements with you
    B/L sharing Vessel arrival Cargo manifest
    Active Joined 14 Mar 2024
    PS
    PSA International
    Port operator · UEN 199702345K · 12 team members · 1 active Agreement with you
    Vessel arrival Bunker delivery
    Active Joined 22 Aug 2023
    CL
    CrimsonLogic Pte Ltd
    Service provider · UEN 198812345J · 4 team members · acts on behalf of 7 orgs
    Service provider Customs
    Active Joined 11 Nov 2024
    CS
    Cosco Shipping Lines
    Carrier · UEN 200012345B · 8 team members · also known as COSCON · 1 active Agreement
    B/L sharing
    Active Joined 03 Apr 2024
    PC
    Pacific Container Lines
    Carrier · UEN 202118822F · 3 team members · KYC review pending
    B/L sharing (pending)
    Pending KYC Invited 6 days ago
    AC
    Acme Construction Pte Ltd
    Contractor · UEN 201111223J · primary DEX is BuildEx · cross-DEX participant
    Cross-DEX agreements
    BuildEx Cross-DEX since 12 Apr 2026

    Showing 6 of 42 participants · Load more

    Agreements

    Agreements on TradeX

    ADR 0004
    Click any row to land on its detail page. Use the row "···" menu to extend or revoke without opening detail.
    All · 23Pending · 4Active · 17Ended · 2
    CounterpartyWhat's coveredTypeStatusEffective until
    Mk
    Maersk Logistics
    Carrier · TradeX
    Bill of Lading v2.1 Direct Active 30 Sep 2026 · 9 days
    Vessel arrival distribution PACK
    4 Agreements · 4 counterparties
    Vessel arrival pack 4 elements split Direct ×4 Active (4 of 4) 14 Feb 2027
    PS
    PSA International
    Port operator · TradeX
    ETA v2.0 Direct Active 14 Feb 2027
    Mk
    Maersk Logistics
    Carrier · TradeX
    Cargo manifest v3.0 Direct Active 14 Feb 2027
    IC
    ICA Singapore
    Immigration · TradeX
    Crew list v1.2 Direct Active 14 Feb 2027
    HL
    Hin Leong Insurance
    Insurance broker · TradeX
    Vessel particulars v1.0 Direct Active 14 Feb 2027
    PS
    PSA International
    Port operator · TradeX
    Bunker delivery confirmation Service-Provider Pending Awaiting acceptance
    CL
    CrimsonLogic
    Service provider · TradeX
    Cargo manifest v3.0 Service-Provider Active 22 Aug 2027
    PL
    Pacific Lines
    Carrier · TradeX
    Bill of Lading v2.0 Direct Ended · revoked Ended 28 Mar 2026
    AB
    ABC Logistics
    Shipper · TradeX
    Certificate of origin v1.4 Direct Active 15 Dec 2026
    Showing 6 of 23 Agreements
    Agreement pack · per ADR 0027

    Pack detail page

    ADR 0027
    UI-layer grouping for multi-counterparty pack distributions. The pack itself is not a contract — each of the 4 member rows below is its own Agreement with its own counterparty, audit trail, and lifecycle. The pack exists for setup convenience (one wizard gesture), visual grouping (this page + the Agreements list group-by-pack toggle), and bulk action (Send pack · Revoke pack).
    TradeX PACK-2026-0044 Revoke pack

    Vessel arrival distribution

    PACK Active (4 of 4)

    Created from Vessel arrival pack (4 elements: ETA · vessel particulars · crew list · cargo manifest) split across 4 counterparties at setup time. All members effective until 14 Feb 2027.

    Members

    4

    Each is its own Agreement (per ADR 0008)

    Counterparties

    4

    PSA · Maersk · ICA · Hin Leong

    Aggregate state

    Active

    All 4 members accepted · derived, not stored

    Created

    14 Mar 2026

    by Marcus Ong · 1 wizard gesture · 4 Agreements created

    CounterpartyElementAgreement IDStatusLatest Message
    PS
    PSA International
    Port operator
    ETA v2.0 AGR-2026-04610 Active 31 min ago · Acknowledged
    Mk
    Maersk Logistics
    Carrier
    Cargo manifest v3.0 AGR-2026-04611 Active 18 min ago · Delivered
    IC
    ICA Singapore
    Immigration
    Crew list v1.2 AGR-2026-04612 Active 2 days ago · Acknowledged
    HL
    Hin Leong Insurance
    Insurance broker
    Vessel particulars v1.0 AGR-2026-04613 Active 2 days ago · Acknowledged

    Per ADR 0027, the pack carries a thin audit (created · revoked · sent) — full per-Message detail lives on each member Agreement. Sample events:

    1. Marcus Ong sent pack · 4 Messages dispatched (1 per member Agreement) · idempotency keys recorded per Message

    2. All 4 member Agreements transitioned to Active (last acceptance: Hin Leong Insurance)

    3. Marcus Ong created the pack via the split-counterparties wizard fork · 4 Agreements created in one transaction

    Drafts

    Your Agreement drafts

    ADR 0007
    Drafts are private to you — counterparties don't see them. They live in agreement_draft, not consent_agreement.
    Bunker delivery with PSA — outbound
    Direct · last edited 2h ago · counterparty + terms set · 1 step remaining
    Vessel arrival pack — Cosco renewal exploration
    Direct · last edited yesterday · data element only · counterparty unset
    CrimsonLogic as SP — inbound for invoices
    Service-Provider · last edited 3d ago · migrated from old portal

    Drafts auto-save as you fill out the wizard. They persist across devices but are tied to your user account — if you leave the org, your drafts are deleted.

    Account

    Settings

    Account

    Your profile information and the role you hold across each DEX.

    Profile

    NameMarcus OngEdit
    Emailmarcus.ong@cosco.com.sgChange
    OrganisationCosco Shipping (SG) Pte Ltd · UEN 199001234A
    User since14 Mar 2024

    Roles by DEX

    TradeXAdmin · 12 items waiting · joined 14 Mar 2024
    BuildExParticipant · 6 items waiting · joined 22 Aug 2025
    HealthDexSuper-admin · 3 items waiting · joined 09 Jan 2026

    Notifications

    Choose how and when the portal reaches you. Renewal cadences are set per-Agreement; these are your defaults.

    Channels

    In-app inbox
    Always on (required)
    Email
    Send to marcus.ong@cosco.com.sg
    SMS (urgent only)
    Off · not configured
    Add number

    Event types

    Renewal reminders60 / 30 / 14 / 7 / 1 days before expiryCustomise
    Incoming AgreementsImmediately · email + inboxEdit
    Cross-DEX warningsAlways · inbox onlyEdit
    Daily digestOffTurn on

    Theme

    How the portal looks. Per-DEX brand colours are not editable.

    Appearance

    Colour mode
    Light mode (system default)
    DensityComfortableChange
    Font size14px (default)Change

    Per-DEX accent (read-only)

    TradeXPurple #a614b9 · standard
    BuildExBlue #0446c3 · standard
    HealthDexTeal #006d5d · standard

    Security

    Authentication factors and active sessions.

    Authentication

    PasswordLast changed 6 weeks agoChange
    Two-factor (TFA)Enabled · authenticator appReset
    Recovery codes8 of 10 unusedRegenerate

    Active sessions

    Chrome on macOSSingapore · this session · started 14:23 SGT
    Safari on iPhoneSingapore · last active yesterdayEnd

    API keys

    Programmatic access for integrators. Each key carries the same permissions as your user role on the relevant DEX.

    Active keys

    Cosco-prod-001sk_live_a3f1•••••••••••e8c2 · created 10 Jan 2026 · last used 2h agoRevoke
    Cosco-stagingsk_test_99c5•••••••••••a17f · created 22 Aug 2025 · last used 5d agoRevoke
    Viewing as participant on TradeX · all actions tagged in the audit log under impersonation 02:00

    Maersk is receiving your first batch…

    How Maersk sees this Agreement
    Read-only counterparty view. Both sides read from the same record — they can't drift.
    BuildExAGR-2026-04829

    Receiving Bills of Lading from Cosco Shipping

    Active

    Counterparty (you)

    Cosco Shipping (SG) Pte Ltd

    UEN 199001234A · sender

    What you receive

    Bill of Lading · v2.1

    Effective

    21 Mar 2026 → 30 Sep 2026

    Your team's view

    Maersk's admins see this as an Agreement they accepted. They can revoke their acceptance at any time, subject to the 7-day grace period.