- Created by Matthew Whitaker on Jun 15, 2021 3 minute read
Follow these steps to connect to our sandbox environment and use the samples to subscribe to market data in as little as 15 minutes.
As always, if you have questions about using the Quick Start Guide, please email [email protected]
Step 1: Download the Sample Client package, unzip and load into your Java development environment
Select the latest version from here. This includes sample code for:
- Market Maker RFQ
- MarketData Subscriber
- MarketQuote Subscriber
- Quote Trader RFS

Step 2: Configure your client to use one of the following
Use either of the Pricing/Orders session pairs listed below with your The Lab username and password.
| instance | port | VenueName | SessionType | Comments |
|---|---|---|---|---|
| sim12.marketfactory.com | 11774 | uat-citicolo-tiered | Pricing | Mass Quote only |
| sim12.marketfactory.com | 11774 | uat-citicolo-tiered | Orders | Auto fill of all orders |
Step 3: Run the Application!
Once you have the application up and running, you can then modify the code to suit your own prototyping purposes.
11:07:06.676 [main] INFO c.m.m.e.s.MassQuotePricingSample - Using params [host=sim11.marketfactory.com, port=11774, username=**************, password=********, venue=uat-citicolo-tiered]
11:07:06.846 [main] INFO c.m.m.e.a.c.NonblockingSocketChannelConnection - TCPBufferBytes [send: 64512, receive: 65536]
11:07:06.851 [main] INFO c.m.m.e.a.c.SingleServiceCoreSession - Connecting [host: sim11.marketfactory.com, port: 11774]
11:07:06.864 [main] INFO c.m.m.e.a.p.s.ConnectingState - Connected
11:07:06.865 [main] INFO c.m.m.e.a.p.s.LoggingOnState - Entered LoggingOn State
11:07:06.872 [main] INFO c.m.m.e.a.p.ProtocolEncoderProvider - >>> (messageStart=1179469389|messageLength=354|blockLength=167|templateId=1|schemaId=5|version=18394|msgSeqNum=1|sendingTime=1592993226871000000) [Logon](sbeTemplateId=1|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=167):heartBtInt=60|nextExpectedMsgSeqNum=1|username=**************|password=********|venuename=uat-citicolo-tiered|sessionType=Pricing|text='{"details":{"jvmVersion":"Oracle Corporation 14", "version":"2.1.0", "scmRevision":"9c8c6f4c0bc4d93bed3f0e1c0e6cd5bb93ae6fe7", "build":"b61"}, "userText":""}'
11:07:07.414 [main] INFO c.m.m.e.a.p.ProtocolDecoderProvider - <<< (messageStart=1179469389|messageLength=32|blockLength=4|templateId=2|schemaId=5|version=18394|msgSeqNum=1|sendingTime=1592993227031909964) [LogonResponse](sbeTemplateId=2|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=4):nextExpectedMsgSeqNum=2
11:07:07.415 [main] INFO c.m.m.e.a.p.s.LoggingOnState - SyncSummary [clientNextMsgSeqNum: 2, clientNextExpectedMsgSeqNum: 1, serverMsgSeqNum: 1, serverNextExpectedMsgSeqNum: 2]
11:07:07.419 [main] INFO c.m.m.e.a.p.s.ServerToClientSynchronizationState - Server to client synchronization complete. [clientNextExpectedMsgSeqNum: 2, serverNextMsgSeqNum: 2]
11:07:07.425 [main] INFO c.m.m.e.a.p.s.ClientToServerSynchronizationState - ClientToServerSynchronization complete
11:07:07.430 [main] INFO c.m.m.e.a.p.ProtocolEncoderProvider - >>> (messageStart=1179469389|messageLength=45|blockLength=0|templateId=7|schemaId=5|version=18394|msgSeqNum=2|sendingTime=1592993227430000000) [TestRequest](sbeTemplateId=7|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=0):testReqID='tr1592993227429'
11:07:07.453 [main] INFO c.m.m.e.a.p.ProtocolDecoderProvider - <<< (messageStart=1179469389|messageLength=174|blockLength=129|templateId=6|schemaId=5|version=18394|msgSeqNum=2|sendingTime=1592993227072586897) [Heartbeat](sbeTemplateId=6|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=129):username=**************|venuename=uat-citicolo-tiered|sessionType=Pricing|testReqID='tr1592993227429'
11:07:07.454 [main] INFO c.m.m.e.a.p.s.EndOfSyncHandshakeState - Received heartbeat [[Heartbeat](sbeTemplateId=6|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=129):username=**************|venuename=uat-citicolo-tiered|sessionType=Pricing|testReqID='tr1592993227429']
11:07:07.458 [main] INFO c.m.m.e.a.p.ProtocolDecoderProvider - <<< (messageStart=1179469389|messageLength=63|blockLength=0|templateId=7|schemaId=5|version=18394|msgSeqNum=3|sendingTime=1592993227078160003) [TestRequest](sbeTemplateId=7|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=0):testReqID='Session synchronisation complete.'
11:07:07.458 [main] INFO c.m.m.e.a.p.s.EndOfSyncHandshakeState - Server synchronization TestRequest received.
11:07:07.460 [main] INFO c.m.m.e.a.p.ProtocolEncoderProvider - >>> (messageStart=1179469389|messageLength=192|blockLength=129|templateId=6|schemaId=5|version=18394|msgSeqNum=3|sendingTime=1592993227459000000) [Heartbeat](sbeTemplateId=6|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=129):username=**************|venuename=uat-citicolo-tiered|sessionType=Pricing|testReqID='Session synchronisation complete.'
11:07:07.462 [main] INFO c.m.m.e.s.MassQuotePricingSample - Logged On - now logging onto venue
11:07:07.467 [main] INFO c.m.m.e.a.p.ProtocolEncoderProvider - >>> (messageStart=1179469389|messageLength=31|blockLength=1|templateId=105|schemaId=5|version=18394|msgSeqNum=4|sendingTime=1592993227465000000) [UserRequest](sbeTemplateId=105|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=1):userRequestType=LogOnUser|text=''
11:07:07.558 [main] INFO c.m.m.e.a.p.ProtocolDecoderProvider - <<< (messageStart=1179469389|messageLength=51|blockLength=1|templateId=106|schemaId=5|version=18394|msgSeqNum=4|sendingTime=1592993227176495367) [UserNotification](sbeTemplateId=106|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=1):userStatus=LoggedOn|text='Venue Logon complete'
11:07:07.559 [main] INFO c.m.m.e.s.MassQuotePricingSample - Successful venue logon.
11:07:07.623 [main] INFO c.m.m.e.s.MassQuotePricingSample - Received MassQuote [(messageStart=1179469389|messageLength=818|blockLength=144|templateId=208|schemaId=5|version=18394|msgSeqNum=5|sendingTime=1592993227237039973), [MassQuote](sbeTemplateId=208|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=144):transactTime=0|quoteReqID=qr1|quoteID=i:1|regulatoryBodies={}|noPartyIDs=[]|noQuoteSets=[(quoteSetID=1|symbol=EUR/USD|securityType=SPT|securityGroup=|settlType=SPT|settlDate=18439|hasNDFFields=[]|noQuoteEntries=[(quoteEntryID=i:1:1000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=1000000|exponent=0)|offerSize=(mantissa=1000000|exponent=0)|bidPx=(mantissa=109013|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109023|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:1:3000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=3000000|exponent=0)|offerSize=(mantissa=3000000|exponent=0)|bidPx=(mantissa=109003|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109033|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:1:5000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=5000000|exponent=0)|offerSize=(mantissa=5000000|exponent=0)|bidPx=(mantissa=108993|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109043|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:1:10000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=10000000|exponent=0)|offerSize=(mantissa=10000000|exponent=0)|bidPx=(mantissa=108983|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109053|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[])])]|noBodyRegulatoryFields=[]|noBodyPassthruFields=[]|noHops=[(hopRefID=2|hopSendingTime=0|
…..
11:07:11.658 [main] INFO c.m.m.e.s.MassQuotePricingSample - Received MassQuote [(messageStart=1179469389|messageLength=818|blockLength=144|templateId=208|schemaId=5|version=18394|msgSeqNum=14|sendingTime=1592993231275652622), [MassQuote](sbeTemplateId=208|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=144):transactTime=0|quoteReqID=qr2|quoteID=i:5|regulatoryBodies={}|noPartyIDs=[]|noQuoteSets=[(quoteSetID=1|symbol=USD/JPY|securityType=SPT|securityGroup=|settlType=SPT|settlDate=18439|hasNDFFields=[]|noQuoteEntries=[(quoteEntryID=i:5:1000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=1000000|exponent=0)|offerSize=(mantissa=1000000|exponent=0)|bidPx=(mantissa=107703|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107712|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:3000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=3000000|exponent=0)|offerSize=(mantissa=3000000|exponent=0)|bidPx=(mantissa=107693|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107722|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:5000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=5000000|exponent=0)|offerSize=(mantissa=5000000|exponent=0)|bidPx=(mantissa=107683|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107732|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:10000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=10000000|exponent=0)|offerSize=(mantissa=10000000|exponent=0)|bidPx=(mantissa=107673|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107742|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[])])]|noBodyRegulatoryFields=[]|noBodyPassthruFields=[]|noHops=[(hopRefID=12|hopSendingTime=0|hopNetworkTime=0|hopArrivalTime=1592993231275647176)]]
11:07:11.851 [main] INFO c.m.m.e.s.MassQuotePricingSample - Logging off with graceful logout.
11:07:11.851 [main] INFO c.m.m.e.s.MassQuotePricingSample - Cancelling all quote requests
11:07:11.854 [main] INFO c.m.m.e.s.MassQuotePricingSample - Cancelling qr2 quote request
11:07:11.856 [main] INFO c.m.m.e.s.MassQuotePricingSample - Cancelling qr1 quote request
11:07:11.858 [main] INFO c.m.m.e.a.p.ProtocolEncoderProvider - >>> (messageStart=1179469389|messageLength=43|blockLength=1|templateId=105|schemaId=5|version=18394|msgSeqNum=9|sendingTime=1592993231857000000) [UserRequest](sbeTemplateId=105|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=1):userRequestType=LogOffUser|text='Done for now'
11:07:11.976 [main] INFO c.m.m.e.a.p.ProtocolDecoderProvider - <<< (messageStart=1179469389|messageLength=53|blockLength=1|templateId=106|schemaId=5|version=18394|msgSeqNum=15|sendingTime=1592993231598362496) [UserNotification](sbeTemplateId=106|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=1):userStatus=LoggedOff|text='Server session closed.'
11:07:11.977 [main] INFO c.m.m.e.a.p.ProtocolEncoderProvider - >>> (messageStart=1179469389|messageLength=42|blockLength=0|templateId=3|schemaId=5|version=18394|msgSeqNum=10|sendingTime=1592993231977000000) [Logout](sbeTemplateId=3|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=0):text='Done for now'
11:07:12.006 [main] INFO c.m.m.e.a.p.ProtocolDecoderProvider - <<< (messageStart=1179469389|messageLength=28|blockLength=0|templateId=4|schemaId=5|version=18394|msgSeqNum=16|sendingTime=1592993231624351478) [LogoutResponse](sbeTemplateId=4|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=0):
11:07:12.007 [main] INFO c.m.m.e.a.p.s.LoggingOffState - Received logout response to our logout request. Disconnecting.
11:07:12.007 [main] INFO c.m.m.e.a.c.SingleServiceCoreSession - Disconnected [host: sim11.marketfactory.com, port: 11774]
11:07:12.008 [main] INFO c.m.m.e.s.MassQuotePricingSample - Logged Off
massQuote = [MassQuote](sbeTemplateId=208|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=144):transactTime=0|quoteReqID=qr2|quoteID=i:5|regulatoryBodies={}|noPartyIDs=[]|noQuoteSets=[(quoteSetID=1|symbol=USD/JPY|securityType=SPT|securityGroup=|settlType=SPT|settlDate=18439|hasNDFFields=[]|noQuoteEntries=[(quoteEntryID=i:5:1000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=1000000|exponent=0)|offerSize=(mantissa=1000000|exponent=0)|bidPx=(mantissa=107703|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107712|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:3000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=3000000|exponent=0)|offerSize=(mantissa=3000000|exponent=0)|bidPx=(mantissa=107693|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107722|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:5000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=5000000|exponent=0)|offerSize=(mantissa=5000000|exponent=0)|bidPx=(mantissa=107683|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107732|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:10000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=10000000|exponent=0)|offerSize=(mantissa=10000000|exponent=0)|bidPx=(mantissa=107673|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107742|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[])])]|noBodyRegulatoryFields=[]|noBodyPassthruFields=[]|noHops=[(hopRefID=12|hopSendingTime=0|hopNetworkTime=0|hopArrivalTime=1592993231275647176)]
massQuote = [MassQuote](sbeTemplateId=208|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=144):transactTime=0|quoteReqID=qr1|quoteID=i:5|regulatoryBodies={}|noPartyIDs=[]|noQuoteSets=[(quoteSetID=1|symbol=EUR/USD|securityType=SPT|securityGroup=|settlType=SPT|settlDate=18439|hasNDFFields=[]|noQuoteEntries=[(quoteEntryID=i:5:1000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=1000000|exponent=0)|offerSize=(mantissa=1000000|exponent=0)|bidPx=(mantissa=109012|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109021|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:3000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=3000000|exponent=0)|offerSize=(mantissa=3000000|exponent=0)|bidPx=(mantissa=109002|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109031|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:5000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=5000000|exponent=0)|offerSize=(mantissa=5000000|exponent=0)|bidPx=(mantissa=108992|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109041|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:10000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=10000000|exponent=0)|offerSize=(mantissa=10000000|exponent=0)|bidPx=(mantissa=108982|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109051|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[])])]|noBodyRegulatoryFields=[]|noBodyPassthruFields=[]|noHops=[(hopRefID=11|hopSendingTime=0|hopNetworkTime=0|hopArrivalTime=1592993231243305496)]
11:07:12.009 [main] INFO c.m.m.e.s.MassQuotePricingSample - Finished
Process finished with exit code 0
Venue Mock
Note: This is a "sandbox" environment and uses a Simulator in preference to connecting to a live Venue, so as to avoid up-time/availability problems.
Please contact our sales or support teams if you require a dedicated UAT system.
© 2025 MarketFactory, Inc. All rights reserved.